@trismegisto/spine 3.3.2 → 3.3.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 +15 -2
- package/fesm2022/trismegisto-spine-audit.mjs +6 -6
- package/fesm2022/trismegisto-spine-audit.mjs.map +1 -1
- package/fesm2022/{trismegisto-spine-auto-service-auto-service-client.component-BAfeLyTB.mjs → trismegisto-spine-auto-service-auto-service-client.component-kAXaCM5W.mjs} +8 -8
- package/fesm2022/{trismegisto-spine-auto-service-auto-service-client.component-BAfeLyTB.mjs.map → trismegisto-spine-auto-service-auto-service-client.component-kAXaCM5W.mjs.map} +1 -1
- package/fesm2022/{trismegisto-spine-auto-service-auto-service-groups.component-BYjIQ9ID.mjs → trismegisto-spine-auto-service-auto-service-groups.component-DE2QIGRH.mjs} +251 -85
- package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-DE2QIGRH.mjs.map +1 -0
- package/fesm2022/{trismegisto-spine-auto-service-auto-service-news-page.component-CBemH4hr.mjs → trismegisto-spine-auto-service-auto-service-news-page.component-BW7BJ0oD.mjs} +2 -2
- package/fesm2022/{trismegisto-spine-auto-service-auto-service-news-page.component-CBemH4hr.mjs.map → trismegisto-spine-auto-service-auto-service-news-page.component-BW7BJ0oD.mjs.map} +1 -1
- package/fesm2022/{trismegisto-spine-auto-service-auto-service-ratings-page.component-C_THGTkw.mjs → trismegisto-spine-auto-service-auto-service-ratings-page.component-CHPU-QLJ.mjs} +2 -2
- package/fesm2022/{trismegisto-spine-auto-service-auto-service-ratings-page.component-C_THGTkw.mjs.map → trismegisto-spine-auto-service-auto-service-ratings-page.component-CHPU-QLJ.mjs.map} +1 -1
- package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-CkiCTmXD.mjs +3733 -0
- package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-CkiCTmXD.mjs.map +1 -0
- package/fesm2022/{trismegisto-spine-auto-service-auto-service.component-QsIQ61w2.mjs → trismegisto-spine-auto-service-auto-service.component-D58Ht9PH.mjs} +7 -7
- package/fesm2022/{trismegisto-spine-auto-service-auto-service.component-QsIQ61w2.mjs.map → trismegisto-spine-auto-service-auto-service.component-D58Ht9PH.mjs.map} +1 -1
- package/fesm2022/{trismegisto-spine-auto-service-groups.technical-_jQrg1Qh.mjs → trismegisto-spine-auto-service-groups.technical-CB1D3ANC.mjs} +12 -3
- package/fesm2022/trismegisto-spine-auto-service-groups.technical-CB1D3ANC.mjs.map +1 -0
- package/fesm2022/{trismegisto-spine-auto-service-groups.usage-OvWjNeeT.mjs → trismegisto-spine-auto-service-groups.usage-De2MhlE7.mjs} +7 -2
- package/fesm2022/{trismegisto-spine-auto-service-groups.usage-OvWjNeeT.mjs.map → trismegisto-spine-auto-service-groups.usage-De2MhlE7.mjs.map} +1 -1
- package/fesm2022/{trismegisto-spine-auto-service-home.component-rQ3dIGIE.mjs → trismegisto-spine-auto-service-home.component-9WvXOH3l.mjs} +7 -4
- package/fesm2022/trismegisto-spine-auto-service-home.component-9WvXOH3l.mjs.map +1 -0
- package/fesm2022/{trismegisto-spine-auto-service-suggestions.technical-BtUK6sKD.mjs → trismegisto-spine-auto-service-suggestions.technical-CGBBzAR8.mjs} +14 -1
- package/fesm2022/{trismegisto-spine-auto-service-suggestions.technical-BtUK6sKD.mjs.map → trismegisto-spine-auto-service-suggestions.technical-CGBBzAR8.mjs.map} +1 -1
- package/fesm2022/{trismegisto-spine-auto-service-suggestions.usage-BwO9Hjsx.mjs → trismegisto-spine-auto-service-suggestions.usage-DnAJS-Z0.mjs} +26 -3
- package/fesm2022/trismegisto-spine-auto-service-suggestions.usage-DnAJS-Z0.mjs.map +1 -0
- package/fesm2022/trismegisto-spine-auto-service.mjs +25 -12
- package/fesm2022/trismegisto-spine-auto-service.mjs.map +1 -1
- package/fesm2022/trismegisto-spine-graphql.mjs +3 -1
- package/fesm2022/trismegisto-spine-graphql.mjs.map +1 -1
- package/fesm2022/trismegisto-spine-layout-suggestions-page.component-CEKMqera.mjs +532 -0
- package/fesm2022/trismegisto-spine-layout-suggestions-page.component-CEKMqera.mjs.map +1 -0
- package/fesm2022/trismegisto-spine-layout-trismegisto-spine-layout-DiAfxIGP.mjs +8764 -0
- package/fesm2022/trismegisto-spine-layout-trismegisto-spine-layout-DiAfxIGP.mjs.map +1 -0
- package/fesm2022/trismegisto-spine-layout.mjs +1 -7662
- package/fesm2022/trismegisto-spine-layout.mjs.map +1 -1
- package/fesm2022/trismegisto-spine-notification.mjs +1 -1
- package/fesm2022/trismegisto-spine-notification.mjs.map +1 -1
- package/fesm2022/trismegisto-spine-routing.mjs +16 -3
- package/fesm2022/trismegisto-spine-routing.mjs.map +1 -1
- package/fesm2022/trismegisto-spine-shell.mjs +4 -2
- package/fesm2022/trismegisto-spine-shell.mjs.map +1 -1
- package/fesm2022/trismegisto-spine-side-panel.mjs +1 -1
- package/fesm2022/trismegisto-spine-side-panel.mjs.map +1 -1
- package/fesm2022/trismegisto-spine.mjs +813 -38
- package/fesm2022/trismegisto-spine.mjs.map +1 -1
- package/package.json +6 -6
- package/types/trismegisto-spine-auto-service.d.ts +20 -4
- package/types/trismegisto-spine-auto-service.d.ts.map +1 -1
- package/types/trismegisto-spine-layout.d.ts +1200 -74
- package/types/trismegisto-spine-layout.d.ts.map +1 -1
- package/types/trismegisto-spine-routing.d.ts.map +1 -1
- package/types/trismegisto-spine-shell.d.ts.map +1 -1
- package/types/trismegisto-spine.d.ts +350 -14
- package/types/trismegisto-spine.d.ts.map +1 -1
- package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-BYjIQ9ID.mjs.map +0 -1
- package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-DIeunpQ9.mjs +0 -2123
- package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-DIeunpQ9.mjs.map +0 -1
- package/fesm2022/trismegisto-spine-auto-service-groups.technical-_jQrg1Qh.mjs.map +0 -1
- package/fesm2022/trismegisto-spine-auto-service-home.component-rQ3dIGIE.mjs.map +0 -1
- package/fesm2022/trismegisto-spine-auto-service-suggestions.usage-BwO9Hjsx.mjs.map +0 -1
|
@@ -104,6 +104,31 @@ function mergeGroup(group) {
|
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
const pages = new Map();
|
|
108
|
+
/** Registra (ou troca) uma página do spine. Chamado no bootstrap, por quem liga o recurso (ex.: `provideShell`). */
|
|
109
|
+
function registerSpineBuiltinPage(page) {
|
|
110
|
+
if (page.route.route_redirect)
|
|
111
|
+
pages.set(page.route.route_redirect, page);
|
|
112
|
+
}
|
|
113
|
+
/** A página do spine no endereço (sem query/fragmento), ou null. */
|
|
114
|
+
function spineBuiltinPageAt(url) {
|
|
115
|
+
const path = (url.split(/[?#]/)[0] || '/').replace(/\/+$/, '') || '/';
|
|
116
|
+
return pages.get(path) ?? null;
|
|
117
|
+
}
|
|
118
|
+
/** A página do spine pelo `router_id` sintético (o que o distribuidor recebe), ou null. */
|
|
119
|
+
function spineBuiltinPageById(routerId) {
|
|
120
|
+
if (!routerId)
|
|
121
|
+
return null;
|
|
122
|
+
for (const page of pages.values())
|
|
123
|
+
if (page.route.router_id === routerId)
|
|
124
|
+
return page;
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
/** Só para testes: esquece as páginas registradas. */
|
|
128
|
+
function clearSpineBuiltinPages() {
|
|
129
|
+
pages.clear();
|
|
130
|
+
}
|
|
131
|
+
|
|
107
132
|
/**
|
|
108
133
|
* Ponto único de import dos componentes standalone do `@trismegisto/angular` usados nos templates do
|
|
109
134
|
* spine. O DS novo é standalone-only (sem agregador), então este array cumpre o mesmo papel prático:
|
|
@@ -331,7 +356,7 @@ function applySpineFavicon(doc, href) {
|
|
|
331
356
|
return link;
|
|
332
357
|
}
|
|
333
358
|
|
|
334
|
-
/** Os
|
|
359
|
+
/** Os 125 ícones que o spine usa por dentro. */
|
|
335
360
|
const SPINE_ICONS = [
|
|
336
361
|
{ "name": "accessibility-1", "body": "<circle cx=\"12\" cy=\"12\" r=\"8.5\"/><circle cx=\"12\" cy=\"7.6\" r=\"1.4\"/><path d=\"M7.5 10.5l4.5.8 4.5-.8M12 11.3v2.4M12 13.7l-2 3.6M12 13.7l2 3.6\"/>", "solid": true, "categories": ["essential"] },
|
|
337
362
|
{ "name": "alarm-clock", "body": "<circle cx=\"12\" cy=\"13\" r=\"7\"/><path d=\"M12 9.5v3.8l2.2 1.5M4 6.5l3-2.5M20 6.5l-3-2.5\"/>", "solid": true, "categories": ["essential"] },
|
|
@@ -341,6 +366,7 @@ const SPINE_ICONS = [
|
|
|
341
366
|
{ "name": "applications", "body": "<rect x=\"4\" y=\"4\" width=\"6.5\" height=\"6.5\" rx=\"1.5\"/><rect x=\"13.5\" y=\"4\" width=\"6.5\" height=\"6.5\" rx=\"1.5\"/><rect x=\"4\" y=\"13.5\" width=\"6.5\" height=\"6.5\" rx=\"1.5\"/><rect x=\"13.5\" y=\"13.5\" width=\"6.5\" height=\"6.5\" rx=\"1.5\"/>", "solid": true, "categories": ["technology"] },
|
|
342
367
|
{ "name": "archive", "body": "<rect x=\"3.5\" y=\"4.5\" width=\"17\" height=\"4.5\" rx=\"1.5\"/><path d=\"M5 9v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9M10 13h4\"/>", "solid": true, "categories": ["technology"] },
|
|
343
368
|
{ "name": "arrow", "body": "<path d=\"M12 19V5M8.1 8.9L12 5l3.9 3.9\"/>", "categories": ["foundation"], "aliases": ["arrow-mini"] },
|
|
369
|
+
{ "name": "arrow-send", "body": "<path d=\"M21 3L10.5 13.5M21 3l-6.5 18-4-7.5L3 9.5z\"/>" },
|
|
344
370
|
{ "name": "assign-user", "body": "<circle cx=\"9.5\" cy=\"8\" r=\"3.5\"/><path d=\"M3 20c.7-3.4 3.2-5.5 6.5-5.5 1.7 0 3 .5 4 1.2\"/><path d=\"M14.5 17.5h6M17.5 14.5l3 3-3 3\"/>", "solid": true, "categories": ["technology"] },
|
|
345
371
|
{ "name": "authenticator", "body": "<rect x=\"7\" y=\"2.5\" width=\"10\" height=\"19\" rx=\"2.5\"/><path d=\"M10.5 18.5h3\"/><path d=\"M9.8 10.5l1.8 1.8 3-3.3\"/>" },
|
|
346
372
|
{ "name": "ballon-question", "body": "<path d=\"M5.5 4.5h13A2.5 2.5 0 0 1 21 7v8a2.5 2.5 0 0 1-2.5 2.5H12L7.5 21v-3.5h-2A2.5 2.5 0 0 1 3 15V7a2.5 2.5 0 0 1 2.5-2.5z\"/><path d=\"M10 9a2 2 0 1 1 3 1.7c-.7.4-1 .8-1 1.5\"/><path d=\"M12 14.8h.01\"/>" },
|
|
@@ -353,6 +379,8 @@ const SPINE_ICONS = [
|
|
|
353
379
|
{ "name": "bug", "body": "<ellipse cx=\"12\" cy=\"13.5\" rx=\"4.5\" ry=\"6\"/><path d=\"M9.5 7.5a2.5 2.5 0 0 1 5 0M12 7.5v12M7.5 11H4M16.5 11H20M7.5 16H4.5M16.5 16h3M8 8L5.5 5.5M16 8l2.5-2.5\"/>", "solid": true, "categories": ["essential"] },
|
|
354
380
|
{ "name": "calendar", "body": "<rect x=\"4\" y=\"5.5\" width=\"16\" height=\"14\" rx=\"2.5\"/><path d=\"M4 10h16M8.5 3.5v4M15.5 3.5v4\"/>", "solid": true, "categories": ["foundation", "social"], "aliases": ["calendar-mini"] },
|
|
355
381
|
{ "name": "calendar-check", "body": "<rect x=\"4\" y=\"5.5\" width=\"16\" height=\"14\" rx=\"2.5\"/><path d=\"M4 10h16M8.5 3.5v4M15.5 3.5v4\"/><path d=\"M8.8 14.8l2.2 2.2 4.2-4.2\"/>" },
|
|
382
|
+
{ "name": "calendar-days", "body": "<rect x=\"4\" y=\"5.5\" width=\"16\" height=\"14\" rx=\"2.5\"/><path d=\"M4 10h16M8.5 3.5v4M15.5 3.5v4\"/><path d=\"M8 14h.01M12 14h.01M16 14h.01M8 17h.01M12 17h.01\"/>" },
|
|
383
|
+
{ "name": "chat-bubble", "body": "<path d=\"M12 4.5c4.7 0 8.5 3 8.5 7s-3.8 7-8.5 7c-1 0-1.9-.1-2.8-.4L5 20l1.2-3.6C4.6 15.3 3.5 13.7 3.5 11.5c0-4 3.8-7 8.5-7z\"/>", "solid": true, "categories": ["social"] },
|
|
356
384
|
{ "name": "check", "body": "<path d=\"M5 12.5l4.5 4.5L19 7.5\"/>", "categories": ["foundation"], "aliases": ["check-mini"] },
|
|
357
385
|
{ "name": "check-circle", "body": "<circle cx=\"12\" cy=\"12\" r=\"8.5\"/><path d=\"M8 12.3l2.8 2.8 5.2-5.6\"/>", "solid": true, "categories": ["foundation"], "aliases": ["check-circle-mini"] },
|
|
358
386
|
{ "name": "circle", "body": "<circle cx=\"12\" cy=\"12\" r=\"8.5\"/>", "solid": true, "categories": ["essential"] },
|
|
@@ -365,8 +393,10 @@ const SPINE_ICONS = [
|
|
|
365
393
|
{ "name": "comment-message", "body": "<path d=\"M5.5 4.5h13A2.5 2.5 0 0 1 21 7v8a2.5 2.5 0 0 1-2.5 2.5H12L7.5 21v-3.5h-2A2.5 2.5 0 0 1 3 15V7a2.5 2.5 0 0 1 2.5-2.5z\"/><path d=\"M8 9.5h8M8 12.5h5\"/>" },
|
|
366
394
|
{ "name": "computer", "body": "<rect x=\"3\" y=\"5\" width=\"12\" height=\"9\" rx=\"1.5\"/><path d=\"M7 18h4M9 14v4\"/><rect x=\"17\" y=\"4.5\" width=\"4\" height=\"15\" rx=\"1.5\"/><path d=\"M19 16.5h.01\"/>", "solid": true, "categories": ["technology"] },
|
|
367
395
|
{ "name": "copy", "body": "<rect x=\"9\" y=\"7\" width=\"11\" height=\"13.5\" rx=\"2\"/><path d=\"M12 12h5M12 15.5h5M15 7V5.5a2 2 0 0 0-2-2H6.5a2 2 0 0 0-2 2V16a2 2 0 0 0 2 2H9\"/>", "solid": true, "categories": ["essential"] },
|
|
396
|
+
{ "name": "dashboard", "body": "<rect x=\"3.5\" y=\"3.5\" width=\"7\" height=\"9\" rx=\"1.5\"/><rect x=\"13.5\" y=\"3.5\" width=\"7\" height=\"5\" rx=\"1.5\"/><rect x=\"3.5\" y=\"15.5\" width=\"7\" height=\"5\" rx=\"1.5\"/><rect x=\"13.5\" y=\"11.5\" width=\"7\" height=\"9\" rx=\"1.5\"/>", "solid": true, "categories": ["technology"] },
|
|
368
397
|
{ "name": "density-comfortable", "body": "<path d=\"M12 10V3.5M8.5 7L12 3.5 15.5 7M12 14v6.5M8.5 17l3.5 3.5 3.5-3.5\"/>", "categories": ["foundation"], "aliases": ["density-expand", "spacing-comfortable"] },
|
|
369
398
|
{ "name": "density-compact", "body": "<path d=\"M12 3v6.5M8.5 6l3.5 3.5L15.5 6M12 21v-6.5M8.5 18l3.5-3.5 3.5 3.5M6 12h12\"/>", "categories": ["foundation"], "aliases": ["density-collapse", "spacing-compact"] },
|
|
399
|
+
{ "name": "details", "body": "<path d=\"M5 7h.01\"/><path d=\"M5 12h.01\"/><path d=\"M5 17h.01\"/><path d=\"M9 7H20M9 12H20M9 17H20\"/>", "solid": true, "categories": ["essential"] },
|
|
370
400
|
{ "name": "devices", "body": "<rect x=\"3\" y=\"5\" width=\"13\" height=\"9.5\" rx=\"1.5\"/><path d=\"M7 18.5h5M9.5 14.5v4\"/><rect x=\"17.5\" y=\"9\" width=\"3.5\" height=\"9\" rx=\"1.2\"/>", "solid": true, "categories": ["technology"] },
|
|
371
401
|
{ "name": "doc-list", "body": "<path d=\"M7.5 3.5h6l4.5 4.5v11.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19.5v-14A1.5 1.5 0 0 1 7.5 3.5z\"/><path d=\"M13.5 3.5V8H18\"/><path d=\"M9.5 12.5h.01\"/><path d=\"M9.5 15.5h.01\"/><path d=\"M9.5 18.5h.01\"/><path d=\"M12.5 12.5H15M12.5 15.5H15M12.5 18.5H15\"/>" },
|
|
372
402
|
{ "name": "download", "body": "<path d=\"M12 4v11M7.5 10.5l4.5 4.5 4.5-4.5M5 16v3.5h14V16\"/>", "categories": ["essential"] },
|
|
@@ -399,6 +429,7 @@ const SPINE_ICONS = [
|
|
|
399
429
|
{ "name": "link", "body": "<g transform=\"rotate(-45 12 12)\"><path d=\"M9 8.5H7a3.5 3.5 0 0 0 0 7h2\"/><path d=\"M15 8.5h2a3.5 3.5 0 0 1 0 7h-2\"/><path d=\"M9.5 12h5\"/></g>", "categories": ["technology"] },
|
|
400
430
|
{ "name": "list", "body": "<path d=\"M4 6h16M4 12h16M4 18h10\"/>", "solid": true, "categories": ["essential"] },
|
|
401
431
|
{ "name": "list-check", "body": "<path d=\"M11 6h9M11 12h9M11 18h9\"/><path d=\"M3.5 6.2l1.4 1.4 2.8-3M3.5 12.2l1.4 1.4 2.8-3M3.5 18.2l1.4 1.4 2.8-3\"/>" },
|
|
432
|
+
{ "name": "lock-close", "body": "<rect x=\"6\" y=\"10.5\" width=\"12\" height=\"9.5\" rx=\"2.5\"/><path d=\"M8.5 10.5V7.5a3.5 3.5 0 0 1 7 0v3\"/><circle cx=\"12\" cy=\"14.2\" r=\"1.4\"/><path d=\"M12 15.6v1.8\"/>", "categories": ["essential"] },
|
|
402
433
|
{ "name": "login", "body": "<path d=\"M14 4.5h4a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2h-4\"/><path d=\"M3.5 12L14 12M10.82 15.18L14 12L10.82 8.82\"/>", "solid": true, "categories": ["essential"] },
|
|
403
434
|
{ "name": "logout", "body": "<path d=\"M10 4.5H6a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h4\"/><path d=\"M10 12L20.5 12M17.32 15.18L20.5 12L17.32 8.82\"/>", "solid": true, "categories": ["essential"] },
|
|
404
435
|
{ "name": "magnifying-glass", "body": "<circle cx=\"9.5\" cy=\"9.5\" r=\"5.5\"/><path d=\"M13.8 13.8L20 20\"/><path d=\"M6.8 9a2.8 2.8 0 0 1 2.7-2.7\"/>" },
|
|
@@ -409,8 +440,10 @@ const SPINE_ICONS = [
|
|
|
409
440
|
{ "name": "moon", "body": "<path d=\"M19.5 14.5A8 8 0 1 1 9.5 4.5a6.5 6.5 0 0 0 10 10z\"/>", "solid": true, "categories": ["essential"] },
|
|
410
441
|
{ "name": "new", "body": "<path d=\"M12 3.5c.5 4.5 2.5 6.5 8 8.5-5.5 2-7.5 4-8 8.5-.5-4.5-2.5-6.5-8-8.5 5.5-2 7.5-4 8-8.5z\"/>", "solid": true, "categories": ["essential"] },
|
|
411
442
|
{ "name": "node", "body": "<polygon points=\"12 3.5 19.36 7.75 19.36 16.25 12 20.5 4.64 16.25 4.64 7.75\"/><circle cx=\"12\" cy=\"12\" r=\"2.5\"/>", "categories": ["technology"] },
|
|
443
|
+
{ "name": "nodes", "body": "<circle cx=\"12\" cy=\"5\" r=\"2\"/><circle cx=\"5.5\" cy=\"19\" r=\"2\"/><circle cx=\"18.5\" cy=\"19\" r=\"2\"/><path d=\"M11 6.8L6.5 17.2M13 6.8l4.5 10.4M7.5 19h9\"/>", "categories": ["technology"] },
|
|
412
444
|
{ "name": "note", "body": "<path d=\"M5 4.5h14v10l-5 5H5z\"/><path d=\"M19 14.5h-5v5\"/><path d=\"M8 9h8M8 12.5h5\"/>", "solid": true, "categories": ["essential"] },
|
|
413
445
|
{ "name": "pencil", "body": "<path d=\"M4.5 19.5l.8-4.3L16 4.5a2 2 0 0 1 2.8 0l.7.7a2 2 0 0 1 0 2.8L8.8 18.7z\"/><path d=\"M13.5 7l3.5 3.5\"/>", "solid": true, "categories": ["essential"] },
|
|
446
|
+
{ "name": "play", "body": "<polygon points=\"8 5.5 18.5 12 8 18.5\"/>", "solid": true, "categories": ["media"] },
|
|
414
447
|
{ "name": "plugin", "body": "<path d=\"M6.5 8h11v3a5.5 5.5 0 0 1-11 0z\"/><path d=\"M9.5 3.5V8M14.5 3.5V8\"/><path d=\"M12 16.5v4\"/>", "solid": true, "categories": ["technology"] },
|
|
415
448
|
{ "name": "plus", "body": "<path d=\"M12 5v14M5 12h14\"/>", "categories": ["essential"] },
|
|
416
449
|
{ "name": "pop-out", "body": "<path d=\"M10 5H6a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2v-4\"/><path d=\"M14 4h6v6M20 4l-9 9\"/>", "categories": ["essential"] },
|
|
@@ -427,8 +460,10 @@ const SPINE_ICONS = [
|
|
|
427
460
|
{ "name": "sort-vertical", "body": "<path d=\"M12 4v16M8.500 7.500L12 4l3.500 3.500M8.500 16.500L12 20l3.500-3.500\"/>", "categories": ["foundation"] },
|
|
428
461
|
{ "name": "star", "body": "<polygon points=\"12 3.5 14.3 8.84 20.08 9.37 15.72 13.21 17 18.88 12 15.91 7 18.88 8.28 13.21 3.92 9.37 9.7 8.84\"/>", "solid": true, "categories": ["social"], "aliases": ["star-fill", "empty-star", "full-star"] },
|
|
429
462
|
{ "name": "sun", "body": "<circle cx=\"12\" cy=\"12\" r=\"4\"/><path d=\"M19.00 12.00L21.00 12.00M16.95 16.95L18.36 18.36M12.00 19.00L12.00 21.00M7.05 16.95L5.64 18.36M5.00 12.00L3.00 12.00M7.05 7.05L5.64 5.64M12.00 5.00L12.00 3.00M16.95 7.05L18.36 5.64\"/>", "solid": true, "categories": ["essential"] },
|
|
463
|
+
{ "name": "table", "body": "<rect x=\"3.5\" y=\"5\" width=\"17\" height=\"14\" rx=\"2.5\"/><path d=\"M3.500 10h17M3.500 14.500h17M10 10v9\"/>", "categories": ["essential"] },
|
|
430
464
|
{ "name": "tag", "body": "<path d=\"M3.5 12.5V5.5a2 2 0 0 1 2-2h7l8 8a2 2 0 0 1 0 2.8l-6.2 6.2a2 2 0 0 1-2.8 0z\"/><path d=\"M8 8h.01\"/>", "solid": true, "categories": ["essential"] },
|
|
431
465
|
{ "name": "target", "body": "<circle cx=\"12\" cy=\"12\" r=\"8.5\"/><circle cx=\"12\" cy=\"12\" r=\"4.5\"/><path d=\"M12 12h.01\"/>", "solid": true, "categories": ["essential"] },
|
|
466
|
+
{ "name": "tasks", "body": "<path d=\"M4 6.500l1.500 1.500L8 5.500M4 12.500L5.500 14 8 11.500M4 18.500L5.500 20 8 17.500M11 7h9M11 13h9M11 19h9\"/>", "solid": true, "categories": ["social"] },
|
|
432
467
|
{ "name": "text", "body": "<path d=\"M5 6.5V4.5h14v2M12 4.5v15M9.5 19.5h5\"/>", "categories": ["text-edit"] },
|
|
433
468
|
{ "name": "thumbs-up", "body": "<rect x=\"4\" y=\"11\" width=\"4\" height=\"9\" rx=\"1\"/><path d=\"M8 11l3-6.5a2 2 0 0 1 3 1.8L13.5 10H18a2 2 0 0 1 2 2.3l-1 5.7a2 2 0 0 1-2 1.7H8z\"/>", "solid": true, "categories": ["social"] },
|
|
434
469
|
{ "name": "timeline", "body": "<circle cx=\"5.5\" cy=\"12\" r=\"2.2\"/><circle cx=\"12\" cy=\"12\" r=\"2.2\"/><circle cx=\"18.5\" cy=\"12\" r=\"2.2\"/><path d=\"M7.7 12h2.1M14.2 12h2.1M12 9.8V5M5.5 14.2V19M18.5 14.2V19\"/>", "categories": ["essential"] },
|
|
@@ -504,6 +539,7 @@ const IDLE_SUFFIX = 'idle_minutes';
|
|
|
504
539
|
const START_PAGE_SUFFIX = 'start_page';
|
|
505
540
|
const NOTICES_SUFFIX = 'notices';
|
|
506
541
|
const BROWSER_NOTICES_SUFFIX = 'browser_notices';
|
|
542
|
+
const SPLIT_TABS_SUFFIX = 'split_tabs';
|
|
507
543
|
/** Minutos de inatividade oferecidos em "Encerrar por inatividade" (0 = nunca). */
|
|
508
544
|
const SPINE_IDLE_OPTIONS = [0, 5, 15, 30, 60];
|
|
509
545
|
const CHANNEL_BASE = 'spine_preferences';
|
|
@@ -514,6 +550,8 @@ const CHANNEL_BASE = 'spine_preferences';
|
|
|
514
550
|
* (`HermesZoomService.setTextScale`), movimento (`HermesMotionService.setPreference`) e o interruptor dos
|
|
515
551
|
* atalhos de tecla única (WCAG 2.1.4) do `HermesShortcutService`.
|
|
516
552
|
*
|
|
553
|
+
* Guarda ainda se a área de abas pode ser dividida em painéis (`splitTabs`, desligado por padrão).
|
|
554
|
+
*
|
|
517
555
|
* Também guarda as preferências dos recursos opcionais (`SpineFeatures`): minutos de inatividade, tela inicial,
|
|
518
556
|
* tipos de aviso ligados e o aviso do navegador.
|
|
519
557
|
*
|
|
@@ -567,6 +605,7 @@ class SpinePreferencesService {
|
|
|
567
605
|
this.startPageKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${START_PAGE_SUFFIX}`;
|
|
568
606
|
this.noticesKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${NOTICES_SUFFIX}`;
|
|
569
607
|
this.browserNoticesKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${BROWSER_NOTICES_SUFFIX}`;
|
|
608
|
+
this.splitTabsKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${SPLIT_TABS_SUFFIX}`;
|
|
570
609
|
/** Encerrar a sessão depois de tantos minutos sem uso (0 = nunca). Os limites do app (`SpineFeatures.idleTimeout`)
|
|
571
610
|
* são aplicados por quem usa o valor (`SpineIdleService`), não aqui. */
|
|
572
611
|
this.idleMinutes = signal(toIdleMinutes(this.read(this.idleKey)), ...(ngDevMode ? [{ debugName: "idleMinutes" }] : /* istanbul ignore next */ []));
|
|
@@ -576,6 +615,8 @@ class SpinePreferencesService {
|
|
|
576
615
|
this.noticeTypes = signal(toNoticeTypes(this.read(this.noticesKey)), ...(ngDevMode ? [{ debugName: "noticeTypes" }] : /* istanbul ignore next */ []));
|
|
577
616
|
/** Aviso do navegador (Notification API) quando a aba está em segundo plano. */
|
|
578
617
|
this.browserNotices = signal(this.read(this.browserNoticesKey) === 'on', ...(ngDevMode ? [{ debugName: "browserNotices" }] : /* istanbul ignore next */ []));
|
|
618
|
+
/** Dividir a área de abas em painéis (lado a lado ou empilhados). Padrão: desligado, um painel só. */
|
|
619
|
+
this.splitTabs = signal(this.read(this.splitTabsKey) === 'on', ...(ngDevMode ? [{ debugName: "splitTabs" }] : /* istanbul ignore next */ []));
|
|
579
620
|
/** Idiomas oferecidos na configuração, cada um com o nome no próprio idioma (padrão de mercado). */
|
|
580
621
|
this.languages = [
|
|
581
622
|
// check-strings: off — cada idioma escrito no próprio idioma (padrão de mercado), igual em todo catálogo.
|
|
@@ -608,6 +649,8 @@ class SpinePreferencesService {
|
|
|
608
649
|
this.noticeTypes.set(toNoticeTypes(JSON.stringify(e.data.value ?? {})));
|
|
609
650
|
if (e.data?.type === 'BROWSER_NOTICES_CHANGED')
|
|
610
651
|
this.browserNotices.set(e.data.value === true);
|
|
652
|
+
if (e.data?.type === 'SPLIT_TABS_CHANGED')
|
|
653
|
+
this.splitTabs.set(e.data.value === true);
|
|
611
654
|
});
|
|
612
655
|
}
|
|
613
656
|
// Escolha salva vale desde a primeira tela (o layout injeta este serviço no boot).
|
|
@@ -729,6 +772,12 @@ class SpinePreferencesService {
|
|
|
729
772
|
this.write(this.browserNoticesKey, enabled ? 'on' : '');
|
|
730
773
|
this.channel?.postMessage({ type: 'BROWSER_NOTICES_CHANGED', value: enabled });
|
|
731
774
|
}
|
|
775
|
+
/** Liga/desliga a divisão da área de abas em painéis, guarda e avisa as outras abas. */
|
|
776
|
+
setSplitTabs(enabled) {
|
|
777
|
+
this.splitTabs.set(enabled);
|
|
778
|
+
this.write(this.splitTabsKey, enabled ? 'on' : '');
|
|
779
|
+
this.channel?.postMessage({ type: 'SPLIT_TABS_CHANGED', value: enabled });
|
|
780
|
+
}
|
|
732
781
|
setTimeZone(value) {
|
|
733
782
|
this.timeZone.set(value);
|
|
734
783
|
this.write(this.timeZoneKey, value);
|
|
@@ -1153,6 +1202,14 @@ function applyRuntimeEnvironment(environment) {
|
|
|
1153
1202
|
|
|
1154
1203
|
const SPINE_MESSAGES_PT_BR = {
|
|
1155
1204
|
meta: { locale: 'pt-BR' },
|
|
1205
|
+
inbox: {
|
|
1206
|
+
title: 'Notificações',
|
|
1207
|
+
button: { zero: 'Notificações', one: 'Notificações, {count} nova', other: 'Notificações, {count} novas' },
|
|
1208
|
+
empty: 'Nada novo por aqui.',
|
|
1209
|
+
error: 'Não foi possível carregar as notificações.',
|
|
1210
|
+
retry: 'Tentar de novo',
|
|
1211
|
+
news: { one: '{count} novidade', other: '{count} novidades' },
|
|
1212
|
+
},
|
|
1156
1213
|
header: {
|
|
1157
1214
|
home: 'Início',
|
|
1158
1215
|
apps: 'Aplicações',
|
|
@@ -1189,6 +1246,7 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
1189
1246
|
modules: 'Módulos',
|
|
1190
1247
|
moduleNavigation: 'Navegação de {module}',
|
|
1191
1248
|
apps: 'Aplicações',
|
|
1249
|
+
openInNewTab: 'Abrir em nova aba',
|
|
1192
1250
|
},
|
|
1193
1251
|
pageBar: {
|
|
1194
1252
|
favorite: 'Favoritar esta página',
|
|
@@ -1360,6 +1418,7 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
1360
1418
|
goFavorite: 'Ir para o favorito nº 1 a 9',
|
|
1361
1419
|
history: 'Voltar / avançar no histórico',
|
|
1362
1420
|
openSettings: 'Abrir as configurações',
|
|
1421
|
+
toggleSidebar: 'Abrir / recolher o menu lateral',
|
|
1363
1422
|
toggleTheme: 'Alternar tema claro / escuro',
|
|
1364
1423
|
fullscreen: 'Tela cheia',
|
|
1365
1424
|
logout: 'Sair (logout)',
|
|
@@ -1391,6 +1450,9 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
1391
1450
|
sidebarDescription: 'Como o menu lateral abre e fecha.',
|
|
1392
1451
|
sidebarKeywords: 'sidebar navegação barra lateral',
|
|
1393
1452
|
sidebarHelp: 'Automático: abre ao aproximar o ponteiro. Fixo: fica sempre aberto. Compacto: mostra só os ícones.',
|
|
1453
|
+
splitTabs: 'Dividir abas',
|
|
1454
|
+
splitTabsDescription: 'Abrir painéis lado a lado ou um abaixo do outro, cada um com suas abas. Desligado, as abas abertas ficam num painel só.',
|
|
1455
|
+
splitTabsKeywords: 'dividir tela painéis lado a lado abas comparar split',
|
|
1394
1456
|
sidebarAuto: 'Automático',
|
|
1395
1457
|
sidebarFixed: 'Fixo',
|
|
1396
1458
|
sidebarCompact: 'Compacto',
|
|
@@ -1461,7 +1523,7 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
1461
1523
|
favoritesCleared: 'Favoritos apagados.',
|
|
1462
1524
|
restorePreferences: 'Preferências',
|
|
1463
1525
|
restorePreferencesDescription: 'Aparência, acessibilidade e formatos voltam ao padrão.',
|
|
1464
|
-
restorePreferencesHelp: 'Voltam ao padrão: tema, cor principal, densidade, fonte, menu lateral, tamanho do texto, animações, formato de hora e primeiro dia da semana. Idioma, fuso horário e atalhos de tecla única ficam como estão.',
|
|
1526
|
+
restorePreferencesHelp: 'Voltam ao padrão: tema, cor principal, densidade, fonte, menu lateral, dividir abas, tamanho do texto, animações, formato de hora e primeiro dia da semana. Idioma, fuso horário e atalhos de tecla única ficam como estão.',
|
|
1465
1527
|
restorePreferencesKeywords: 'restaurar padrão redefinir reset preferências',
|
|
1466
1528
|
restore: 'Restaurar padrão',
|
|
1467
1529
|
confirmRestore: 'Confirmar',
|
|
@@ -1599,7 +1661,14 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
1599
1661
|
back: 'Voltar aos grupos',
|
|
1600
1662
|
you: 'você',
|
|
1601
1663
|
membersCount: { zero: 'Nenhum membro', one: '{count} membro', other: '{count} membros' },
|
|
1664
|
+
matchesCount: { zero: 'Nenhum membro encontrado', one: '{count} membro encontrado', other: '{count} membros encontrados' },
|
|
1602
1665
|
empty: 'Nenhum membro neste grupo.',
|
|
1666
|
+
noMatches: 'Nenhum membro encontrado para essa busca.',
|
|
1667
|
+
filterMembers: 'Buscar membro',
|
|
1668
|
+
loadingProgress: 'Carregando membros… {loaded} de {total}',
|
|
1669
|
+
partialResults: 'A lista ainda está carregando: o resultado pode crescer.',
|
|
1670
|
+
loadIncomplete: 'Não foi possível carregar todos os membros ({loaded} de {total}).',
|
|
1671
|
+
retry: 'Tentar de novo',
|
|
1603
1672
|
readOnly: 'Como membro, você só vê quem está no grupo.',
|
|
1604
1673
|
addMember: 'Incluir membro',
|
|
1605
1674
|
addHeading: 'Incluir em {group}',
|
|
@@ -1951,6 +2020,10 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
1951
2020
|
memberSearch: 'Buscar membro...',
|
|
1952
2021
|
membersOf: 'Membros do grupo {group}',
|
|
1953
2022
|
noMembersShort: 'Nenhum membro.',
|
|
2023
|
+
noMembersMatch: 'Nenhum membro encontrado para essa busca.',
|
|
2024
|
+
membersLoadingProgress: 'Carregando membros… {loaded} de {total}',
|
|
2025
|
+
membersPartialResults: 'A lista e a busca ainda podem crescer.',
|
|
2026
|
+
membersLoadIncomplete: 'Não foi possível carregar todos os membros ({loaded} de {total}).',
|
|
1954
2027
|
newMember: 'Novo',
|
|
1955
2028
|
addedBy: 'por {user}',
|
|
1956
2029
|
removal: 'Remoção',
|
|
@@ -2520,8 +2593,6 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
2520
2593
|
kindFilter: 'Tipo',
|
|
2521
2594
|
allKinds: 'Todos os tipos',
|
|
2522
2595
|
refresh: 'Atualizar',
|
|
2523
|
-
boardEmpty: 'Nenhuma sugestão ainda',
|
|
2524
|
-
boardEmptyHint: 'Os pedidos feitos pelo botão "Sugerir melhoria" das telas aparecem aqui.',
|
|
2525
2596
|
boardFiltered: '{shown} de {total} sugestões',
|
|
2526
2597
|
loadError: 'Não foi possível carregar as sugestões.',
|
|
2527
2598
|
moveError: 'Não foi possível mover a sugestão. O quadro foi recarregado.',
|
|
@@ -2539,7 +2610,7 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
2539
2610
|
eventComment: '{actor} comentou',
|
|
2540
2611
|
someone: 'Alguém',
|
|
2541
2612
|
comment: 'Comentário para quem pediu',
|
|
2542
|
-
commentHint: '
|
|
2613
|
+
commentHint: 'Quem pediu vê na página "Sugestões do app".',
|
|
2543
2614
|
commentSend: 'Comentar',
|
|
2544
2615
|
commentSent: 'Comentário enviado.',
|
|
2545
2616
|
commentError: 'Não foi possível enviar o comentário.',
|
|
@@ -2641,16 +2712,10 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
2641
2712
|
menuLabel: 'Rótulos',
|
|
2642
2713
|
menuNoLabels: 'Nenhum rótulo no app',
|
|
2643
2714
|
menuPriority: 'Prioridade',
|
|
2644
|
-
menuCover: 'Selecionar capa',
|
|
2645
2715
|
menuArchive: 'Arquivar',
|
|
2646
2716
|
menuRestore: 'Restaurar no quadro',
|
|
2647
2717
|
menuDelete: 'Excluir',
|
|
2648
|
-
|
|
2649
|
-
coverSolid: 'Cores',
|
|
2650
|
-
coverGradient: 'Gradientes',
|
|
2651
|
-
coverRemove: 'Remover capa',
|
|
2652
|
-
coverName: 'Cor {n}',
|
|
2653
|
-
gradientName: 'Gradiente {n}',
|
|
2718
|
+
labelColorName: 'Cor {n}',
|
|
2654
2719
|
linkCopied: 'Link copiado.',
|
|
2655
2720
|
keyCopied: 'Chave copiada.',
|
|
2656
2721
|
copyError: 'Não foi possível copiar.',
|
|
@@ -2676,7 +2741,7 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
2676
2741
|
checklistUp: 'Subir "{text}"',
|
|
2677
2742
|
checklistDown: 'Descer "{text}"',
|
|
2678
2743
|
tabComments: 'Comentários',
|
|
2679
|
-
tabActivity: '
|
|
2744
|
+
tabActivity: 'Histórico',
|
|
2680
2745
|
commentsEmpty: 'Sem comentários ainda.',
|
|
2681
2746
|
activityEmpty: 'Sem atividades ainda.',
|
|
2682
2747
|
commentInternal: 'Só para a equipe (interno: quem pediu não vê)',
|
|
@@ -2792,11 +2857,245 @@ const SPINE_MESSAGES_PT_BR = {
|
|
|
2792
2857
|
mergedHere: 'Agrupadas aqui',
|
|
2793
2858
|
mergedFrom: '{key} agrupada em {target}',
|
|
2794
2859
|
mergedFromHint: 'Pedidos iguais viraram um só: você acompanha por esta.',
|
|
2860
|
+
buttonMenu: 'Sugestões',
|
|
2861
|
+
openPage: 'Ver sugestões do app',
|
|
2862
|
+
screenPick: 'Tela',
|
|
2863
|
+
screenPickHint: 'A tela que deve mudar. Se ela ainda não existe, escolha "Nova tela".',
|
|
2864
|
+
screenPickPlaceholder: 'Busque pelo nome da tela',
|
|
2865
|
+
newScreenOption: 'Nova tela (ainda não existe)',
|
|
2866
|
+
newScreenName: 'Nome da nova tela',
|
|
2867
|
+
newScreenHint: 'Como você chamaria a tela e em que parte do menu ela ficaria.',
|
|
2868
|
+
newScreenRequired: 'Diga o nome da nova tela.',
|
|
2869
|
+
newScreenTag: 'Nova tela',
|
|
2870
|
+
waiting: { solicitante: 'Aguardando solicitante', responsaveis: 'Aguardando responsáveis' },
|
|
2871
|
+
waitingFilter: 'Aguardando',
|
|
2872
|
+
waitingAny: 'Qualquer situação',
|
|
2873
|
+
waitingClear: 'Ninguém (conversa em dia)',
|
|
2874
|
+
waitingSaved: 'Situação da conversa atualizada.',
|
|
2875
|
+
menuWaiting: 'Aguardando',
|
|
2876
|
+
groupFilter: 'Grupo',
|
|
2877
|
+
allGroups: 'Todos os grupos',
|
|
2878
|
+
requestingGroups: 'Grupos solicitantes',
|
|
2879
|
+
noGroups: 'Sem grupo (criada pela equipe)',
|
|
2880
|
+
unread: { zero: 'nenhuma nova', one: '{count} nova', other: '{count} novas' },
|
|
2881
|
+
fromRequester: 'Solicitante',
|
|
2882
|
+
cardChecklist: { one: '{count} atividade ({done}/{count})', other: '{count} atividades ({done}/{count})' },
|
|
2883
|
+
requestedByName: 'Pedida por {name}',
|
|
2884
|
+
tabSummary: 'Resumo',
|
|
2885
|
+
chatAuthor: '{name} ({role})',
|
|
2886
|
+
chatSendHint: 'Enter envia; Shift+Enter quebra a linha.',
|
|
2887
|
+
inbox: {
|
|
2888
|
+
label: 'Sugestões',
|
|
2889
|
+
comment: '{name}: {comment}',
|
|
2890
|
+
status: '{name} mudou o status para {status}',
|
|
2891
|
+
},
|
|
2892
|
+
page: {
|
|
2893
|
+
title: 'Sugestões do app',
|
|
2894
|
+
allTitle: 'Todas as sugestões',
|
|
2895
|
+
statusPart: '{count} {status}',
|
|
2896
|
+
description: 'Acompanhe o que você pediu, o que seu grupo pediu e as sugestões em que você está envolvido, e converse com os responsáveis.',
|
|
2897
|
+
reasons: { autor: 'Minhas', relator: 'Agrupadas', envolvido: 'Envolvido', responsavel: 'Responsável', grupo: 'Do meu grupo' },
|
|
2898
|
+
reasonHints: {
|
|
2899
|
+
autor: 'Você pediu esta sugestão.',
|
|
2900
|
+
relator: 'Um pedido seu foi agrupado nesta sugestão.',
|
|
2901
|
+
envolvido: 'A equipe incluiu você como envolvido.',
|
|
2902
|
+
responsavel: 'Você é responsável por esta sugestão.',
|
|
2903
|
+
grupo: 'Alguém do seu grupo pediu esta sugestão.',
|
|
2904
|
+
},
|
|
2905
|
+
reasonFilter: 'Por que vejo',
|
|
2906
|
+
allReasons: 'Todas',
|
|
2907
|
+
needsYou: 'Precisam da sua resposta',
|
|
2908
|
+
sorts: { activity: 'Atividade recente', recent: 'Mais novas', votes: 'Mais apoiadas' },
|
|
2909
|
+
empty: 'Nenhuma sugestão por aqui ainda.',
|
|
2910
|
+
emptyHint: 'Peça uma melhoria em "Sugerir melhoria": ela aparece aqui com a conversa.',
|
|
2911
|
+
emptyFiltered: 'Nenhuma sugestão com esses filtros.',
|
|
2912
|
+
error: 'Não foi possível carregar as sugestões.',
|
|
2913
|
+
count: { one: '{count} sugestão', other: '{count} sugestões' },
|
|
2914
|
+
pickOne: 'Escolha uma sugestão para ver os detalhes e a conversa.',
|
|
2915
|
+
notFound: 'Sugestão não encontrada, ou você não tem acesso a ela.',
|
|
2916
|
+
conversation: 'Conversa',
|
|
2917
|
+
conversationEmpty: 'Ninguém escreveu ainda.',
|
|
2918
|
+
conversationError: 'Não foi possível carregar a conversa.',
|
|
2919
|
+
olderMessages: 'Mensagens anteriores',
|
|
2920
|
+
reply: 'Sua mensagem',
|
|
2921
|
+
replyPlaceholder: 'Responda aos responsáveis, dê mais detalhes…',
|
|
2922
|
+
replySend: 'Enviar',
|
|
2923
|
+
replyError: 'Não foi possível enviar a mensagem.',
|
|
2924
|
+
readOnly: 'Você acompanha esta sugestão pelo seu grupo: dá para apoiar, mas a conversa é só de quem pediu, dos envolvidos e dos responsáveis.',
|
|
2925
|
+
team: 'Equipe',
|
|
2926
|
+
you: 'Você',
|
|
2927
|
+
groups: 'Grupos',
|
|
2928
|
+
details: 'Detalhes',
|
|
2929
|
+
listLabel: 'Sugestões',
|
|
2930
|
+
filtersLabel: 'Filtros',
|
|
2931
|
+
waitingYou: 'Os responsáveis aguardam a sua resposta.',
|
|
2932
|
+
waitingTeam: 'Aguardando os responsáveis.',
|
|
2933
|
+
},
|
|
2934
|
+
planning: {
|
|
2935
|
+
viewSummary: 'Resumo',
|
|
2936
|
+
viewTasks: 'Tarefas',
|
|
2937
|
+
viewPlanning: 'Planejamento',
|
|
2938
|
+
viewSchedule: 'Cronograma',
|
|
2939
|
+
viewRisks: 'Riscos',
|
|
2940
|
+
viewWorkflow: 'Fluxo',
|
|
2941
|
+
loadError: 'Não foi possível carregar o planejamento.',
|
|
2942
|
+
saveError: 'Não foi possível salvar. Tente de novo.',
|
|
2943
|
+
retry: 'Tentar de novo',
|
|
2944
|
+
save: 'Salvar',
|
|
2945
|
+
cancel: 'Cancelar',
|
|
2946
|
+
delete: 'Excluir',
|
|
2947
|
+
edit: 'Editar',
|
|
2948
|
+
points: 'Pontos',
|
|
2949
|
+
pointsValue: { zero: '0 pts', one: '{count} pt', other: '{count} pts' },
|
|
2950
|
+
noEstimate: 'Sem estimativa',
|
|
2951
|
+
backlog: 'Backlog',
|
|
2952
|
+
noSprint: 'Nenhuma sprint em andamento.',
|
|
2953
|
+
unassigned: 'Sem responsável',
|
|
2954
|
+
dateRange: '{start} a {end}',
|
|
2955
|
+
summary: {
|
|
2956
|
+
activeSprint: 'Sprint em andamento',
|
|
2957
|
+
sprintPoints: '{done} de {total} pts concluídos',
|
|
2958
|
+
sprintCapacity: 'Capacidade: {capacity} pts',
|
|
2959
|
+
openTasks: 'Tarefas abertas',
|
|
2960
|
+
overdue: 'Vencidas',
|
|
2961
|
+
mine: 'Minhas tarefas',
|
|
2962
|
+
mineEmpty: 'Nada aberto atribuído a você.',
|
|
2963
|
+
deadlines: 'Prazos dos próximos 7 dias',
|
|
2964
|
+
deadlinesEmpty: 'Nenhum prazo vencido ou nos próximos 7 dias.',
|
|
2965
|
+
topRisks: 'Riscos altos',
|
|
2966
|
+
topRisksEmpty: 'Nenhum risco alto em aberto.',
|
|
2967
|
+
riskScore: 'Probabilidade {likelihood} · impacto {impact}',
|
|
2968
|
+
nextMilestone: 'Próximo marco',
|
|
2969
|
+
nextMilestoneEmpty: 'Nenhum marco à frente.',
|
|
2970
|
+
},
|
|
2971
|
+
tasks: {
|
|
2972
|
+
viewLabel: 'Mostrar como',
|
|
2973
|
+
viewList: 'Lista',
|
|
2974
|
+
viewTable: 'Tabela',
|
|
2975
|
+
listLabel: 'Tarefas abertas',
|
|
2976
|
+
gridCaption: 'Tarefas abertas do app',
|
|
2977
|
+
count: { zero: 'Nenhuma tarefa aberta', one: '{count} tarefa aberta', other: '{count} tarefas abertas' },
|
|
2978
|
+
open: 'Abrir',
|
|
2979
|
+
emptyHeading: 'Nenhuma tarefa aberta',
|
|
2980
|
+
emptyBody: 'As tarefas em análise, planejadas e em desenvolvimento aparecem aqui.',
|
|
2981
|
+
key: 'Chave',
|
|
2982
|
+
title: 'Título',
|
|
2983
|
+
status: 'Status',
|
|
2984
|
+
priority: 'Prioridade',
|
|
2985
|
+
assignee: 'Responsável',
|
|
2986
|
+
sprint: 'Sprint',
|
|
2987
|
+
due: 'Prazo',
|
|
2988
|
+
},
|
|
2989
|
+
sprints: {
|
|
2990
|
+
heading: 'Backlog e sprints',
|
|
2991
|
+
hint: 'Arraste uma tarefa para uma sprint ou de volta ao backlog.',
|
|
2992
|
+
readOnlyClosed: 'Sprints encerradas ficam só para consulta.',
|
|
2993
|
+
new: 'Nova sprint',
|
|
2994
|
+
start: 'Iniciar',
|
|
2995
|
+
close: 'Encerrar',
|
|
2996
|
+
state: { planned: 'Planejada', active: 'Em andamento', closed: 'Encerrada' },
|
|
2997
|
+
closeHeading: 'Encerrar {name}?',
|
|
2998
|
+
closeMessage: 'As tarefas não concluídas voltam ao backlog.',
|
|
2999
|
+
deleteHeading: 'Excluir {name}?',
|
|
3000
|
+
deleteMessage: 'As tarefas dela voltam ao backlog.',
|
|
3001
|
+
newHeading: 'Nova sprint',
|
|
3002
|
+
editHeading: 'Editar sprint',
|
|
3003
|
+
name: 'Nome',
|
|
3004
|
+
nameRequired: 'Informe o nome da sprint.',
|
|
3005
|
+
goal: 'Meta',
|
|
3006
|
+
start_date: 'Início',
|
|
3007
|
+
end_date: 'Fim',
|
|
3008
|
+
datesRequired: 'Informe o início e o fim.',
|
|
3009
|
+
datesOrder: 'O fim não pode ser antes do início.',
|
|
3010
|
+
capacity: 'Capacidade (pts)',
|
|
3011
|
+
activeExists: 'Já existe uma sprint em andamento: encerre-a antes de iniciar outra.',
|
|
3012
|
+
moved: '{key} foi para {target}.',
|
|
3013
|
+
progressHeading: 'Andamento de {name}',
|
|
3014
|
+
done: 'Concluído',
|
|
3015
|
+
committed: 'Comprometido',
|
|
3016
|
+
capacityUse: 'Uso da capacidade',
|
|
3017
|
+
burndownCaption: 'Burndown de {name}: pontos restantes por dia',
|
|
3018
|
+
day: 'Dia',
|
|
3019
|
+
ideal: 'Ideal',
|
|
3020
|
+
remaining: 'Restante',
|
|
3021
|
+
closed: 'Sprints encerradas',
|
|
3022
|
+
},
|
|
3023
|
+
schedule: {
|
|
3024
|
+
heading: 'Cronograma',
|
|
3025
|
+
label: 'Cronograma das tarefas',
|
|
3026
|
+
hint: 'Arraste uma barra para mudar o início e o prazo. Só aparecem as tarefas com data.',
|
|
3027
|
+
milestones: 'Marcos',
|
|
3028
|
+
newMilestone: 'Novo marco',
|
|
3029
|
+
milestoneTitle: 'Título',
|
|
3030
|
+
milestoneDate: 'Data',
|
|
3031
|
+
milestoneRequired: 'Informe o título e a data do marco.',
|
|
3032
|
+
removeMilestone: 'Excluir o marco {title}',
|
|
3033
|
+
rescheduled: '{key}: datas salvas.',
|
|
3034
|
+
conflicts: '{key} começa antes de terminar: {list}.',
|
|
3035
|
+
workloadHeading: 'Carga da equipe',
|
|
3036
|
+
workloadLabel: 'Pontos por pessoa nas próximas 4 semanas',
|
|
3037
|
+
workloadHint: 'Capacidade de referência: {capacity} pts por pessoa por semana.',
|
|
3038
|
+
week: 'Semana de {date}',
|
|
3039
|
+
noPeople: 'Ninguém tem tarefa com data e responsável.',
|
|
3040
|
+
},
|
|
3041
|
+
risks: {
|
|
3042
|
+
heading: 'Riscos',
|
|
3043
|
+
label: 'Riscos das tarefas do app',
|
|
3044
|
+
hint: 'Cada risco é de uma tarefa. Clique numa célula da matriz para filtrar a lista; clique num risco para editar.',
|
|
3045
|
+
new: 'Novo risco',
|
|
3046
|
+
newHeading: 'Novo risco',
|
|
3047
|
+
editHeading: 'Editar risco',
|
|
3048
|
+
title: 'Risco',
|
|
3049
|
+
titleRequired: 'Descreva o risco.',
|
|
3050
|
+
owner: 'Dono',
|
|
3051
|
+
status: 'Status',
|
|
3052
|
+
mitigation: 'Mitigação',
|
|
3053
|
+
deleteHeading: 'Excluir este risco?',
|
|
3054
|
+
statuses: { identified: 'Identificado', mitigating: 'Em mitigação', closed: 'Encerrado' },
|
|
3055
|
+
task: 'Tarefa',
|
|
3056
|
+
taskPlaceholder: 'Escolha a tarefa ameaçada',
|
|
3057
|
+
taskRequired: 'Escolha a tarefa do risco.',
|
|
3058
|
+
noTask: 'Sem tarefa',
|
|
3059
|
+
level: 'Risco',
|
|
3060
|
+
levels: { low: 'Baixo', medium: 'Médio', high: 'Alto', critical: 'Crítico' },
|
|
3061
|
+
ofTask: 'Riscos',
|
|
3062
|
+
add: 'Adicionar risco',
|
|
3063
|
+
empty: 'Nenhum risco nesta tarefa.',
|
|
3064
|
+
},
|
|
3065
|
+
workflow: {
|
|
3066
|
+
heading: 'Fluxo das sugestões',
|
|
3067
|
+
hint: 'Os status que quem pede acompanha em "Minhas sugestões". O fluxo é o mesmo para todos os apps.',
|
|
3068
|
+
label: 'Fluxo dos status das sugestões',
|
|
3069
|
+
count: { zero: 'Nenhuma no quadro', one: '{count} no quadro', other: '{count} no quadro' },
|
|
3070
|
+
plan: 'Planejar',
|
|
3071
|
+
start: 'Começar',
|
|
3072
|
+
finish: 'Concluir',
|
|
3073
|
+
refuse: 'Recusar',
|
|
3074
|
+
reopen: 'Reabrir',
|
|
3075
|
+
},
|
|
3076
|
+
detail: {
|
|
3077
|
+
estimate: 'Pontos',
|
|
3078
|
+
sprint: 'Sprint',
|
|
3079
|
+
backlogOption: 'Backlog (sem sprint)',
|
|
3080
|
+
dependsOn: 'Depende de',
|
|
3081
|
+
dependsOnPlaceholder: 'Buscar tarefa',
|
|
3082
|
+
dependencyCycle: 'Essa dependência formaria um ciclo entre as tarefas.',
|
|
3083
|
+
blockedBy: 'Bloqueada por {list}',
|
|
3084
|
+
},
|
|
3085
|
+
},
|
|
2795
3086
|
},
|
|
2796
3087
|
};
|
|
2797
3088
|
|
|
2798
3089
|
const SPINE_MESSAGES_EN = {
|
|
2799
3090
|
meta: { locale: 'en' },
|
|
3091
|
+
inbox: {
|
|
3092
|
+
title: 'Notifications',
|
|
3093
|
+
button: { zero: 'Notifications', one: 'Notifications, {count} new', other: 'Notifications, {count} new' },
|
|
3094
|
+
empty: 'Nothing new here.',
|
|
3095
|
+
error: 'Could not load the notifications.',
|
|
3096
|
+
retry: 'Try again',
|
|
3097
|
+
news: { one: '{count} update', other: '{count} updates' },
|
|
3098
|
+
},
|
|
2800
3099
|
header: {
|
|
2801
3100
|
home: 'Home',
|
|
2802
3101
|
apps: 'Applications',
|
|
@@ -2833,6 +3132,7 @@ const SPINE_MESSAGES_EN = {
|
|
|
2833
3132
|
modules: 'Modules',
|
|
2834
3133
|
moduleNavigation: '{module} navigation',
|
|
2835
3134
|
apps: 'Applications',
|
|
3135
|
+
openInNewTab: 'Open in new tab',
|
|
2836
3136
|
},
|
|
2837
3137
|
pageBar: {
|
|
2838
3138
|
favorite: 'Add this page to favorites',
|
|
@@ -3004,6 +3304,7 @@ const SPINE_MESSAGES_EN = {
|
|
|
3004
3304
|
goFavorite: 'Go to favorite no. 1 to 9',
|
|
3005
3305
|
history: 'Back / forward in history',
|
|
3006
3306
|
openSettings: 'Open settings',
|
|
3307
|
+
toggleSidebar: 'Open / collapse the side menu',
|
|
3007
3308
|
toggleTheme: 'Toggle light / dark theme',
|
|
3008
3309
|
fullscreen: 'Full screen',
|
|
3009
3310
|
logout: 'Sign out',
|
|
@@ -3035,6 +3336,9 @@ const SPINE_MESSAGES_EN = {
|
|
|
3035
3336
|
sidebarDescription: 'How the side menu opens and closes.',
|
|
3036
3337
|
sidebarKeywords: 'sidebar navigation side bar',
|
|
3037
3338
|
sidebarHelp: 'Automatic: opens when the pointer approaches. Fixed: always open. Compact: shows only the icons.',
|
|
3339
|
+
splitTabs: 'Split tabs',
|
|
3340
|
+
splitTabsDescription: 'Open panels side by side or one below the other, each with its own tabs. Off, the open tabs stay in a single panel.',
|
|
3341
|
+
splitTabsKeywords: 'split screen panels side by side tabs compare',
|
|
3038
3342
|
sidebarAuto: 'Automatic',
|
|
3039
3343
|
sidebarFixed: 'Fixed',
|
|
3040
3344
|
sidebarCompact: 'Compact',
|
|
@@ -3105,7 +3409,7 @@ const SPINE_MESSAGES_EN = {
|
|
|
3105
3409
|
favoritesCleared: 'Favorites cleared.',
|
|
3106
3410
|
restorePreferences: 'Preferences',
|
|
3107
3411
|
restorePreferencesDescription: 'Appearance, accessibility and formats go back to the defaults.',
|
|
3108
|
-
restorePreferencesHelp: 'Back to the defaults: theme, main color, density, font, side menu, text size, animations, time format and first day of the week. Language, time zone and single-key shortcuts stay as they are.',
|
|
3412
|
+
restorePreferencesHelp: 'Back to the defaults: theme, main color, density, font, side menu, split tabs, text size, animations, time format and first day of the week. Language, time zone and single-key shortcuts stay as they are.',
|
|
3109
3413
|
restorePreferencesKeywords: 'restore default reset preferences',
|
|
3110
3414
|
restore: 'Restore defaults',
|
|
3111
3415
|
confirmRestore: 'Confirm',
|
|
@@ -3243,7 +3547,14 @@ const SPINE_MESSAGES_EN = {
|
|
|
3243
3547
|
back: 'Back to groups',
|
|
3244
3548
|
you: 'you',
|
|
3245
3549
|
membersCount: { zero: 'No members', one: '{count} member', other: '{count} members' },
|
|
3550
|
+
matchesCount: { zero: 'No members found', one: '{count} member found', other: '{count} members found' },
|
|
3246
3551
|
empty: 'No members in this group.',
|
|
3552
|
+
noMatches: 'No member matches this search.',
|
|
3553
|
+
filterMembers: 'Search members',
|
|
3554
|
+
loadingProgress: 'Loading members… {loaded} of {total}',
|
|
3555
|
+
partialResults: 'The list is still loading: the result may grow.',
|
|
3556
|
+
loadIncomplete: "Couldn't load all members ({loaded} of {total}).",
|
|
3557
|
+
retry: 'Try again',
|
|
3247
3558
|
readOnly: 'As a member, you can only see who is in the group.',
|
|
3248
3559
|
addMember: 'Add member',
|
|
3249
3560
|
addHeading: 'Add to {group}',
|
|
@@ -3595,6 +3906,10 @@ const SPINE_MESSAGES_EN = {
|
|
|
3595
3906
|
memberSearch: 'Search members...',
|
|
3596
3907
|
membersOf: 'Members of group {group}',
|
|
3597
3908
|
noMembersShort: 'No members.',
|
|
3909
|
+
noMembersMatch: 'No member matches this search.',
|
|
3910
|
+
membersLoadingProgress: 'Loading members… {loaded} of {total}',
|
|
3911
|
+
membersPartialResults: 'The list and the search may still grow.',
|
|
3912
|
+
membersLoadIncomplete: "Couldn't load all members ({loaded} of {total}).",
|
|
3598
3913
|
newMember: 'New',
|
|
3599
3914
|
addedBy: 'by {user}',
|
|
3600
3915
|
removal: 'Removal',
|
|
@@ -4164,8 +4479,6 @@ const SPINE_MESSAGES_EN = {
|
|
|
4164
4479
|
kindFilter: 'Type',
|
|
4165
4480
|
allKinds: 'All types',
|
|
4166
4481
|
refresh: 'Refresh',
|
|
4167
|
-
boardEmpty: 'No suggestions yet',
|
|
4168
|
-
boardEmptyHint: 'Requests made with the "Suggest an improvement" button on each page show up here.',
|
|
4169
4482
|
boardFiltered: '{shown} of {total} suggestions',
|
|
4170
4483
|
loadError: 'Could not load the suggestions.',
|
|
4171
4484
|
moveError: 'Could not move the suggestion. The board was reloaded.',
|
|
@@ -4183,7 +4496,7 @@ const SPINE_MESSAGES_EN = {
|
|
|
4183
4496
|
eventComment: '{actor} commented',
|
|
4184
4497
|
someone: 'Someone',
|
|
4185
4498
|
comment: 'Comment for the requester',
|
|
4186
|
-
commentHint: 'The
|
|
4499
|
+
commentHint: 'The requester sees it on the "App suggestions" page.',
|
|
4187
4500
|
commentSend: 'Comment',
|
|
4188
4501
|
commentSent: 'Comment sent.',
|
|
4189
4502
|
commentError: 'Could not send the comment.',
|
|
@@ -4285,16 +4598,10 @@ const SPINE_MESSAGES_EN = {
|
|
|
4285
4598
|
menuLabel: 'Labels',
|
|
4286
4599
|
menuNoLabels: 'No labels in this app',
|
|
4287
4600
|
menuPriority: 'Priority',
|
|
4288
|
-
menuCover: 'Choose cover',
|
|
4289
4601
|
menuArchive: 'Archive',
|
|
4290
4602
|
menuRestore: 'Restore to the board',
|
|
4291
4603
|
menuDelete: 'Delete',
|
|
4292
|
-
|
|
4293
|
-
coverSolid: 'Colors',
|
|
4294
|
-
coverGradient: 'Gradients',
|
|
4295
|
-
coverRemove: 'Remove cover',
|
|
4296
|
-
coverName: 'Color {n}',
|
|
4297
|
-
gradientName: 'Gradient {n}',
|
|
4604
|
+
labelColorName: 'Color {n}',
|
|
4298
4605
|
linkCopied: 'Link copied.',
|
|
4299
4606
|
keyCopied: 'Key copied.',
|
|
4300
4607
|
copyError: 'Could not copy.',
|
|
@@ -4320,7 +4627,7 @@ const SPINE_MESSAGES_EN = {
|
|
|
4320
4627
|
checklistUp: 'Move "{text}" up',
|
|
4321
4628
|
checklistDown: 'Move "{text}" down',
|
|
4322
4629
|
tabComments: 'Comments',
|
|
4323
|
-
tabActivity: '
|
|
4630
|
+
tabActivity: 'History',
|
|
4324
4631
|
commentsEmpty: 'No comments yet.',
|
|
4325
4632
|
activityEmpty: 'No activity yet.',
|
|
4326
4633
|
commentInternal: 'Team only (internal: the requester does not see it)',
|
|
@@ -4436,11 +4743,245 @@ const SPINE_MESSAGES_EN = {
|
|
|
4436
4743
|
mergedHere: 'Merged here',
|
|
4437
4744
|
mergedFrom: '{key} merged into {target}',
|
|
4438
4745
|
mergedFromHint: 'Identical requests became one: follow it here.',
|
|
4746
|
+
buttonMenu: 'Suggestions',
|
|
4747
|
+
openPage: 'View app suggestions',
|
|
4748
|
+
screenPick: 'Screen',
|
|
4749
|
+
screenPickHint: 'The screen that should change. If it does not exist yet, choose "New screen".',
|
|
4750
|
+
screenPickPlaceholder: 'Search by screen name',
|
|
4751
|
+
newScreenOption: 'New screen (does not exist yet)',
|
|
4752
|
+
newScreenName: 'New screen name',
|
|
4753
|
+
newScreenHint: 'What you would call the screen and where in the menu it would go.',
|
|
4754
|
+
newScreenRequired: 'Name the new screen.',
|
|
4755
|
+
newScreenTag: 'New screen',
|
|
4756
|
+
waiting: { solicitante: 'Waiting on requester', responsaveis: 'Waiting on assignees' },
|
|
4757
|
+
waitingFilter: 'Waiting on',
|
|
4758
|
+
waitingAny: 'Any',
|
|
4759
|
+
waitingClear: 'Nobody (conversation up to date)',
|
|
4760
|
+
waitingSaved: 'Conversation status updated.',
|
|
4761
|
+
menuWaiting: 'Waiting on',
|
|
4762
|
+
groupFilter: 'Group',
|
|
4763
|
+
allGroups: 'All groups',
|
|
4764
|
+
requestingGroups: 'Requesting groups',
|
|
4765
|
+
noGroups: 'No group (created by the team)',
|
|
4766
|
+
unread: { zero: 'none new', one: '{count} new', other: '{count} new' },
|
|
4767
|
+
fromRequester: 'Requester',
|
|
4768
|
+
cardChecklist: { one: '{count} task ({done}/{count})', other: '{count} tasks ({done}/{count})' },
|
|
4769
|
+
requestedByName: 'Requested by {name}',
|
|
4770
|
+
tabSummary: 'Summary',
|
|
4771
|
+
chatAuthor: '{name} ({role})',
|
|
4772
|
+
chatSendHint: 'Enter sends; Shift+Enter adds a line break.',
|
|
4773
|
+
inbox: {
|
|
4774
|
+
label: 'Suggestions',
|
|
4775
|
+
comment: '{name}: {comment}',
|
|
4776
|
+
status: '{name} changed the status to {status}',
|
|
4777
|
+
},
|
|
4778
|
+
page: {
|
|
4779
|
+
title: 'App suggestions',
|
|
4780
|
+
allTitle: 'All suggestions',
|
|
4781
|
+
statusPart: '{count} {status}',
|
|
4782
|
+
description: 'Follow what you asked for, what your group asked for and the suggestions you are involved in, and talk to the assignees.',
|
|
4783
|
+
reasons: { autor: 'Mine', relator: 'Merged', envolvido: 'Involved', responsavel: 'Assignee', grupo: 'My group' },
|
|
4784
|
+
reasonHints: {
|
|
4785
|
+
autor: 'You asked for this suggestion.',
|
|
4786
|
+
relator: 'A request of yours was merged into this suggestion.',
|
|
4787
|
+
envolvido: 'The team added you as involved.',
|
|
4788
|
+
responsavel: 'You are an assignee of this suggestion.',
|
|
4789
|
+
grupo: 'Someone in your group asked for this suggestion.',
|
|
4790
|
+
},
|
|
4791
|
+
reasonFilter: 'Why I see it',
|
|
4792
|
+
allReasons: 'All',
|
|
4793
|
+
needsYou: 'Need your reply',
|
|
4794
|
+
sorts: { activity: 'Recent activity', recent: 'Newest', votes: 'Most supported' },
|
|
4795
|
+
empty: 'No suggestions here yet.',
|
|
4796
|
+
emptyHint: 'Ask for an improvement in "Suggest an improvement": it shows up here with the conversation.',
|
|
4797
|
+
emptyFiltered: 'No suggestions match these filters.',
|
|
4798
|
+
error: 'Could not load the suggestions.',
|
|
4799
|
+
count: { one: '{count} suggestion', other: '{count} suggestions' },
|
|
4800
|
+
pickOne: 'Pick a suggestion to see its details and conversation.',
|
|
4801
|
+
notFound: 'Suggestion not found, or you do not have access to it.',
|
|
4802
|
+
conversation: 'Conversation',
|
|
4803
|
+
conversationEmpty: 'Nobody has written yet.',
|
|
4804
|
+
conversationError: 'Could not load the conversation.',
|
|
4805
|
+
olderMessages: 'Older messages',
|
|
4806
|
+
reply: 'Your message',
|
|
4807
|
+
replyPlaceholder: 'Reply to the assignees, add more details…',
|
|
4808
|
+
replySend: 'Send',
|
|
4809
|
+
replyError: 'Could not send the message.',
|
|
4810
|
+
readOnly: 'You follow this suggestion through your group: you can support it, but the conversation belongs to the requesters, the people involved and the assignees.',
|
|
4811
|
+
team: 'Team',
|
|
4812
|
+
you: 'You',
|
|
4813
|
+
groups: 'Groups',
|
|
4814
|
+
details: 'Details',
|
|
4815
|
+
listLabel: 'Suggestions',
|
|
4816
|
+
filtersLabel: 'Filters',
|
|
4817
|
+
waitingYou: 'The assignees are waiting for your reply.',
|
|
4818
|
+
waitingTeam: 'Waiting on the assignees.',
|
|
4819
|
+
},
|
|
4820
|
+
planning: {
|
|
4821
|
+
viewSummary: 'Summary',
|
|
4822
|
+
viewTasks: 'Tasks',
|
|
4823
|
+
viewPlanning: 'Planning',
|
|
4824
|
+
viewSchedule: 'Schedule',
|
|
4825
|
+
viewRisks: 'Risks',
|
|
4826
|
+
viewWorkflow: 'Workflow',
|
|
4827
|
+
loadError: 'Could not load the planning.',
|
|
4828
|
+
saveError: 'Could not save. Try again.',
|
|
4829
|
+
retry: 'Try again',
|
|
4830
|
+
save: 'Save',
|
|
4831
|
+
cancel: 'Cancel',
|
|
4832
|
+
delete: 'Delete',
|
|
4833
|
+
edit: 'Edit',
|
|
4834
|
+
points: 'Points',
|
|
4835
|
+
pointsValue: { zero: '0 pts', one: '{count} pt', other: '{count} pts' },
|
|
4836
|
+
noEstimate: 'No estimate',
|
|
4837
|
+
backlog: 'Backlog',
|
|
4838
|
+
noSprint: 'No sprint in progress.',
|
|
4839
|
+
unassigned: 'Unassigned',
|
|
4840
|
+
dateRange: '{start} to {end}',
|
|
4841
|
+
summary: {
|
|
4842
|
+
activeSprint: 'Sprint in progress',
|
|
4843
|
+
sprintPoints: '{done} of {total} pts done',
|
|
4844
|
+
sprintCapacity: 'Capacity: {capacity} pts',
|
|
4845
|
+
openTasks: 'Open tasks',
|
|
4846
|
+
overdue: 'Overdue',
|
|
4847
|
+
mine: 'My tasks',
|
|
4848
|
+
mineEmpty: 'Nothing open assigned to you.',
|
|
4849
|
+
deadlines: 'Due in the next 7 days',
|
|
4850
|
+
deadlinesEmpty: 'Nothing overdue or due in the next 7 days.',
|
|
4851
|
+
topRisks: 'High risks',
|
|
4852
|
+
topRisksEmpty: 'No open high risk.',
|
|
4853
|
+
riskScore: 'Likelihood {likelihood} · impact {impact}',
|
|
4854
|
+
nextMilestone: 'Next milestone',
|
|
4855
|
+
nextMilestoneEmpty: 'No milestone ahead.',
|
|
4856
|
+
},
|
|
4857
|
+
tasks: {
|
|
4858
|
+
viewLabel: 'Show as',
|
|
4859
|
+
viewList: 'List',
|
|
4860
|
+
viewTable: 'Table',
|
|
4861
|
+
listLabel: 'Open tasks',
|
|
4862
|
+
gridCaption: 'Open tasks of the app',
|
|
4863
|
+
count: { zero: 'No open task', one: '{count} open task', other: '{count} open tasks' },
|
|
4864
|
+
open: 'Open',
|
|
4865
|
+
emptyHeading: 'No open task',
|
|
4866
|
+
emptyBody: 'Tasks under review, planned and in development show up here.',
|
|
4867
|
+
key: 'Key',
|
|
4868
|
+
title: 'Title',
|
|
4869
|
+
status: 'Status',
|
|
4870
|
+
priority: 'Priority',
|
|
4871
|
+
assignee: 'Assignee',
|
|
4872
|
+
sprint: 'Sprint',
|
|
4873
|
+
due: 'Due',
|
|
4874
|
+
},
|
|
4875
|
+
sprints: {
|
|
4876
|
+
heading: 'Backlog and sprints',
|
|
4877
|
+
hint: 'Drag a task into a sprint or back to the backlog.',
|
|
4878
|
+
readOnlyClosed: 'Closed sprints are read only.',
|
|
4879
|
+
new: 'New sprint',
|
|
4880
|
+
start: 'Start',
|
|
4881
|
+
close: 'Close',
|
|
4882
|
+
state: { planned: 'Planned', active: 'In progress', closed: 'Closed' },
|
|
4883
|
+
closeHeading: 'Close {name}?',
|
|
4884
|
+
closeMessage: 'Tasks that are not done go back to the backlog.',
|
|
4885
|
+
deleteHeading: 'Delete {name}?',
|
|
4886
|
+
deleteMessage: 'Its tasks go back to the backlog.',
|
|
4887
|
+
newHeading: 'New sprint',
|
|
4888
|
+
editHeading: 'Edit sprint',
|
|
4889
|
+
name: 'Name',
|
|
4890
|
+
nameRequired: 'Enter the sprint name.',
|
|
4891
|
+
goal: 'Goal',
|
|
4892
|
+
start_date: 'Start',
|
|
4893
|
+
end_date: 'End',
|
|
4894
|
+
datesRequired: 'Enter the start and the end.',
|
|
4895
|
+
datesOrder: 'The end cannot be before the start.',
|
|
4896
|
+
capacity: 'Capacity (pts)',
|
|
4897
|
+
activeExists: 'A sprint is already in progress: close it before starting another one.',
|
|
4898
|
+
moved: '{key} moved to {target}.',
|
|
4899
|
+
progressHeading: 'Progress of {name}',
|
|
4900
|
+
done: 'Done',
|
|
4901
|
+
committed: 'Committed',
|
|
4902
|
+
capacityUse: 'Capacity used',
|
|
4903
|
+
burndownCaption: 'Burndown of {name}: points left per day',
|
|
4904
|
+
day: 'Day',
|
|
4905
|
+
ideal: 'Ideal',
|
|
4906
|
+
remaining: 'Remaining',
|
|
4907
|
+
closed: 'Closed sprints',
|
|
4908
|
+
},
|
|
4909
|
+
schedule: {
|
|
4910
|
+
heading: 'Schedule',
|
|
4911
|
+
label: 'Task schedule',
|
|
4912
|
+
hint: 'Drag a bar to change the start and the due date. Only tasks with a date show up.',
|
|
4913
|
+
milestones: 'Milestones',
|
|
4914
|
+
newMilestone: 'New milestone',
|
|
4915
|
+
milestoneTitle: 'Title',
|
|
4916
|
+
milestoneDate: 'Date',
|
|
4917
|
+
milestoneRequired: 'Enter the milestone title and date.',
|
|
4918
|
+
removeMilestone: 'Delete the milestone {title}',
|
|
4919
|
+
rescheduled: '{key}: dates saved.',
|
|
4920
|
+
conflicts: '{key} starts before these finish: {list}.',
|
|
4921
|
+
workloadHeading: 'Team workload',
|
|
4922
|
+
workloadLabel: 'Points per person over the next 4 weeks',
|
|
4923
|
+
workloadHint: 'Reference capacity: {capacity} pts per person per week.',
|
|
4924
|
+
week: 'Week of {date}',
|
|
4925
|
+
noPeople: 'Nobody has a task with a date and an assignee.',
|
|
4926
|
+
},
|
|
4927
|
+
risks: {
|
|
4928
|
+
heading: 'Risks',
|
|
4929
|
+
label: 'Risks of the app tasks',
|
|
4930
|
+
hint: 'Each risk belongs to a task. Click a matrix cell to filter the list; click a risk to edit it.',
|
|
4931
|
+
new: 'New risk',
|
|
4932
|
+
newHeading: 'New risk',
|
|
4933
|
+
editHeading: 'Edit risk',
|
|
4934
|
+
title: 'Risk',
|
|
4935
|
+
titleRequired: 'Describe the risk.',
|
|
4936
|
+
owner: 'Owner',
|
|
4937
|
+
status: 'Status',
|
|
4938
|
+
mitigation: 'Mitigation',
|
|
4939
|
+
deleteHeading: 'Delete this risk?',
|
|
4940
|
+
statuses: { identified: 'Identified', mitigating: 'Mitigating', closed: 'Closed' },
|
|
4941
|
+
task: 'Task',
|
|
4942
|
+
taskPlaceholder: 'Choose the task at risk',
|
|
4943
|
+
taskRequired: 'Choose the task of the risk.',
|
|
4944
|
+
noTask: 'No task',
|
|
4945
|
+
level: 'Risk',
|
|
4946
|
+
levels: { low: 'Low', medium: 'Medium', high: 'High', critical: 'Critical' },
|
|
4947
|
+
ofTask: 'Risks',
|
|
4948
|
+
add: 'Add risk',
|
|
4949
|
+
empty: 'No risks on this task.',
|
|
4950
|
+
},
|
|
4951
|
+
workflow: {
|
|
4952
|
+
heading: 'Suggestion workflow',
|
|
4953
|
+
hint: 'The statuses requesters follow in "My suggestions". The workflow is the same for every app.',
|
|
4954
|
+
label: 'Suggestion status workflow',
|
|
4955
|
+
count: { zero: 'None on the board', one: '{count} on the board', other: '{count} on the board' },
|
|
4956
|
+
plan: 'Plan',
|
|
4957
|
+
start: 'Start',
|
|
4958
|
+
finish: 'Finish',
|
|
4959
|
+
refuse: 'Decline',
|
|
4960
|
+
reopen: 'Reopen',
|
|
4961
|
+
},
|
|
4962
|
+
detail: {
|
|
4963
|
+
estimate: 'Points',
|
|
4964
|
+
sprint: 'Sprint',
|
|
4965
|
+
backlogOption: 'Backlog (no sprint)',
|
|
4966
|
+
dependsOn: 'Depends on',
|
|
4967
|
+
dependsOnPlaceholder: 'Search task',
|
|
4968
|
+
dependencyCycle: 'This dependency would create a cycle between the tasks.',
|
|
4969
|
+
blockedBy: 'Blocked by {list}',
|
|
4970
|
+
},
|
|
4971
|
+
},
|
|
4439
4972
|
},
|
|
4440
4973
|
};
|
|
4441
4974
|
|
|
4442
4975
|
const SPINE_MESSAGES_ES = {
|
|
4443
4976
|
meta: { locale: 'es' },
|
|
4977
|
+
inbox: {
|
|
4978
|
+
title: 'Notificaciones',
|
|
4979
|
+
button: { zero: 'Notificaciones', one: 'Notificaciones, {count} nueva', other: 'Notificaciones, {count} nuevas' },
|
|
4980
|
+
empty: 'Nada nuevo por aquí.',
|
|
4981
|
+
error: 'No se pudieron cargar las notificaciones.',
|
|
4982
|
+
retry: 'Intentar de nuevo',
|
|
4983
|
+
news: { one: '{count} novedad', other: '{count} novedades' },
|
|
4984
|
+
},
|
|
4444
4985
|
header: {
|
|
4445
4986
|
home: 'Inicio',
|
|
4446
4987
|
apps: 'Aplicaciones',
|
|
@@ -4477,6 +5018,7 @@ const SPINE_MESSAGES_ES = {
|
|
|
4477
5018
|
modules: 'Módulos',
|
|
4478
5019
|
moduleNavigation: 'Navegación de {module}',
|
|
4479
5020
|
apps: 'Aplicaciones',
|
|
5021
|
+
openInNewTab: 'Abrir en una pestaña nueva',
|
|
4480
5022
|
},
|
|
4481
5023
|
pageBar: {
|
|
4482
5024
|
favorite: 'Agregar esta página a favoritos',
|
|
@@ -4648,6 +5190,7 @@ const SPINE_MESSAGES_ES = {
|
|
|
4648
5190
|
goFavorite: 'Ir al favorito n.º 1 a 9',
|
|
4649
5191
|
history: 'Atrás / adelante en el historial',
|
|
4650
5192
|
openSettings: 'Abrir la configuración',
|
|
5193
|
+
toggleSidebar: 'Abrir / contraer el menú lateral',
|
|
4651
5194
|
toggleTheme: 'Alternar tema claro / oscuro',
|
|
4652
5195
|
fullscreen: 'Pantalla completa',
|
|
4653
5196
|
logout: 'Salir (cerrar sesión)',
|
|
@@ -4679,6 +5222,9 @@ const SPINE_MESSAGES_ES = {
|
|
|
4679
5222
|
sidebarDescription: 'Cómo se abre y se cierra el menú lateral.',
|
|
4680
5223
|
sidebarKeywords: 'sidebar navegación barra lateral',
|
|
4681
5224
|
sidebarHelp: 'Automático: se abre al acercar el puntero. Fijo: siempre abierto. Compacto: muestra solo los íconos.',
|
|
5225
|
+
splitTabs: 'Dividir pestañas',
|
|
5226
|
+
splitTabsDescription: 'Abrir paneles lado a lado o uno debajo del otro, cada uno con sus pestañas. Desactivado, las pestañas abiertas quedan en un solo panel.',
|
|
5227
|
+
splitTabsKeywords: 'dividir pantalla paneles lado a lado pestañas comparar split',
|
|
4682
5228
|
sidebarAuto: 'Automático',
|
|
4683
5229
|
sidebarFixed: 'Fijo',
|
|
4684
5230
|
sidebarCompact: 'Compacto',
|
|
@@ -4749,7 +5295,7 @@ const SPINE_MESSAGES_ES = {
|
|
|
4749
5295
|
favoritesCleared: 'Favoritos borrados.',
|
|
4750
5296
|
restorePreferences: 'Preferencias',
|
|
4751
5297
|
restorePreferencesDescription: 'Apariencia, accesibilidad y formatos vuelven a los valores predeterminados.',
|
|
4752
|
-
restorePreferencesHelp: 'Vuelven a lo predeterminado: tema, color principal, densidad, fuente, menú lateral, tamaño del texto, animaciones, formato de hora y primer día de la semana. El idioma, la zona horaria y los atajos de una sola tecla se mantienen.',
|
|
5298
|
+
restorePreferencesHelp: 'Vuelven a lo predeterminado: tema, color principal, densidad, fuente, menú lateral, dividir pestañas, tamaño del texto, animaciones, formato de hora y primer día de la semana. El idioma, la zona horaria y los atajos de una sola tecla se mantienen.',
|
|
4753
5299
|
restorePreferencesKeywords: 'restaurar predeterminado restablecer reset preferencias',
|
|
4754
5300
|
restore: 'Restaurar',
|
|
4755
5301
|
confirmRestore: 'Confirmar',
|
|
@@ -4887,7 +5433,14 @@ const SPINE_MESSAGES_ES = {
|
|
|
4887
5433
|
back: 'Volver a los grupos',
|
|
4888
5434
|
you: 'tú',
|
|
4889
5435
|
membersCount: { zero: 'Ningún miembro', one: '{count} miembro', other: '{count} miembros' },
|
|
5436
|
+
matchesCount: { zero: 'Ningún miembro encontrado', one: '{count} miembro encontrado', other: '{count} miembros encontrados' },
|
|
4890
5437
|
empty: 'Ningún miembro en este grupo.',
|
|
5438
|
+
noMatches: 'Ningún miembro coincide con esta búsqueda.',
|
|
5439
|
+
filterMembers: 'Buscar miembro',
|
|
5440
|
+
loadingProgress: 'Cargando miembros… {loaded} de {total}',
|
|
5441
|
+
partialResults: 'La lista todavía está cargando: el resultado puede crecer.',
|
|
5442
|
+
loadIncomplete: 'No se pudieron cargar todos los miembros ({loaded} de {total}).',
|
|
5443
|
+
retry: 'Intentar de nuevo',
|
|
4891
5444
|
readOnly: 'Como miembro, solo ves quién está en el grupo.',
|
|
4892
5445
|
addMember: 'Incluir miembro',
|
|
4893
5446
|
addHeading: 'Incluir en {group}',
|
|
@@ -5239,6 +5792,10 @@ const SPINE_MESSAGES_ES = {
|
|
|
5239
5792
|
memberSearch: 'Buscar miembro...',
|
|
5240
5793
|
membersOf: 'Miembros del grupo {group}',
|
|
5241
5794
|
noMembersShort: 'Ningún miembro.',
|
|
5795
|
+
noMembersMatch: 'Ningún miembro coincide con esta búsqueda.',
|
|
5796
|
+
membersLoadingProgress: 'Cargando miembros… {loaded} de {total}',
|
|
5797
|
+
membersPartialResults: 'La lista y la búsqueda todavía pueden crecer.',
|
|
5798
|
+
membersLoadIncomplete: 'No se pudieron cargar todos los miembros ({loaded} de {total}).',
|
|
5242
5799
|
newMember: 'Nuevo',
|
|
5243
5800
|
addedBy: 'por {user}',
|
|
5244
5801
|
removal: 'Eliminación',
|
|
@@ -5808,8 +6365,6 @@ const SPINE_MESSAGES_ES = {
|
|
|
5808
6365
|
kindFilter: 'Tipo',
|
|
5809
6366
|
allKinds: 'Todos los tipos',
|
|
5810
6367
|
refresh: 'Actualizar',
|
|
5811
|
-
boardEmpty: 'Todavía no hay sugerencias',
|
|
5812
|
-
boardEmptyHint: 'Los pedidos hechos con el botón "Sugerir una mejora" de las pantallas aparecen aquí.',
|
|
5813
6368
|
boardFiltered: '{shown} de {total} sugerencias',
|
|
5814
6369
|
loadError: 'No fue posible cargar las sugerencias.',
|
|
5815
6370
|
moveError: 'No fue posible mover la sugerencia. El tablero se recargó.',
|
|
@@ -5827,7 +6382,7 @@ const SPINE_MESSAGES_ES = {
|
|
|
5827
6382
|
eventComment: '{actor} comentó',
|
|
5828
6383
|
someone: 'Alguien',
|
|
5829
6384
|
comment: 'Comentario para quien la pidió',
|
|
5830
|
-
commentHint: '
|
|
6385
|
+
commentHint: 'Quien la pidió lo ve en la página "Sugerencias de la app".',
|
|
5831
6386
|
commentSend: 'Comentar',
|
|
5832
6387
|
commentSent: 'Comentario enviado.',
|
|
5833
6388
|
commentError: 'No fue posible enviar el comentario.',
|
|
@@ -5929,16 +6484,10 @@ const SPINE_MESSAGES_ES = {
|
|
|
5929
6484
|
menuLabel: 'Etiquetas',
|
|
5930
6485
|
menuNoLabels: 'Ninguna etiqueta en la aplicación',
|
|
5931
6486
|
menuPriority: 'Prioridad',
|
|
5932
|
-
menuCover: 'Elegir portada',
|
|
5933
6487
|
menuArchive: 'Archivar',
|
|
5934
6488
|
menuRestore: 'Restaurar en el tablero',
|
|
5935
6489
|
menuDelete: 'Eliminar',
|
|
5936
|
-
|
|
5937
|
-
coverSolid: 'Colores',
|
|
5938
|
-
coverGradient: 'Degradados',
|
|
5939
|
-
coverRemove: 'Quitar portada',
|
|
5940
|
-
coverName: 'Color {n}',
|
|
5941
|
-
gradientName: 'Degradado {n}',
|
|
6490
|
+
labelColorName: 'Color {n}',
|
|
5942
6491
|
linkCopied: 'Enlace copiado.',
|
|
5943
6492
|
keyCopied: 'Clave copiada.',
|
|
5944
6493
|
copyError: 'No fue posible copiar.',
|
|
@@ -5964,7 +6513,7 @@ const SPINE_MESSAGES_ES = {
|
|
|
5964
6513
|
checklistUp: 'Subir "{text}"',
|
|
5965
6514
|
checklistDown: 'Bajar "{text}"',
|
|
5966
6515
|
tabComments: 'Comentarios',
|
|
5967
|
-
tabActivity: '
|
|
6516
|
+
tabActivity: 'Historial',
|
|
5968
6517
|
commentsEmpty: 'Todavía sin comentarios.',
|
|
5969
6518
|
activityEmpty: 'Todavía sin actividades.',
|
|
5970
6519
|
commentInternal: 'Solo para el equipo (interno: quien la pidió no lo ve)',
|
|
@@ -6080,6 +6629,232 @@ const SPINE_MESSAGES_ES = {
|
|
|
6080
6629
|
mergedHere: 'Agrupadas aquí',
|
|
6081
6630
|
mergedFrom: '{key} agrupada en {target}',
|
|
6082
6631
|
mergedFromHint: 'Pedidos iguales se volvieron uno: sígalo por esta.',
|
|
6632
|
+
buttonMenu: 'Sugerencias',
|
|
6633
|
+
openPage: 'Ver sugerencias de la app',
|
|
6634
|
+
screenPick: 'Pantalla',
|
|
6635
|
+
screenPickHint: 'La pantalla que debe cambiar. Si todavía no existe, elija "Nueva pantalla".',
|
|
6636
|
+
screenPickPlaceholder: 'Busque por el nombre de la pantalla',
|
|
6637
|
+
newScreenOption: 'Nueva pantalla (todavía no existe)',
|
|
6638
|
+
newScreenName: 'Nombre de la nueva pantalla',
|
|
6639
|
+
newScreenHint: 'Cómo llamaría a la pantalla y en qué parte del menú quedaría.',
|
|
6640
|
+
newScreenRequired: 'Indique el nombre de la nueva pantalla.',
|
|
6641
|
+
newScreenTag: 'Nueva pantalla',
|
|
6642
|
+
waiting: { solicitante: 'Esperando al solicitante', responsaveis: 'Esperando a los responsables' },
|
|
6643
|
+
waitingFilter: 'Esperando',
|
|
6644
|
+
waitingAny: 'Cualquier situación',
|
|
6645
|
+
waitingClear: 'Nadie (conversación al día)',
|
|
6646
|
+
waitingSaved: 'Situación de la conversación actualizada.',
|
|
6647
|
+
menuWaiting: 'Esperando',
|
|
6648
|
+
groupFilter: 'Grupo',
|
|
6649
|
+
allGroups: 'Todos los grupos',
|
|
6650
|
+
requestingGroups: 'Grupos solicitantes',
|
|
6651
|
+
noGroups: 'Sin grupo (creada por el equipo)',
|
|
6652
|
+
unread: { zero: 'ninguna nueva', one: '{count} nueva', other: '{count} nuevas' },
|
|
6653
|
+
fromRequester: 'Solicitante',
|
|
6654
|
+
cardChecklist: { one: '{count} actividad ({done}/{count})', other: '{count} actividades ({done}/{count})' },
|
|
6655
|
+
requestedByName: 'Pedida por {name}',
|
|
6656
|
+
tabSummary: 'Resumen',
|
|
6657
|
+
chatAuthor: '{name} ({role})',
|
|
6658
|
+
chatSendHint: 'Enter envía; Shift+Enter agrega un salto de línea.',
|
|
6659
|
+
inbox: {
|
|
6660
|
+
label: 'Sugerencias',
|
|
6661
|
+
comment: '{name}: {comment}',
|
|
6662
|
+
status: '{name} cambió el estado a {status}',
|
|
6663
|
+
},
|
|
6664
|
+
page: {
|
|
6665
|
+
title: 'Sugerencias de la app',
|
|
6666
|
+
allTitle: 'Todas las sugerencias',
|
|
6667
|
+
statusPart: '{count} {status}',
|
|
6668
|
+
description: 'Siga lo que usted pidió, lo que pidió su grupo y las sugerencias en las que está involucrado, y converse con los responsables.',
|
|
6669
|
+
reasons: { autor: 'Mías', relator: 'Agrupadas', envolvido: 'Involucrado', responsavel: 'Responsable', grupo: 'De mi grupo' },
|
|
6670
|
+
reasonHints: {
|
|
6671
|
+
autor: 'Usted pidió esta sugerencia.',
|
|
6672
|
+
relator: 'Un pedido suyo fue agrupado en esta sugerencia.',
|
|
6673
|
+
envolvido: 'El equipo lo incluyó como involucrado.',
|
|
6674
|
+
responsavel: 'Usted es responsable de esta sugerencia.',
|
|
6675
|
+
grupo: 'Alguien de su grupo pidió esta sugerencia.',
|
|
6676
|
+
},
|
|
6677
|
+
reasonFilter: 'Por qué la veo',
|
|
6678
|
+
allReasons: 'Todas',
|
|
6679
|
+
needsYou: 'Necesitan su respuesta',
|
|
6680
|
+
sorts: { activity: 'Actividad reciente', recent: 'Más nuevas', votes: 'Más apoyadas' },
|
|
6681
|
+
empty: 'Todavía no hay sugerencias aquí.',
|
|
6682
|
+
emptyHint: 'Pida una mejora en "Sugerir mejora": aparece aquí con la conversación.',
|
|
6683
|
+
emptyFiltered: 'Ninguna sugerencia con esos filtros.',
|
|
6684
|
+
error: 'No fue posible cargar las sugerencias.',
|
|
6685
|
+
count: { one: '{count} sugerencia', other: '{count} sugerencias' },
|
|
6686
|
+
pickOne: 'Elija una sugerencia para ver los detalles y la conversación.',
|
|
6687
|
+
notFound: 'Sugerencia no encontrada, o usted no tiene acceso a ella.',
|
|
6688
|
+
conversation: 'Conversación',
|
|
6689
|
+
conversationEmpty: 'Nadie escribió todavía.',
|
|
6690
|
+
conversationError: 'No fue posible cargar la conversación.',
|
|
6691
|
+
olderMessages: 'Mensajes anteriores',
|
|
6692
|
+
reply: 'Su mensaje',
|
|
6693
|
+
replyPlaceholder: 'Responda a los responsables, dé más detalles…',
|
|
6694
|
+
replySend: 'Enviar',
|
|
6695
|
+
replyError: 'No fue posible enviar el mensaje.',
|
|
6696
|
+
readOnly: 'Usted sigue esta sugerencia por su grupo: puede apoyarla, pero la conversación es solo de quienes la pidieron, los involucrados y los responsables.',
|
|
6697
|
+
team: 'Equipo',
|
|
6698
|
+
you: 'Usted',
|
|
6699
|
+
groups: 'Grupos',
|
|
6700
|
+
details: 'Detalles',
|
|
6701
|
+
listLabel: 'Sugerencias',
|
|
6702
|
+
filtersLabel: 'Filtros',
|
|
6703
|
+
waitingYou: 'Los responsables esperan su respuesta.',
|
|
6704
|
+
waitingTeam: 'Esperando a los responsables.',
|
|
6705
|
+
},
|
|
6706
|
+
planning: {
|
|
6707
|
+
viewSummary: 'Resumen',
|
|
6708
|
+
viewTasks: 'Tareas',
|
|
6709
|
+
viewPlanning: 'Planificación',
|
|
6710
|
+
viewSchedule: 'Cronograma',
|
|
6711
|
+
viewRisks: 'Riesgos',
|
|
6712
|
+
viewWorkflow: 'Flujo',
|
|
6713
|
+
loadError: 'No se pudo cargar la planificación.',
|
|
6714
|
+
saveError: 'No se pudo guardar. Inténtalo de nuevo.',
|
|
6715
|
+
retry: 'Intentar de nuevo',
|
|
6716
|
+
save: 'Guardar',
|
|
6717
|
+
cancel: 'Cancelar',
|
|
6718
|
+
delete: 'Eliminar',
|
|
6719
|
+
edit: 'Editar',
|
|
6720
|
+
points: 'Puntos',
|
|
6721
|
+
pointsValue: { zero: '0 pts', one: '{count} pt', other: '{count} pts' },
|
|
6722
|
+
noEstimate: 'Sin estimación',
|
|
6723
|
+
backlog: 'Backlog',
|
|
6724
|
+
noSprint: 'Ningún sprint en curso.',
|
|
6725
|
+
unassigned: 'Sin responsable',
|
|
6726
|
+
dateRange: '{start} a {end}',
|
|
6727
|
+
summary: {
|
|
6728
|
+
activeSprint: 'Sprint en curso',
|
|
6729
|
+
sprintPoints: '{done} de {total} pts terminados',
|
|
6730
|
+
sprintCapacity: 'Capacidad: {capacity} pts',
|
|
6731
|
+
openTasks: 'Tareas abiertas',
|
|
6732
|
+
overdue: 'Vencidas',
|
|
6733
|
+
mine: 'Mis tareas',
|
|
6734
|
+
mineEmpty: 'Nada abierto asignado a ti.',
|
|
6735
|
+
deadlines: 'Plazos de los próximos 7 días',
|
|
6736
|
+
deadlinesEmpty: 'Ningún plazo vencido ni en los próximos 7 días.',
|
|
6737
|
+
topRisks: 'Riesgos altos',
|
|
6738
|
+
topRisksEmpty: 'Ningún riesgo alto abierto.',
|
|
6739
|
+
riskScore: 'Probabilidad {likelihood} · impacto {impact}',
|
|
6740
|
+
nextMilestone: 'Próximo hito',
|
|
6741
|
+
nextMilestoneEmpty: 'Ningún hito por delante.',
|
|
6742
|
+
},
|
|
6743
|
+
tasks: {
|
|
6744
|
+
viewLabel: 'Mostrar como',
|
|
6745
|
+
viewList: 'Lista',
|
|
6746
|
+
viewTable: 'Tabla',
|
|
6747
|
+
listLabel: 'Tareas abiertas',
|
|
6748
|
+
gridCaption: 'Tareas abiertas de la app',
|
|
6749
|
+
count: { zero: 'Ninguna tarea abierta', one: '{count} tarea abierta', other: '{count} tareas abiertas' },
|
|
6750
|
+
open: 'Abrir',
|
|
6751
|
+
emptyHeading: 'Ninguna tarea abierta',
|
|
6752
|
+
emptyBody: 'Las tareas en análisis, planificadas y en desarrollo aparecen aquí.',
|
|
6753
|
+
key: 'Clave',
|
|
6754
|
+
title: 'Título',
|
|
6755
|
+
status: 'Estado',
|
|
6756
|
+
priority: 'Prioridad',
|
|
6757
|
+
assignee: 'Responsable',
|
|
6758
|
+
sprint: 'Sprint',
|
|
6759
|
+
due: 'Plazo',
|
|
6760
|
+
},
|
|
6761
|
+
sprints: {
|
|
6762
|
+
heading: 'Backlog y sprints',
|
|
6763
|
+
hint: 'Arrastra una tarea a un sprint o de vuelta al backlog.',
|
|
6764
|
+
readOnlyClosed: 'Los sprints cerrados son solo de consulta.',
|
|
6765
|
+
new: 'Nuevo sprint',
|
|
6766
|
+
start: 'Iniciar',
|
|
6767
|
+
close: 'Cerrar',
|
|
6768
|
+
state: { planned: 'Planificado', active: 'En curso', closed: 'Cerrado' },
|
|
6769
|
+
closeHeading: '¿Cerrar {name}?',
|
|
6770
|
+
closeMessage: 'Las tareas no terminadas vuelven al backlog.',
|
|
6771
|
+
deleteHeading: '¿Eliminar {name}?',
|
|
6772
|
+
deleteMessage: 'Sus tareas vuelven al backlog.',
|
|
6773
|
+
newHeading: 'Nuevo sprint',
|
|
6774
|
+
editHeading: 'Editar sprint',
|
|
6775
|
+
name: 'Nombre',
|
|
6776
|
+
nameRequired: 'Indica el nombre del sprint.',
|
|
6777
|
+
goal: 'Objetivo',
|
|
6778
|
+
start_date: 'Inicio',
|
|
6779
|
+
end_date: 'Fin',
|
|
6780
|
+
datesRequired: 'Indica el inicio y el fin.',
|
|
6781
|
+
datesOrder: 'El fin no puede ser antes del inicio.',
|
|
6782
|
+
capacity: 'Capacidad (pts)',
|
|
6783
|
+
activeExists: 'Ya hay un sprint en curso: ciérralo antes de iniciar otro.',
|
|
6784
|
+
moved: '{key} pasó a {target}.',
|
|
6785
|
+
progressHeading: 'Avance de {name}',
|
|
6786
|
+
done: 'Terminado',
|
|
6787
|
+
committed: 'Comprometido',
|
|
6788
|
+
capacityUse: 'Uso de la capacidad',
|
|
6789
|
+
burndownCaption: 'Burndown de {name}: puntos restantes por día',
|
|
6790
|
+
day: 'Día',
|
|
6791
|
+
ideal: 'Ideal',
|
|
6792
|
+
remaining: 'Restante',
|
|
6793
|
+
closed: 'Sprints cerrados',
|
|
6794
|
+
},
|
|
6795
|
+
schedule: {
|
|
6796
|
+
heading: 'Cronograma',
|
|
6797
|
+
label: 'Cronograma de las tareas',
|
|
6798
|
+
hint: 'Arrastra una barra para cambiar el inicio y el plazo. Solo aparecen las tareas con fecha.',
|
|
6799
|
+
milestones: 'Hitos',
|
|
6800
|
+
newMilestone: 'Nuevo hito',
|
|
6801
|
+
milestoneTitle: 'Título',
|
|
6802
|
+
milestoneDate: 'Fecha',
|
|
6803
|
+
milestoneRequired: 'Indica el título y la fecha del hito.',
|
|
6804
|
+
removeMilestone: 'Eliminar el hito {title}',
|
|
6805
|
+
rescheduled: '{key}: fechas guardadas.',
|
|
6806
|
+
conflicts: '{key} empieza antes de que terminen: {list}.',
|
|
6807
|
+
workloadHeading: 'Carga del equipo',
|
|
6808
|
+
workloadLabel: 'Puntos por persona en las próximas 4 semanas',
|
|
6809
|
+
workloadHint: 'Capacidad de referencia: {capacity} pts por persona por semana.',
|
|
6810
|
+
week: 'Semana del {date}',
|
|
6811
|
+
noPeople: 'Nadie tiene una tarea con fecha y responsable.',
|
|
6812
|
+
},
|
|
6813
|
+
risks: {
|
|
6814
|
+
heading: 'Riesgos',
|
|
6815
|
+
label: 'Riesgos de las tareas de la app',
|
|
6816
|
+
hint: 'Cada riesgo es de una tarea. Haz clic en una celda de la matriz para filtrar la lista; haz clic en un riesgo para editarlo.',
|
|
6817
|
+
new: 'Nuevo riesgo',
|
|
6818
|
+
newHeading: 'Nuevo riesgo',
|
|
6819
|
+
editHeading: 'Editar riesgo',
|
|
6820
|
+
title: 'Riesgo',
|
|
6821
|
+
titleRequired: 'Describe el riesgo.',
|
|
6822
|
+
owner: 'Dueño',
|
|
6823
|
+
status: 'Estado',
|
|
6824
|
+
mitigation: 'Mitigación',
|
|
6825
|
+
deleteHeading: '¿Eliminar este riesgo?',
|
|
6826
|
+
statuses: { identified: 'Identificado', mitigating: 'En mitigación', closed: 'Cerrado' },
|
|
6827
|
+
task: 'Tarea',
|
|
6828
|
+
taskPlaceholder: 'Elige la tarea amenazada',
|
|
6829
|
+
taskRequired: 'Elige la tarea del riesgo.',
|
|
6830
|
+
noTask: 'Sin tarea',
|
|
6831
|
+
level: 'Riesgo',
|
|
6832
|
+
levels: { low: 'Bajo', medium: 'Medio', high: 'Alto', critical: 'Crítico' },
|
|
6833
|
+
ofTask: 'Riesgos',
|
|
6834
|
+
add: 'Agregar riesgo',
|
|
6835
|
+
empty: 'Ningún riesgo en esta tarea.',
|
|
6836
|
+
},
|
|
6837
|
+
workflow: {
|
|
6838
|
+
heading: 'Flujo de las sugerencias',
|
|
6839
|
+
hint: 'Los estados que quien pide sigue en "Mis sugerencias". El flujo es el mismo para todas las apps.',
|
|
6840
|
+
label: 'Flujo de estados de las sugerencias',
|
|
6841
|
+
count: { zero: 'Ninguna en el tablero', one: '{count} en el tablero', other: '{count} en el tablero' },
|
|
6842
|
+
plan: 'Planificar',
|
|
6843
|
+
start: 'Empezar',
|
|
6844
|
+
finish: 'Terminar',
|
|
6845
|
+
refuse: 'Rechazar',
|
|
6846
|
+
reopen: 'Reabrir',
|
|
6847
|
+
},
|
|
6848
|
+
detail: {
|
|
6849
|
+
estimate: 'Puntos',
|
|
6850
|
+
sprint: 'Sprint',
|
|
6851
|
+
backlogOption: 'Backlog (sin sprint)',
|
|
6852
|
+
dependsOn: 'Depende de',
|
|
6853
|
+
dependsOnPlaceholder: 'Buscar tarea',
|
|
6854
|
+
dependencyCycle: 'Esta dependencia formaría un ciclo entre las tareas.',
|
|
6855
|
+
blockedBy: 'Bloqueada por {list}',
|
|
6856
|
+
},
|
|
6857
|
+
},
|
|
6083
6858
|
},
|
|
6084
6859
|
};
|
|
6085
6860
|
|
|
@@ -6138,5 +6913,5 @@ function provideSpineMessages(config) {
|
|
|
6138
6913
|
* Generated bundle index. Do not edit.
|
|
6139
6914
|
*/
|
|
6140
6915
|
|
|
6141
|
-
export { APP_PACKAGE_INFO, DensityService, HERMES_DS_IMPORTS, SPINE_ADMIN_API, SPINE_CONFIG, SPINE_DEFAULT_LOGO, SPINE_I18N_CONFIG, SPINE_ICONS, SPINE_IDLE_OPTIONS, SPINE_MESSAGES, SPINE_MESSAGES_EN, SPINE_MESSAGES_ES, SPINE_MESSAGES_PT_BR, SPINE_USER_STORAGE_KEYS, SpinePreferencesService, SpineQuickAccessService, SpineUserStorage, ThemePresetService, ThemeService, applyRuntimeEnvironment, applySpineFavicon, currentSpineMessages, mergeRouteTree, provideSpineMessages, provideUi, resolveSpineLogo, routerIdOf, spineRoutesOf };
|
|
6916
|
+
export { APP_PACKAGE_INFO, DensityService, HERMES_DS_IMPORTS, SPINE_ADMIN_API, SPINE_CONFIG, SPINE_DEFAULT_LOGO, SPINE_I18N_CONFIG, SPINE_ICONS, SPINE_IDLE_OPTIONS, SPINE_MESSAGES, SPINE_MESSAGES_EN, SPINE_MESSAGES_ES, SPINE_MESSAGES_PT_BR, SPINE_USER_STORAGE_KEYS, SpinePreferencesService, SpineQuickAccessService, SpineUserStorage, ThemePresetService, ThemeService, applyRuntimeEnvironment, applySpineFavicon, clearSpineBuiltinPages, currentSpineMessages, mergeRouteTree, provideSpineMessages, provideUi, registerSpineBuiltinPage, resolveSpineLogo, routerIdOf, spineBuiltinPageAt, spineBuiltinPageById, spineRoutesOf };
|
|
6142
6917
|
//# sourceMappingURL=trismegisto-spine.mjs.map
|