@skillcdn/console 0.4.3 → 0.4.4
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/README.md +4 -4
- package/dist/api.d.ts +3 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +3 -3
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +95 -20
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/format.d.ts +4 -2
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +32 -9
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +17 -14
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/plugin-check.d.ts +5 -1
- package/dist/cli/plugin-check.d.ts.map +1 -1
- package/dist/cli/plugin-check.js +23 -4
- package/dist/cli/plugin-check.js.map +1 -1
- package/dist/cli/plugin-cli.d.ts.map +1 -1
- package/dist/cli/plugin-cli.js +10 -1
- package/dist/cli/plugin-cli.js.map +1 -1
- package/dist/cli/plugin-init.d.ts +2 -0
- package/dist/cli/plugin-init.d.ts.map +1 -1
- package/dist/cli/plugin-init.js +6 -0
- package/dist/cli/plugin-init.js.map +1 -1
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/compat.js +1 -1
- package/dist/components/board.d.ts +8 -0
- package/dist/components/board.d.ts.map +1 -1
- package/dist/components/board.js +3 -3
- package/dist/components/board.js.map +1 -1
- package/dist/components/decision-form.d.ts +6 -0
- package/dist/components/decision-form.d.ts.map +1 -1
- package/dist/components/decision-form.js +23 -5
- package/dist/components/decision-form.js.map +1 -1
- package/dist/components/decision-list.d.ts +5 -1
- package/dist/components/decision-list.d.ts.map +1 -1
- package/dist/components/decision-list.js +25 -5
- package/dist/components/decision-list.js.map +1 -1
- package/dist/components/event-feed.d.ts.map +1 -1
- package/dist/components/event-feed.js +7 -1
- package/dist/components/event-feed.js.map +1 -1
- package/dist/components/goals.d.ts.map +1 -1
- package/dist/components/goals.js +2 -2
- package/dist/components/goals.js.map +1 -1
- package/dist/components/home.d.ts +35 -0
- package/dist/components/home.d.ts.map +1 -0
- package/dist/components/home.js +326 -0
- package/dist/components/home.js.map +1 -0
- package/dist/components/pack-connect.d.ts.map +1 -1
- package/dist/components/pack-connect.js +5 -4
- package/dist/components/pack-connect.js.map +1 -1
- package/dist/components/people.d.ts +2 -0
- package/dist/components/people.d.ts.map +1 -1
- package/dist/components/people.js +15 -2
- package/dist/components/people.js.map +1 -1
- package/dist/components/plugin-frame.d.ts +3 -12
- package/dist/components/plugin-frame.d.ts.map +1 -1
- package/dist/components/plugin-frame.js +53 -20
- package/dist/components/plugin-frame.js.map +1 -1
- package/dist/components/plugin-settings.d.ts.map +1 -1
- package/dist/components/plugin-settings.js +151 -26
- package/dist/components/plugin-settings.js.map +1 -1
- package/dist/components/projects.d.ts +0 -8
- package/dist/components/projects.d.ts.map +1 -1
- package/dist/components/projects.js +1 -13
- package/dist/components/projects.js.map +1 -1
- package/dist/components/task-view.d.ts.map +1 -1
- package/dist/components/task-view.js +2 -1
- package/dist/components/task-view.js.map +1 -1
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/components/ui.js +5 -2
- package/dist/components/ui.js.map +1 -1
- package/dist/connect-page.d.ts.map +1 -1
- package/dist/connect-page.js +5 -6
- package/dist/connect-page.js.map +1 -1
- package/dist/console.css +761 -191
- package/dist/console.d.ts +10 -3
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +33 -13
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +4 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +5 -0
- package/dist/data.js.map +1 -1
- package/dist/docs-page.d.ts.map +1 -1
- package/dist/docs-page.js +6 -5
- package/dist/docs-page.js.map +1 -1
- package/dist/home-tiles.d.ts +92 -0
- package/dist/home-tiles.d.ts.map +1 -0
- package/dist/home-tiles.js +294 -0
- package/dist/home-tiles.js.map +1 -0
- package/dist/i18n/en.d.ts +174 -0
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +175 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/index.d.ts +4 -2
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +10 -11
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +170 -3
- package/dist/i18n/ko.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +6 -0
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +6 -0
- package/dist/limits.js.map +1 -1
- package/dist/plugin/bridge.d.ts +44 -3
- package/dist/plugin/bridge.d.ts.map +1 -1
- package/dist/plugin/bridge.js +26 -0
- package/dist/plugin/bridge.js.map +1 -1
- package/dist/plugin/capabilities.d.ts +7 -1
- package/dist/plugin/capabilities.d.ts.map +1 -1
- package/dist/plugin/capabilities.js +14 -1
- package/dist/plugin/capabilities.js.map +1 -1
- package/dist/plugin/context.d.ts +18 -1
- package/dist/plugin/context.d.ts.map +1 -1
- package/dist/plugin/define.d.ts +1 -0
- package/dist/plugin/define.d.ts.map +1 -1
- package/dist/plugin/define.js +1 -1
- package/dist/plugin/define.js.map +1 -1
- package/dist/plugin/limits.d.ts +5 -2
- package/dist/plugin/limits.d.ts.map +1 -1
- package/dist/plugin/limits.js +5 -2
- package/dist/plugin/limits.js.map +1 -1
- package/dist/plugin/manifest.d.ts +83 -6
- package/dist/plugin/manifest.d.ts.map +1 -1
- package/dist/plugin/manifest.js +111 -7
- package/dist/plugin/manifest.js.map +1 -1
- package/dist/plugin/rest-schemas.d.ts +76 -0
- package/dist/plugin/rest-schemas.d.ts.map +1 -1
- package/dist/plugin/rest-schemas.js +23 -2
- package/dist/plugin/rest-schemas.js.map +1 -1
- package/dist/plugin/sandbox.d.ts +4 -3
- package/dist/plugin/sandbox.d.ts.map +1 -1
- package/dist/plugin/sandbox.js +33 -6
- package/dist/plugin/sandbox.js.map +1 -1
- package/dist/plugin/semver.d.ts +26 -0
- package/dist/plugin/semver.d.ts.map +1 -0
- package/dist/plugin/semver.js +76 -0
- package/dist/plugin/semver.js.map +1 -0
- package/dist/plugin/testing.d.ts.map +1 -1
- package/dist/plugin/testing.js +2 -1
- package/dist/plugin/testing.js.map +1 -1
- package/dist/plugin/web.d.ts +10 -1
- package/dist/plugin/web.d.ts.map +1 -1
- package/dist/plugin/web.js +34 -0
- package/dist/plugin/web.js.map +1 -1
- package/dist/plugin.d.ts +3 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +3 -2
- package/dist/plugin.js.map +1 -1
- package/dist/rules.d.ts +2 -2
- package/dist/rules.js +3 -3
- package/dist/schemas.d.ts +497 -2
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +96 -9
- package/dist/schemas.js.map +1 -1
- package/dist/use-action.d.ts +8 -2
- package/dist/use-action.d.ts.map +1 -1
- package/dist/use-action.js +13 -6
- package/dist/use-action.js.map +1 -1
- package/dist/vocabulary.d.ts +3 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +3 -0
- package/dist/vocabulary.js.map +1 -1
- package/docs/specs/cli.md +4 -3
- package/docs/specs/plugins.md +46 -33
- package/docs/specs/rest.md +16 -15
- package/package.json +1 -1
- package/skills/building-a-plugin/SKILL.md +8 -7
- package/skills/planning-the-board/references/setting-up.md +2 -1
- package/skills/working-the-board/SKILL.md +3 -3
- package/src/api.ts +6 -0
- package/src/cli/cli.ts +124 -19
- package/src/cli/format.ts +42 -9
- package/src/cli/help.ts +17 -13
- package/src/cli/plugin-check.ts +41 -2
- package/src/cli/plugin-cli.ts +10 -1
- package/src/cli/plugin-init.ts +8 -0
- package/src/client.ts +8 -0
- package/src/compat.ts +1 -1
- package/src/components/board.tsx +3 -3
- package/src/components/decision-form.tsx +75 -19
- package/src/components/decision-list.tsx +45 -13
- package/src/components/event-feed.tsx +7 -1
- package/src/components/goals.tsx +4 -1
- package/src/components/home.tsx +615 -0
- package/src/components/pack-connect.tsx +5 -4
- package/src/components/people.tsx +136 -54
- package/src/components/plugin-frame.tsx +62 -63
- package/src/components/plugin-settings.tsx +428 -87
- package/src/components/projects.tsx +0 -55
- package/src/components/task-view.tsx +7 -0
- package/src/components/ui.tsx +6 -2
- package/src/connect-page.tsx +5 -6
- package/src/console.tsx +80 -30
- package/src/data.ts +9 -2
- package/src/docs-page.tsx +6 -5
- package/src/home-tiles.ts +438 -0
- package/src/i18n/en.ts +178 -0
- package/src/i18n/index.ts +17 -14
- package/src/i18n/ko.ts +174 -3
- package/src/index.ts +7 -5
- package/src/limits.ts +6 -0
- package/src/plugin/bridge.ts +77 -1
- package/src/plugin/capabilities.ts +17 -1
- package/src/plugin/context.ts +18 -1
- package/src/plugin/define.ts +4 -1
- package/src/plugin/limits.ts +5 -2
- package/src/plugin/manifest.ts +154 -10
- package/src/plugin/rest-schemas.ts +27 -1
- package/src/plugin/sandbox.ts +36 -8
- package/src/plugin/semver.ts +89 -0
- package/src/plugin/testing.ts +2 -1
- package/src/plugin/web.ts +49 -0
- package/src/plugin.ts +18 -0
- package/src/rules.ts +3 -3
- package/src/schemas.ts +118 -10
- package/src/styles/console.css +761 -191
- package/src/use-action.ts +16 -7
- package/src/vocabulary.ts +4 -0
- package/template/plugin/console-plugin.json +3 -1
package/src/i18n/en.ts
CHANGED
|
@@ -137,6 +137,133 @@ export const en = {
|
|
|
137
137
|
},
|
|
138
138
|
},
|
|
139
139
|
|
|
140
|
+
/**
|
|
141
|
+
* What a failure says, by the code the server answers with. The server's own message is English
|
|
142
|
+
* and for programs; the pages read the code here, and a test holds every code the server can
|
|
143
|
+
* answer to having its words.
|
|
144
|
+
*/
|
|
145
|
+
errors: {
|
|
146
|
+
internal: "Something went wrong on the console. Try again later.",
|
|
147
|
+
invalid_response: "The console gave an answer that could not be read.",
|
|
148
|
+
network: "The console could not be reached.",
|
|
149
|
+
no_project: "This page is on no project.",
|
|
150
|
+
not_found: "There is nothing at this address.",
|
|
151
|
+
"auth.deactivated": "This account has been deactivated.",
|
|
152
|
+
"auth.forbidden": "You don't have permission to do this.",
|
|
153
|
+
"auth.forbidden_origin": "This request must come from the console's own pages.",
|
|
154
|
+
"auth.invalid_token": "The token is not valid. It may have expired or been removed.",
|
|
155
|
+
"auth.not_admitted": "This account has not been added to the console. Ask an administrator.",
|
|
156
|
+
"auth.required": "Sign in to continue.",
|
|
157
|
+
"auth.session_required": "This can only be done signed in on the console's own pages.",
|
|
158
|
+
"category.in_use": "Tasks or goals use this category. Move them to another one first.",
|
|
159
|
+
"category.key_taken": "A category with this key already exists.",
|
|
160
|
+
"category.not_found": "The category was not found.",
|
|
161
|
+
"category.too_many": "The workspace has as many categories as it can hold.",
|
|
162
|
+
"client.outdated": "This command is too old for the console. Update it.",
|
|
163
|
+
"client.too_new": "This command is too new for the console.",
|
|
164
|
+
"comment.empty": "Write something or attach a file.",
|
|
165
|
+
"comment.too_many": "The task has as many comments as it can hold.",
|
|
166
|
+
"comment.too_many_files": "The comment has too many files.",
|
|
167
|
+
"connect.approved": "This connection has already been approved.",
|
|
168
|
+
"connect.not_found": "No connection is waiting under this code.",
|
|
169
|
+
"connect.too_many": "Too many agents are asking to connect. Try again in a moment.",
|
|
170
|
+
"credentials.unavailable": "The console's credentials could not be read. Try again later.",
|
|
171
|
+
"decision.answered": "This decision has already been answered.",
|
|
172
|
+
"decision.invalid_decider": "The person named to decide can't work in this project.",
|
|
173
|
+
"decision.invalid_run": "The run is not the asker's, or it has ended.",
|
|
174
|
+
"decision.invalid_task": "The task is not in this project.",
|
|
175
|
+
"decision.no_such_option": "That option is not one of the decision's.",
|
|
176
|
+
"decision.not_found": "The decision was not found.",
|
|
177
|
+
"decision.too_many": "The project has as many decisions as it can hold.",
|
|
178
|
+
"decision.too_many_deciders": "Too many people were named to decide.",
|
|
179
|
+
"decision.too_many_files": "The decision has too many files.",
|
|
180
|
+
"document.archived": "This page is archived.",
|
|
181
|
+
"document.conflict":
|
|
182
|
+
"The page changed while you were writing. Load it again and redo your change.",
|
|
183
|
+
"document.invalid_path": "That is not a path a page can have.",
|
|
184
|
+
"document.not_found": "The page was not found.",
|
|
185
|
+
"document.too_many": "The project has as many pages as it can hold.",
|
|
186
|
+
"document.too_many_files": "The page has as many files as it can hold.",
|
|
187
|
+
"document.too_many_versions": "The page has as many versions as it can hold.",
|
|
188
|
+
"document.version_not_found": "The page has no such version.",
|
|
189
|
+
"feed.too_many": "Too many live views are open. Close a tab and try again.",
|
|
190
|
+
"file.not_found": "The file was not found.",
|
|
191
|
+
"file.not_served": "This file is not served.",
|
|
192
|
+
"file.not_text": "This file can't be read as text.",
|
|
193
|
+
"file.store_unavailable": "Files can't be reached right now. Try again later.",
|
|
194
|
+
"file.too_large": "The file is too large.",
|
|
195
|
+
"goal.invalid_category": "The category is not one of the workspace's.",
|
|
196
|
+
"goal.invalid_dates": "The target day is before the start.",
|
|
197
|
+
"goal.not_found": "The goal was not found.",
|
|
198
|
+
"goal.too_many": "The project has as many goals as it can hold.",
|
|
199
|
+
"index.failed": "The pack could not be read.",
|
|
200
|
+
"index.indexing": "The pack is still being read. Try again in a moment.",
|
|
201
|
+
"listing.exists": "This login has already been added, or is already a member.",
|
|
202
|
+
"listing.not_found": "This login is not on the list.",
|
|
203
|
+
"listing.unknown_host": "Nobody signs in through that provider here.",
|
|
204
|
+
"member.exists": "This person is already in the project.",
|
|
205
|
+
"member.invalid_person": "This person is not in the workspace.",
|
|
206
|
+
"member.not_found": "This person is not in the project.",
|
|
207
|
+
"member.open_project": "The project is open to the workspace, so everyone is already a member.",
|
|
208
|
+
"mount.ref_not_found": "That version of the pack was not found.",
|
|
209
|
+
"mount.repo_not_found": "The pack was not found.",
|
|
210
|
+
"person.invalid_manager":
|
|
211
|
+
"A manager must be another active person, and not one of this person's own team.",
|
|
212
|
+
"person.last_admin": "The workspace needs at least one administrator.",
|
|
213
|
+
"person.not_found": "The person was not found.",
|
|
214
|
+
"person.of_organization": "The organization decides who is in. This can't be changed here.",
|
|
215
|
+
"picture.refused": "This picture can't be shown.",
|
|
216
|
+
"picture.unavailable": "The picture could not be fetched. Try again later.",
|
|
217
|
+
"plugin.conflict": "This has already been done, or something changed in the meantime.",
|
|
218
|
+
"plugin.disabled": "The plugin is off.",
|
|
219
|
+
"plugin.failed": "The plugin ran into a problem.",
|
|
220
|
+
"plugin.forbidden": "The plugin can't do this.",
|
|
221
|
+
"plugin.invalid_args": "Check what you entered and try again.",
|
|
222
|
+
"plugin.needs_consent": "An administrator must first agree to what the plugin asks.",
|
|
223
|
+
"plugin.not_found": "The plugin was not found.",
|
|
224
|
+
"plugin.rate_limited": "The plugin is sending too many requests. Try again in a moment.",
|
|
225
|
+
"plugin.required_by": "Another plugin needs this one. Turn that one off first.",
|
|
226
|
+
"plugin.requires": "This plugin needs another plugin that is not on.",
|
|
227
|
+
"plugin.timeout": "The plugin took too long to answer.",
|
|
228
|
+
"plugin.too_many": "The plugin has reached a limit.",
|
|
229
|
+
"plugin.unavailable": "The plugin can't be reached right now.",
|
|
230
|
+
"project.invalid_address": "That is not the address of a pack.",
|
|
231
|
+
"project.invalid_icon": "That file can't be used as the project's image.",
|
|
232
|
+
"project.key_taken": "A project with this key already exists.",
|
|
233
|
+
"project.no_icon": "The project has no image.",
|
|
234
|
+
"project.not_found": "The project was not found.",
|
|
235
|
+
"project.pack_connect_refused": "SkillCDN refused the connection.",
|
|
236
|
+
"project.pack_connect_unsupported": "This console can't connect a pack.",
|
|
237
|
+
"project.pack_token_refused": "SkillCDN doesn't serve the pack to this token.",
|
|
238
|
+
"project.pack_token_unsupported": "This console can't keep a pack token.",
|
|
239
|
+
"project.too_many": "The workspace has as many projects as it can hold.",
|
|
240
|
+
"project.too_many_bytes": "The project's files have used up the room it has.",
|
|
241
|
+
"request.invalid": "Check what you entered and try again.",
|
|
242
|
+
"request.too_large": "That is too large to send.",
|
|
243
|
+
"run.not_found": "The run was not found.",
|
|
244
|
+
"run.not_yours": "This run is another person's.",
|
|
245
|
+
"run.over": "This run has ended.",
|
|
246
|
+
"run.task_closed": "The task is done or dropped.",
|
|
247
|
+
"run.task_not_found": "The task is not in this project.",
|
|
248
|
+
"run.too_many": "The task has been taken as many times as it can be.",
|
|
249
|
+
"run.too_many_artifacts": "The run has as many results as it can hold.",
|
|
250
|
+
"run.too_many_reports": "The run has as many reports as it can hold.",
|
|
251
|
+
"skills.unavailable": "SkillCDN could not be reached. Try again later.",
|
|
252
|
+
"task.invalid_category": "The category is not one of the workspace's.",
|
|
253
|
+
"task.invalid_dates": "The due day is before the start.",
|
|
254
|
+
"task.invalid_goal": "The goal is not in this project.",
|
|
255
|
+
"task.invalid_parent": "The parent is not a task of this project, or would make a loop.",
|
|
256
|
+
"task.invalid_worker": "A worker must be someone who can work in the project.",
|
|
257
|
+
"task.not_found": "The task was not found.",
|
|
258
|
+
"task.too_many": "The project has as many tasks as it can hold.",
|
|
259
|
+
"token.expiry_at_most": "A token can't last that many days here.",
|
|
260
|
+
"token.not_found": "The token was not found.",
|
|
261
|
+
"token.too_many": "You have as many tokens as you can hold. Remove one first.",
|
|
262
|
+
"workspace.pack_connect_refused": "SkillCDN refused the connection.",
|
|
263
|
+
"workspace.pack_connect_unsupported": "This console can't connect a pack.",
|
|
264
|
+
"workspace.pack_token_refused": "SkillCDN doesn't serve the pack to this token.",
|
|
265
|
+
"workspace.pack_token_unsupported": "This console can't keep a pack token.",
|
|
266
|
+
},
|
|
140
267
|
nav: {
|
|
141
268
|
projects: "Projects",
|
|
142
269
|
work: "My work",
|
|
@@ -179,6 +306,11 @@ export const en = {
|
|
|
179
306
|
problems: "Why it cannot run",
|
|
180
307
|
nothing: "None",
|
|
181
308
|
capabilities: "Capabilities",
|
|
309
|
+
required: "Required",
|
|
310
|
+
requiredHint: "The plugin can't work without these, so they stay on.",
|
|
311
|
+
optional: "Optional",
|
|
312
|
+
optionalHint: "Turn on what you want it to use. You can change this later.",
|
|
313
|
+
newCapability: "New",
|
|
182
314
|
board: "Board project",
|
|
183
315
|
boardHint: "Where its decisions, tasks and pages go.",
|
|
184
316
|
boardNone: "None",
|
|
@@ -221,7 +353,15 @@ export const en = {
|
|
|
221
353
|
purged: "Purged.",
|
|
222
354
|
agentNote: "For agents",
|
|
223
355
|
operations: "Commands and queries",
|
|
356
|
+
console: "Console versions",
|
|
357
|
+
consoleRange: (range: string) => `console ${range}`,
|
|
358
|
+
timeZoneHint: "In the workspace's time zone.",
|
|
359
|
+
addItem: "Add",
|
|
360
|
+
itemPlaceholder: "Type, then add",
|
|
361
|
+
choose: "Choose…",
|
|
224
362
|
},
|
|
363
|
+
/** What stands in for a frame the console has nothing to show in. */
|
|
364
|
+
frameUnavailable: "This can't be shown right now.",
|
|
225
365
|
/** The capabilities (docs/specs/plugins.md, "Capabilities"), each by a name and the sentence of what it opens, as an administrator reads them before consenting. */
|
|
226
366
|
capability: {
|
|
227
367
|
files: {
|
|
@@ -275,6 +415,11 @@ export const en = {
|
|
|
275
415
|
name: "Own database schema",
|
|
276
416
|
opens: "Gets a schema and a login role of its own in the console's database.",
|
|
277
417
|
},
|
|
418
|
+
"outbound:webrtc": {
|
|
419
|
+
name: "WebRTC on its pages",
|
|
420
|
+
opens:
|
|
421
|
+
"Its pages connect from each person's browser to any address, past the console: what they show, and the person's network address, can go anywhere.",
|
|
422
|
+
},
|
|
278
423
|
outbound: (host: string) => ({
|
|
279
424
|
name: `Requests to ${host}`,
|
|
280
425
|
opens: `Sends https requests to ${host}.`,
|
|
@@ -464,6 +609,7 @@ export const en = {
|
|
|
464
609
|
},
|
|
465
610
|
partOf: "Part of",
|
|
466
611
|
owner: "Owner",
|
|
612
|
+
writtenThrough: "Written through",
|
|
467
613
|
workers: "Workers",
|
|
468
614
|
written: "Written",
|
|
469
615
|
changed: "Changed",
|
|
@@ -547,11 +693,14 @@ export const en = {
|
|
|
547
693
|
askedThrough: (agent: string) => `asked through ${agent}`,
|
|
548
694
|
about: "about",
|
|
549
695
|
answeredBy: "answered",
|
|
696
|
+
answeredThrough: (agent: string) => `answered through ${agent}`,
|
|
550
697
|
context: "Context",
|
|
551
698
|
files: "Files",
|
|
552
699
|
picture: (name: string) => `The picture ${name}`,
|
|
553
700
|
whatFollowed: "What followed",
|
|
554
701
|
nothingWritten: "Nothing written yet.",
|
|
702
|
+
wroteWhatFollowed: "wrote what followed",
|
|
703
|
+
wroteWhatFollowedThrough: (agent: string) => `wrote what followed through ${agent}`,
|
|
555
704
|
outcomePlaceholder: "What was done with the answer, and what came of it, in Markdown.",
|
|
556
705
|
writeWhatFollowed: "Write what followed",
|
|
557
706
|
changeIt: "Change it",
|
|
@@ -568,6 +717,8 @@ export const en = {
|
|
|
568
717
|
noTask: "No task in particular",
|
|
569
718
|
decider: "Who decides",
|
|
570
719
|
deciderPlaceholder: "You, unless you name someone",
|
|
720
|
+
addDecider: "Add a person",
|
|
721
|
+
decidersHint: "Any of them may answer; the first answer ends it.",
|
|
571
722
|
me: "(you)",
|
|
572
723
|
options: "Options",
|
|
573
724
|
option: (n: number) => `Option ${n}`,
|
|
@@ -658,6 +809,7 @@ export const en = {
|
|
|
658
809
|
target: "Target",
|
|
659
810
|
noTarget: "No target day",
|
|
660
811
|
setBy: "Set by",
|
|
812
|
+
setThrough: (agent: string) => `through ${agent}`,
|
|
661
813
|
state: "State",
|
|
662
814
|
nothingMore: "Nothing more was written about it.",
|
|
663
815
|
about: "What reaching it means",
|
|
@@ -846,6 +998,8 @@ export const en = {
|
|
|
846
998
|
personUnlisted: (login: string) => `took ${login} off the list`,
|
|
847
999
|
personDeactivated: (login: string) => `deactivated ${login}`,
|
|
848
1000
|
personReactivated: (login: string) => `reactivated ${login}`,
|
|
1001
|
+
managerChanged: (login: string, manager: string) => `set ${login}'s manager to ${manager}`,
|
|
1002
|
+
managerCleared: (login: string) => `cleared ${login}'s manager`,
|
|
849
1003
|
projectCreated: (project: string) => `made the project ${project}`,
|
|
850
1004
|
projectUpdated: (fields: string, project: string) =>
|
|
851
1005
|
`changed ${fields} of the project ${project}`,
|
|
@@ -888,6 +1042,7 @@ export const en = {
|
|
|
888
1042
|
fileAttached: (label: string, page: string) => `attached ${label} to ${page}`,
|
|
889
1043
|
pluginEnabled: (plugin: string) => `enabled the plugin ${plugin}`,
|
|
890
1044
|
pluginDisabled: (plugin: string) => `disabled the plugin ${plugin}`,
|
|
1045
|
+
pluginConsented: (plugin: string) => `changed the capabilities of the plugin ${plugin}`,
|
|
891
1046
|
pluginConfigured: (fields: string, plugin: string) =>
|
|
892
1047
|
`changed ${fields} of the plugin ${plugin}`,
|
|
893
1048
|
pluginGranted: (role: string, who: string, plugin: string) =>
|
|
@@ -1057,11 +1212,34 @@ export const en = {
|
|
|
1057
1212
|
},
|
|
1058
1213
|
},
|
|
1059
1214
|
|
|
1215
|
+
/** The front page as the person arranges it (ADR-0061). */
|
|
1216
|
+
home: {
|
|
1217
|
+
edit: "Edit layout",
|
|
1218
|
+
hint: "Drag to move. Pick a size at the top right; × takes a tile off this page.",
|
|
1219
|
+
done: "Done",
|
|
1220
|
+
add: "Add",
|
|
1221
|
+
remove: "Remove from this page",
|
|
1222
|
+
size: "Size",
|
|
1223
|
+
sizes: {
|
|
1224
|
+
icon: "Icon",
|
|
1225
|
+
small: "Small",
|
|
1226
|
+
medium: "Medium",
|
|
1227
|
+
large: "Large",
|
|
1228
|
+
wide: "Wide",
|
|
1229
|
+
full: "Full",
|
|
1230
|
+
},
|
|
1231
|
+
},
|
|
1232
|
+
|
|
1060
1233
|
people: {
|
|
1061
1234
|
title: "People",
|
|
1062
1235
|
list: "People",
|
|
1063
1236
|
narrowed: "The people you share a project with, and the administrators.",
|
|
1064
1237
|
roleOf: (name: string) => `Role of ${name}`,
|
|
1238
|
+
role: "Role",
|
|
1239
|
+
manager: "Manager",
|
|
1240
|
+
managerOf: (name: string) => `Manager of ${name}`,
|
|
1241
|
+
team: "Team",
|
|
1242
|
+
nobody: "None",
|
|
1065
1243
|
letIn: "Add a person",
|
|
1066
1244
|
letInAria: "Add a person",
|
|
1067
1245
|
notSignedIn: "Added, not signed in yet",
|
package/src/i18n/index.ts
CHANGED
|
@@ -52,25 +52,28 @@ export function packFor(
|
|
|
52
52
|
);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
* browser's languages that does, else the first pack.
|
|
58
|
-
*/
|
|
59
|
-
export function chooseLanguage(
|
|
60
|
-
chosen: string | null | undefined,
|
|
55
|
+
/** The first of the browser's languages a pack speaks, or nothing. */
|
|
56
|
+
export function browserPack(
|
|
61
57
|
browser: readonly string[],
|
|
62
|
-
packs: readonly LanguagePack[]
|
|
63
|
-
): LanguagePack {
|
|
64
|
-
const first = packs[0] ?? ENGLISH;
|
|
65
|
-
const own = packFor(chosen, packs);
|
|
66
|
-
if (own !== undefined) {
|
|
67
|
-
return own;
|
|
68
|
-
}
|
|
58
|
+
packs: readonly LanguagePack[],
|
|
59
|
+
): LanguagePack | undefined {
|
|
69
60
|
for (const tag of browser) {
|
|
70
61
|
const found = packFor(tag, packs);
|
|
71
62
|
if (found !== undefined) {
|
|
72
63
|
return found;
|
|
73
64
|
}
|
|
74
65
|
}
|
|
75
|
-
return
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The language to speak: the person's own when it names a pack, else the first of the browser's
|
|
71
|
+
* languages that does, else the first pack.
|
|
72
|
+
*/
|
|
73
|
+
export function chooseLanguage(
|
|
74
|
+
chosen: string | null | undefined,
|
|
75
|
+
browser: readonly string[],
|
|
76
|
+
packs: readonly LanguagePack[] = DEFAULT_LANGUAGES,
|
|
77
|
+
): LanguagePack {
|
|
78
|
+
return packFor(chosen, packs) ?? browserPack(browser, packs) ?? packs[0] ?? ENGLISH;
|
|
76
79
|
}
|
package/src/i18n/ko.ts
CHANGED
|
@@ -98,6 +98,128 @@ export const ko: Messages = {
|
|
|
98
98
|
},
|
|
99
99
|
},
|
|
100
100
|
|
|
101
|
+
errors: {
|
|
102
|
+
internal: "콘솔에 문제가 생겼습니다. 잠시 후 다시 시도하세요.",
|
|
103
|
+
invalid_response: "콘솔의 응답을 읽을 수 없습니다.",
|
|
104
|
+
network: "콘솔에 연결할 수 없습니다.",
|
|
105
|
+
no_project: "이 페이지는 프로젝트에 속해 있지 않습니다.",
|
|
106
|
+
not_found: "이 주소에는 아무것도 없습니다.",
|
|
107
|
+
"auth.deactivated": "비활성화된 계정입니다.",
|
|
108
|
+
"auth.forbidden": "이 작업을 할 권한이 없습니다.",
|
|
109
|
+
"auth.forbidden_origin": "콘솔 화면에서 보낸 요청이 아닙니다.",
|
|
110
|
+
"auth.invalid_token": "토큰이 유효하지 않습니다. 만료되었거나 삭제되었을 수 있습니다.",
|
|
111
|
+
"auth.not_admitted": "콘솔에 추가되지 않은 계정입니다. 관리자에게 문의하세요.",
|
|
112
|
+
"auth.required": "로그인해 주세요.",
|
|
113
|
+
"auth.session_required": "콘솔 화면에 직접 로그인해야 할 수 있는 작업입니다.",
|
|
114
|
+
"category.in_use":
|
|
115
|
+
"이 카테고리를 쓰는 작업이나 목표가 있습니다. 먼저 다른 카테고리로 옮기세요.",
|
|
116
|
+
"category.key_taken": "같은 키의 카테고리가 이미 있습니다.",
|
|
117
|
+
"category.not_found": "카테고리를 찾을 수 없습니다.",
|
|
118
|
+
"category.too_many": "워크스페이스에 만들 수 있는 카테고리 수를 다 채웠습니다.",
|
|
119
|
+
"client.outdated": "명령어가 콘솔보다 오래되었습니다. 업데이트하세요.",
|
|
120
|
+
"client.too_new": "명령어가 콘솔보다 새 버전입니다.",
|
|
121
|
+
"comment.empty": "내용을 쓰거나 파일을 첨부하세요.",
|
|
122
|
+
"comment.too_many": "이 작업에 달 수 있는 댓글 수를 다 채웠습니다.",
|
|
123
|
+
"comment.too_many_files": "댓글에 파일이 너무 많습니다.",
|
|
124
|
+
"connect.approved": "이미 승인된 연결입니다.",
|
|
125
|
+
"connect.not_found": "이 코드로 기다리는 연결이 없습니다.",
|
|
126
|
+
"connect.too_many": "연결을 요청하는 에이전트가 너무 많습니다. 잠시 후 다시 시도하세요.",
|
|
127
|
+
"credentials.unavailable": "콘솔의 인증 정보를 읽을 수 없습니다. 잠시 후 다시 시도하세요.",
|
|
128
|
+
"decision.answered": "이미 답한 결정입니다.",
|
|
129
|
+
"decision.invalid_decider": "결정할 사람으로 지정한 사람이 이 프로젝트에서 일할 수 없습니다.",
|
|
130
|
+
"decision.invalid_run": "요청한 사람의 실행이 아니거나 이미 끝난 실행입니다.",
|
|
131
|
+
"decision.invalid_task": "이 프로젝트의 작업이 아닙니다.",
|
|
132
|
+
"decision.no_such_option": "이 결정에 없는 선택지입니다.",
|
|
133
|
+
"decision.not_found": "결정을 찾을 수 없습니다.",
|
|
134
|
+
"decision.too_many": "프로젝트에 올릴 수 있는 결정 수를 다 채웠습니다.",
|
|
135
|
+
"decision.too_many_deciders": "결정할 사람을 너무 많이 지정했습니다.",
|
|
136
|
+
"decision.too_many_files": "결정에 파일이 너무 많습니다.",
|
|
137
|
+
"document.archived": "보관된 문서입니다.",
|
|
138
|
+
"document.conflict": "작성하는 사이 문서가 바뀌었습니다. 다시 불러온 뒤 수정하세요.",
|
|
139
|
+
"document.invalid_path": "문서에 쓸 수 없는 경로입니다.",
|
|
140
|
+
"document.not_found": "문서를 찾을 수 없습니다.",
|
|
141
|
+
"document.too_many": "프로젝트에 만들 수 있는 문서 수를 다 채웠습니다.",
|
|
142
|
+
"document.too_many_files": "문서에 첨부할 수 있는 파일 수를 다 채웠습니다.",
|
|
143
|
+
"document.too_many_versions": "문서에 남길 수 있는 버전 수를 다 채웠습니다.",
|
|
144
|
+
"document.version_not_found": "문서에 그런 버전이 없습니다.",
|
|
145
|
+
"feed.too_many": "실시간 화면이 너무 많이 열려 있습니다. 탭을 닫고 다시 시도하세요.",
|
|
146
|
+
"file.not_found": "파일을 찾을 수 없습니다.",
|
|
147
|
+
"file.not_served": "제공되지 않는 파일입니다.",
|
|
148
|
+
"file.not_text": "글로 읽을 수 없는 파일입니다.",
|
|
149
|
+
"file.store_unavailable": "지금은 파일을 불러올 수 없습니다. 잠시 후 다시 시도하세요.",
|
|
150
|
+
"file.too_large": "파일이 너무 큽니다.",
|
|
151
|
+
"goal.invalid_category": "워크스페이스에 없는 카테고리입니다.",
|
|
152
|
+
"goal.invalid_dates": "목표일이 시작일보다 빠릅니다.",
|
|
153
|
+
"goal.not_found": "목표를 찾을 수 없습니다.",
|
|
154
|
+
"goal.too_many": "프로젝트에 세울 수 있는 목표 수를 다 채웠습니다.",
|
|
155
|
+
"index.failed": "팩을 읽지 못했습니다.",
|
|
156
|
+
"index.indexing": "팩을 읽는 중입니다. 잠시 후 다시 시도하세요.",
|
|
157
|
+
"listing.exists": "이미 추가된 로그인이거나 이미 멤버인 사람입니다.",
|
|
158
|
+
"listing.not_found": "목록에 없는 로그인입니다.",
|
|
159
|
+
"listing.unknown_host": "이 콘솔에서는 그 제공자로 로그인할 수 없습니다.",
|
|
160
|
+
"member.exists": "이미 프로젝트에 있는 사람입니다.",
|
|
161
|
+
"member.invalid_person": "워크스페이스에 없는 사람입니다.",
|
|
162
|
+
"member.not_found": "프로젝트에 없는 사람입니다.",
|
|
163
|
+
"member.open_project": "공개 프로젝트라서 워크스페이스의 모든 사람이 이미 멤버입니다.",
|
|
164
|
+
"mount.ref_not_found": "팩의 그 버전을 찾을 수 없습니다.",
|
|
165
|
+
"mount.repo_not_found": "팩을 찾을 수 없습니다.",
|
|
166
|
+
"person.invalid_manager": "본인, 본인의 팀원, 비활성화된 사람은 매니저로 지정할 수 없습니다.",
|
|
167
|
+
"person.last_admin": "관리자가 한 명은 있어야 합니다.",
|
|
168
|
+
"person.not_found": "사람을 찾을 수 없습니다.",
|
|
169
|
+
"person.of_organization": "조직 설정으로 정해지는 사람이라 여기서 바꿀 수 없습니다.",
|
|
170
|
+
"picture.refused": "표시할 수 없는 이미지입니다.",
|
|
171
|
+
"picture.unavailable": "이미지를 불러오지 못했습니다. 잠시 후 다시 시도하세요.",
|
|
172
|
+
"plugin.conflict": "이미 처리되었거나 그사이에 바뀌었습니다.",
|
|
173
|
+
"plugin.disabled": "꺼져 있는 플러그인입니다.",
|
|
174
|
+
"plugin.failed": "플러그인에 문제가 생겼습니다.",
|
|
175
|
+
"plugin.forbidden": "플러그인이 할 수 없는 작업입니다.",
|
|
176
|
+
"plugin.invalid_args": "입력한 내용을 확인한 뒤 다시 시도하세요.",
|
|
177
|
+
"plugin.needs_consent": "플러그인이 요청한 권한에 관리자가 먼저 동의해야 합니다.",
|
|
178
|
+
"plugin.not_found": "플러그인을 찾을 수 없습니다.",
|
|
179
|
+
"plugin.rate_limited": "플러그인의 요청이 너무 많습니다. 잠시 후 다시 시도하세요.",
|
|
180
|
+
"plugin.required_by":
|
|
181
|
+
"이 플러그인이 필요한 다른 플러그인이 있습니다. 그 플러그인을 먼저 끄세요.",
|
|
182
|
+
"plugin.requires": "이 플러그인에 필요한 다른 플러그인이 켜져 있지 않습니다.",
|
|
183
|
+
"plugin.timeout": "플러그인의 응답이 너무 늦습니다.",
|
|
184
|
+
"plugin.too_many": "플러그인이 한도에 도달했습니다.",
|
|
185
|
+
"plugin.unavailable": "지금은 플러그인을 쓸 수 없습니다.",
|
|
186
|
+
"project.invalid_address": "팩 주소가 아닙니다.",
|
|
187
|
+
"project.invalid_icon": "프로젝트 이미지로 쓸 수 없는 파일입니다.",
|
|
188
|
+
"project.key_taken": "같은 키의 프로젝트가 이미 있습니다.",
|
|
189
|
+
"project.no_icon": "프로젝트에 이미지가 없습니다.",
|
|
190
|
+
"project.not_found": "프로젝트를 찾을 수 없습니다.",
|
|
191
|
+
"project.pack_connect_refused": "SkillCDN이 연결을 거부했습니다.",
|
|
192
|
+
"project.pack_connect_unsupported": "이 콘솔에서는 팩을 연결할 수 없습니다.",
|
|
193
|
+
"project.pack_token_refused": "SkillCDN이 이 토큰으로는 팩을 제공하지 않습니다.",
|
|
194
|
+
"project.pack_token_unsupported": "이 콘솔에서는 팩 토큰을 보관할 수 없습니다.",
|
|
195
|
+
"project.too_many": "워크스페이스에 만들 수 있는 프로젝트 수를 다 채웠습니다.",
|
|
196
|
+
"project.too_many_bytes": "프로젝트의 파일 용량을 다 썼습니다.",
|
|
197
|
+
"request.invalid": "입력한 내용을 확인한 뒤 다시 시도하세요.",
|
|
198
|
+
"request.too_large": "보내기에 너무 큽니다.",
|
|
199
|
+
"run.not_found": "실행을 찾을 수 없습니다.",
|
|
200
|
+
"run.not_yours": "다른 사람의 실행입니다.",
|
|
201
|
+
"run.over": "이미 끝난 실행입니다.",
|
|
202
|
+
"run.task_closed": "완료되었거나 중단된 작업입니다.",
|
|
203
|
+
"run.task_not_found": "이 프로젝트의 작업이 아닙니다.",
|
|
204
|
+
"run.too_many": "이 작업을 맡을 수 있는 횟수를 다 채웠습니다.",
|
|
205
|
+
"run.too_many_artifacts": "실행에 남길 수 있는 결과물 수를 다 채웠습니다.",
|
|
206
|
+
"run.too_many_reports": "실행에 남길 수 있는 보고 수를 다 채웠습니다.",
|
|
207
|
+
"skills.unavailable": "SkillCDN에 연결할 수 없습니다. 잠시 후 다시 시도하세요.",
|
|
208
|
+
"task.invalid_category": "워크스페이스에 없는 카테고리입니다.",
|
|
209
|
+
"task.invalid_dates": "마감일이 시작일보다 빠릅니다.",
|
|
210
|
+
"task.invalid_goal": "이 프로젝트의 목표가 아닙니다.",
|
|
211
|
+
"task.invalid_parent": "이 프로젝트의 작업이 아니거나, 상위 작업으로 두면 순환이 생깁니다.",
|
|
212
|
+
"task.invalid_worker": "이 프로젝트에서 일할 수 있는 사람만 담당자로 지정할 수 있습니다.",
|
|
213
|
+
"task.not_found": "작업을 찾을 수 없습니다.",
|
|
214
|
+
"task.too_many": "프로젝트에 만들 수 있는 작업 수를 다 채웠습니다.",
|
|
215
|
+
"token.expiry_at_most": "이 콘솔에서는 토큰을 그렇게 오래 쓰도록 만들 수 없습니다.",
|
|
216
|
+
"token.not_found": "토큰을 찾을 수 없습니다.",
|
|
217
|
+
"token.too_many": "만들 수 있는 토큰 수를 다 채웠습니다. 먼저 하나를 삭제하세요.",
|
|
218
|
+
"workspace.pack_connect_refused": "SkillCDN이 연결을 거부했습니다.",
|
|
219
|
+
"workspace.pack_connect_unsupported": "이 콘솔에서는 팩을 연결할 수 없습니다.",
|
|
220
|
+
"workspace.pack_token_refused": "SkillCDN이 이 토큰으로는 팩을 제공하지 않습니다.",
|
|
221
|
+
"workspace.pack_token_unsupported": "이 콘솔에서는 팩 토큰을 보관할 수 없습니다.",
|
|
222
|
+
},
|
|
101
223
|
nav: {
|
|
102
224
|
projects: "프로젝트",
|
|
103
225
|
work: "내 작업",
|
|
@@ -139,6 +261,11 @@ export const ko: Messages = {
|
|
|
139
261
|
problems: "실행할 수 없는 이유",
|
|
140
262
|
nothing: "없음",
|
|
141
263
|
capabilities: "권한",
|
|
264
|
+
required: "필수",
|
|
265
|
+
requiredHint: "플러그인이 동작하려면 꼭 필요해서 끌 수 없습니다.",
|
|
266
|
+
optional: "선택",
|
|
267
|
+
optionalHint: "쓰려는 것만 켜세요. 나중에 바꿀 수 있습니다.",
|
|
268
|
+
newCapability: "새 권한",
|
|
142
269
|
board: "보드 프로젝트",
|
|
143
270
|
boardHint: "플러그인의 결정, 태스크, 문서가 가는 곳입니다.",
|
|
144
271
|
boardNone: "없음",
|
|
@@ -180,7 +307,14 @@ export const ko: Messages = {
|
|
|
180
307
|
purged: "삭제했습니다.",
|
|
181
308
|
agentNote: "에이전트에게",
|
|
182
309
|
operations: "명령과 조회",
|
|
183
|
-
|
|
310
|
+
console: "콘솔 버전",
|
|
311
|
+
consoleRange: (range) => `콘솔 ${range}`,
|
|
312
|
+
timeZoneHint: "워크스페이스 시간대 기준입니다.",
|
|
313
|
+
addItem: "추가",
|
|
314
|
+
itemPlaceholder: "입력한 뒤 추가",
|
|
315
|
+
choose: "선택…",
|
|
316
|
+
},
|
|
317
|
+
frameUnavailable: "지금은 표시할 수 없습니다.",
|
|
184
318
|
capability: {
|
|
185
319
|
files: { name: "파일", opens: "레코드에 파일을 붙입니다. 배포가 허용한 용량까지." },
|
|
186
320
|
"people:read": { name: "사람 읽기", opens: "보는 사람이 볼 수 있는 사람들을 읽습니다." },
|
|
@@ -223,6 +357,11 @@ export const ko: Messages = {
|
|
|
223
357
|
name: "전용 데이터베이스 스키마",
|
|
224
358
|
opens: "콘솔 데이터베이스에 전용 스키마와 로그인 역할을 갖습니다.",
|
|
225
359
|
},
|
|
360
|
+
"outbound:webrtc": {
|
|
361
|
+
name: "페이지의 WebRTC 연결",
|
|
362
|
+
opens:
|
|
363
|
+
"페이지가 콘솔을 거치지 않고 각 사람의 브라우저에서 어떤 주소로든 연결합니다. 화면에 보여 주는 내용과 그 사람의 네트워크 주소가 어디로든 나갈 수 있습니다.",
|
|
364
|
+
},
|
|
226
365
|
outbound: (host) => ({ name: `${host}로 요청`, opens: `${host}에 https 요청을 보냅니다.` }),
|
|
227
366
|
plugins: (key) => ({
|
|
228
367
|
name: `플러그인 ${key} 호출`,
|
|
@@ -405,6 +544,7 @@ export const ko: Messages = {
|
|
|
405
544
|
},
|
|
406
545
|
partOf: "상위 작업:",
|
|
407
546
|
owner: "담당자",
|
|
547
|
+
writtenThrough: "작성한 에이전트",
|
|
408
548
|
workers: "작업자",
|
|
409
549
|
written: "작성",
|
|
410
550
|
changed: "변경",
|
|
@@ -488,11 +628,14 @@ export const ko: Messages = {
|
|
|
488
628
|
askedThrough: (agent) => `${agent}을(를) 통해 질문`,
|
|
489
629
|
about: "관련 작업:",
|
|
490
630
|
answeredBy: "답변",
|
|
631
|
+
answeredThrough: (agent) => `${agent}을(를) 통해 답변`,
|
|
491
632
|
context: "맥락",
|
|
492
633
|
files: "파일",
|
|
493
634
|
picture: (name) => `그림 ${name}`,
|
|
494
635
|
whatFollowed: "그 뒤에 일어난 일",
|
|
495
636
|
nothingWritten: "아직 적힌 것이 없습니다.",
|
|
637
|
+
wroteWhatFollowed: "그 뒤에 일어난 일을 적음",
|
|
638
|
+
wroteWhatFollowedThrough: (agent) => `${agent}을(를) 통해 그 뒤에 일어난 일을 적음`,
|
|
496
639
|
outcomePlaceholder: "답변으로 무엇을 했고 무엇이 됐는지, Markdown으로.",
|
|
497
640
|
writeWhatFollowed: "그 뒤에 일어난 일 쓰기",
|
|
498
641
|
changeIt: "고치기",
|
|
@@ -509,6 +652,8 @@ export const ko: Messages = {
|
|
|
509
652
|
noTask: "특정 작업 없음",
|
|
510
653
|
decider: "결정할 사람",
|
|
511
654
|
deciderPlaceholder: "지정하지 않으면 본인",
|
|
655
|
+
addDecider: "사람 추가",
|
|
656
|
+
decidersHint: "누구든 답할 수 있고, 첫 답으로 끝납니다.",
|
|
512
657
|
me: "(나)",
|
|
513
658
|
options: "선택지",
|
|
514
659
|
option: (n) => `선택지 ${n}`,
|
|
@@ -599,6 +744,7 @@ export const ko: Messages = {
|
|
|
599
744
|
target: "목표일",
|
|
600
745
|
noTarget: "목표일 없음",
|
|
601
746
|
setBy: "세운 사람",
|
|
747
|
+
setThrough: (agent) => `${agent}을(를) 통해`,
|
|
602
748
|
state: "상태",
|
|
603
749
|
nothingMore: "더 적힌 내용이 없습니다.",
|
|
604
750
|
about: "이루면 무엇이 달라지나",
|
|
@@ -784,6 +930,8 @@ export const ko: Messages = {
|
|
|
784
930
|
personUnlisted: (login) => `${login}을(를) 목록에서 뺐습니다`,
|
|
785
931
|
personDeactivated: (login) => `${login}을(를) 비활성화했습니다`,
|
|
786
932
|
personReactivated: (login) => `${login}을(를) 다시 활성화했습니다`,
|
|
933
|
+
managerChanged: (login, manager) => `${login}의 매니저를 ${manager}(으)로 지정했습니다`,
|
|
934
|
+
managerCleared: (login) => `${login}의 매니저 지정을 해제했습니다`,
|
|
787
935
|
projectCreated: (project) => `프로젝트 ${project}을(를) 만들었습니다`,
|
|
788
936
|
projectUpdated: (fields, project) => `프로젝트 ${project}의 ${fields}을(를) 바꿨습니다`,
|
|
789
937
|
memberAdded: (login, project, role) =>
|
|
@@ -823,11 +971,12 @@ export const ko: Messages = {
|
|
|
823
971
|
fileAttached: (label, page) => `${page}에 ${label}을(를) 첨부했습니다`,
|
|
824
972
|
pluginEnabled: (plugin) => `플러그인 ${plugin}을(를) 활성화했습니다`,
|
|
825
973
|
pluginDisabled: (plugin) => `플러그인 ${plugin}을(를) 비활성화했습니다`,
|
|
974
|
+
pluginConsented: (plugin) => `플러그인 ${plugin}의 권한을 바꿨습니다`,
|
|
826
975
|
pluginConfigured: (fields, plugin) => `플러그인 ${plugin}의 ${fields}을(를) 바꿨습니다`,
|
|
827
976
|
pluginGranted: (role, who, plugin) =>
|
|
828
|
-
`${who}에게 플러그인 ${plugin}의 ${role} 역할을
|
|
977
|
+
`${who}에게 플러그인 ${plugin}의 ${role} 역할을 부여했습니다`,
|
|
829
978
|
pluginRevoked: (role, who, plugin) =>
|
|
830
|
-
`${who}에게서 플러그인 ${plugin}의 ${role} 역할을
|
|
979
|
+
`${who}에게서 플러그인 ${plugin}의 ${role} 역할을 제거했습니다`,
|
|
831
980
|
pluginUpgraded: (plugin, version) => `플러그인 ${plugin}을(를) ${version}으로 올렸습니다`,
|
|
832
981
|
pluginCommand: (command, plugin, outcome) =>
|
|
833
982
|
`플러그인 ${plugin}의 ${command}을(를) 실행했습니다: ${outcome}`,
|
|
@@ -990,11 +1139,33 @@ export const ko: Messages = {
|
|
|
990
1139
|
},
|
|
991
1140
|
},
|
|
992
1141
|
|
|
1142
|
+
home: {
|
|
1143
|
+
edit: "화면 편집",
|
|
1144
|
+
hint: "끌어서 옮기세요. 크기는 오른쪽 위에서 고르고, ×로 화면에서 뺍니다.",
|
|
1145
|
+
done: "완료",
|
|
1146
|
+
add: "추가",
|
|
1147
|
+
remove: "화면에서 제거",
|
|
1148
|
+
size: "크기",
|
|
1149
|
+
sizes: {
|
|
1150
|
+
icon: "아이콘",
|
|
1151
|
+
small: "소형",
|
|
1152
|
+
medium: "중형",
|
|
1153
|
+
large: "대형",
|
|
1154
|
+
wide: "와이드",
|
|
1155
|
+
full: "전체",
|
|
1156
|
+
},
|
|
1157
|
+
},
|
|
1158
|
+
|
|
993
1159
|
people: {
|
|
994
1160
|
title: "사람들",
|
|
995
1161
|
list: "사람들",
|
|
996
1162
|
narrowed: "같은 프로젝트에 속한 사람들과 관리자입니다.",
|
|
997
1163
|
roleOf: (name) => `${name}의 역할`,
|
|
1164
|
+
role: "역할",
|
|
1165
|
+
manager: "매니저",
|
|
1166
|
+
managerOf: (name) => `${name}의 매니저`,
|
|
1167
|
+
team: "팀원",
|
|
1168
|
+
nobody: "없음",
|
|
998
1169
|
letIn: "사람 추가",
|
|
999
1170
|
letInAria: "사람 추가",
|
|
1000
1171
|
notSignedIn: "추가됨, 아직 로그인하지 않음",
|
package/src/index.ts
CHANGED
|
@@ -82,6 +82,12 @@ export {
|
|
|
82
82
|
type GoalViewProps,
|
|
83
83
|
goalMonth,
|
|
84
84
|
} from "./components/goals.js";
|
|
85
|
+
export {
|
|
86
|
+
HomeGrid,
|
|
87
|
+
type HomeGridProps,
|
|
88
|
+
ProjectTile,
|
|
89
|
+
type ProjectTileProps,
|
|
90
|
+
} from "./components/home.js";
|
|
85
91
|
export { Markdown, type MarkdownProps } from "./components/markdown.js";
|
|
86
92
|
export { MyDecisions, type MyDecisionsProps } from "./components/my-decisions.js";
|
|
87
93
|
export {
|
|
@@ -135,8 +141,6 @@ export {
|
|
|
135
141
|
BridgeRefusal,
|
|
136
142
|
PluginFrame,
|
|
137
143
|
type PluginFrameProps,
|
|
138
|
-
PluginWidgets,
|
|
139
|
-
type PluginWidgetsProps,
|
|
140
144
|
performBridgeCall,
|
|
141
145
|
readTheme,
|
|
142
146
|
} from "./components/plugin-frame.js";
|
|
@@ -149,8 +153,6 @@ export {
|
|
|
149
153
|
PROJECT_ROLE_LABELS,
|
|
150
154
|
ProjectForm,
|
|
151
155
|
type ProjectFormProps,
|
|
152
|
-
ProjectList,
|
|
153
|
-
type ProjectListProps,
|
|
154
156
|
ProjectMark,
|
|
155
157
|
ProjectRoleBadge,
|
|
156
158
|
VISIBILITY_LABELS,
|
|
@@ -326,4 +328,4 @@ export {
|
|
|
326
328
|
workHref,
|
|
327
329
|
} from "./router.js";
|
|
328
330
|
export { CONSOLE_TOKENS } from "./tokens.js";
|
|
329
|
-
export { errorWords, useAction } from "./use-action.js";
|
|
331
|
+
export { errorWords, useAction, wordsForFailure } from "./use-action.js";
|
package/src/limits.ts
CHANGED
|
@@ -11,6 +11,12 @@ export const MAX_BODY_LENGTH = 20_000;
|
|
|
11
11
|
export const MAX_LINKS = 20;
|
|
12
12
|
/** How many people may be at work on one task at a time (ADR-0037): a crew, not a mailing list. */
|
|
13
13
|
export const MAX_WORKERS = 20;
|
|
14
|
+
/** How many people one decision may be addressed to (ADR-0057): the approvers of a team, any of whom may answer. */
|
|
15
|
+
export const MAX_DECIDERS = 10;
|
|
16
|
+
/** How many tiles a person keeps at a width of their front page, and how many they took off it (ADR-0061). */
|
|
17
|
+
export const MAX_HOME_TILES = 200;
|
|
18
|
+
/** How far down the front page a tile may stand, in rows. */
|
|
19
|
+
export const MAX_HOME_ROW = 1000;
|
|
14
20
|
export const MAX_LINK_LABEL_LENGTH = 120;
|
|
15
21
|
export const MAX_URL_LENGTH = 2048;
|
|
16
22
|
/** The options of a decision, and how a person words each. */
|