iobroker.kanban 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +224 -0
  3. package/admin/i18n/de.json +100 -0
  4. package/admin/i18n/en.json +100 -0
  5. package/admin/i18n/es.json +100 -0
  6. package/admin/i18n/fr.json +100 -0
  7. package/admin/i18n/it.json +100 -0
  8. package/admin/i18n/nl.json +100 -0
  9. package/admin/i18n/pl.json +100 -0
  10. package/admin/i18n/pt.json +100 -0
  11. package/admin/i18n/ru.json +100 -0
  12. package/admin/i18n/uk.json +100 -0
  13. package/admin/i18n/zh-cn.json +100 -0
  14. package/admin/jsonConfig.json +668 -0
  15. package/admin/kanban.png +0 -0
  16. package/io-package.json +299 -0
  17. package/lib/cron.js +203 -0
  18. package/lib/dueat.js +77 -0
  19. package/lib/events.js +24 -0
  20. package/lib/holidays.js +167 -0
  21. package/lib/i18n-server.js +301 -0
  22. package/lib/notify.js +627 -0
  23. package/lib/scheduler.js +198 -0
  24. package/lib/server.js +799 -0
  25. package/lib/store.js +1500 -0
  26. package/main.js +382 -0
  27. package/package.json +58 -0
  28. package/www/css/app.css +1022 -0
  29. package/www/i18n/de.json +238 -0
  30. package/www/i18n/en.json +238 -0
  31. package/www/i18n/es.json +238 -0
  32. package/www/i18n/fr.json +238 -0
  33. package/www/i18n/it.json +238 -0
  34. package/www/i18n/nl.json +238 -0
  35. package/www/i18n/pl.json +238 -0
  36. package/www/i18n/pt.json +238 -0
  37. package/www/i18n/ru.json +238 -0
  38. package/www/i18n/uk.json +238 -0
  39. package/www/i18n/zh-cn.json +238 -0
  40. package/www/index.html +171 -0
  41. package/www/js/api.js +98 -0
  42. package/www/js/app.js +411 -0
  43. package/www/js/board.js +983 -0
  44. package/www/js/colorpicker.js +165 -0
  45. package/www/js/dialogs.js +1419 -0
  46. package/www/js/i18n.js +43 -0
  47. package/www/vendor/marked.min.js +69 -0
  48. package/www/vendor/purify.min.js +3 -0
  49. package/www/vendor/sortable.min.js +2 -0
@@ -0,0 +1,238 @@
1
+ {
2
+ "topbar.selectBoard": "Wybierz tablicę",
3
+ "topbar.activeUser": "Aktywny użytkownik",
4
+ "topbar.filterMine": "Pokaż tylko moje karty",
5
+ "topbar.addCard": "+ Karta",
6
+ "topbar.theme": "Zmień motyw",
7
+ "topbar.share": "Widoki",
8
+ "topbar.settings": "Ustawienia",
9
+ "board.loading": "Wczytywanie…",
10
+ "board.empty": "Nie ma jeszcze tablicy — utwórz ją przez ⚙.",
11
+ "board.addCard": "+ Dodaj kartę",
12
+ "col.hideDone": "Ukryj ukończone",
13
+ "col.showDone": "Pokaż ukończone",
14
+ "badge.recurring": "Zadanie cykliczne",
15
+ "badge.description": "Ma opis",
16
+ "card.titleNew": "Nowa karta",
17
+ "card.titleEdit": "Edytuj kartę",
18
+ "card.title": "Tytuł",
19
+ "card.titleRequired": "Podaj tytuł",
20
+ "card.description": "Opis",
21
+ "card.markdown": "(Markdown)",
22
+ "card.dueDate": "Termin",
23
+ "card.timeToggleTitle": "Podaj także godzinę",
24
+ "card.time": "Godzina",
25
+ "card.priority": "Priorytet",
26
+ "card.column": "Kolumna",
27
+ "card.assignees": "Osoby odpowiedzialne",
28
+ "card.requiredLegend": "Pole wymagane",
29
+ "card.assigneeRequired": "Wybierz co najmniej jedną osobę odpowiedzialną",
30
+ "card.labels": "Etykiety",
31
+ "card.color": "Kolor karty",
32
+ "card.link": "Odnośnik",
33
+ "card.location": "Miejsce",
34
+ "card.locationPlaceholder": "np. Ratusz, ul. Główna 1",
35
+ "card.calendarInviteTitle": "Działa tylko z podanym terminem",
36
+ "card.calendarDuration": "Czas trwania",
37
+ "card.calendarDurationTitle": "Czas trwania spotkania w zaproszeniu kalendarza (gg:mm)",
38
+ "card.calendarInvite": "Dołącz zaproszenie kalendarza (.ics) do powiadomienia",
39
+ "card.recurrence": "Powtarzanie",
40
+ "card.checklist": "Lista kontrolna",
41
+ "card.addCheckItem": "+ Dodaj punkt",
42
+ "card.delete": "Usuń",
43
+ "card.manage": "Zarządzaj",
44
+ "card.manageTitle": "Przenieś lub sklonuj kartę",
45
+ "card.cancel": "Anuluj",
46
+ "card.save": "Zapisz",
47
+ "card.checkPlaceholder": "Punkt…",
48
+ "card.checkDrag": "Zmień kolejność punktu",
49
+ "prio.normal": "Normalny",
50
+ "prio.high": "Wysoki",
51
+ "prio.urgent": "Pilny",
52
+ "rec.none": "Brak",
53
+ "rec.daily": "Codziennie",
54
+ "rec.weekly": "Co tydzień",
55
+ "rec.monthly": "Co miesiąc (dzień miesiąca)",
56
+ "rec.monthlyWeekday": "Co miesiąc (dzień tygodnia)",
57
+ "rec.workday": "Dzień roboczy miesiąca",
58
+ "rec.yearly": "Co rok",
59
+ "rec.everyNDays": "Co X dni",
60
+ "rec.interval": "Odstęp (dni)",
61
+ "rec.dayOfMonth": "Dzień miesiąca",
62
+ "rec.month": "Miesiąc",
63
+ "rec.which": "Który",
64
+ "rec.position": "Pozycja",
65
+ "rec.n": "n",
66
+ "rec.ordinalLast": "ostatni",
67
+ "rec.hint.daily": "Po ukończeniu pojawia się ponownie następnego dnia.",
68
+ "rec.hint.weekly": "Ukończona → nowa karta w najbliższy wybrany dzień tygodnia.",
69
+ "rec.hint.monthly": "Ukończona → nowa karta w wybranym dniu następnego miesiąca.",
70
+ "rec.hint.monthly_weekday": "Ukończona → nowa karta w wybranym dniu tygodnia (np. 2. wtorek) następnego miesiąca.",
71
+ "rec.hint.workday": "Ukończona → nowa karta w wybranym dniu roboczym następnego miesiąca (weekendy i święta są pomijane).",
72
+ "rec.hint.yearly": "Ukończona → nowa karta w wybranym dniu i miesiącu przyszłego roku.",
73
+ "rec.hint.every_n_days": "Ukończona → nowa karta po ustawionej liczbie dni.",
74
+ "wd.first": "pierwszy",
75
+ "wd.last": "ostatni",
76
+ "wd.nth": "n-ty (od początku)",
77
+ "wd.nthLast": "n-ty (od końca)",
78
+ "month.1": "styczeń",
79
+ "month.2": "luty",
80
+ "month.3": "marzec",
81
+ "month.4": "kwiecień",
82
+ "month.5": "maj",
83
+ "month.6": "czerwiec",
84
+ "month.7": "lipiec",
85
+ "month.8": "sierpień",
86
+ "month.9": "wrzesień",
87
+ "month.10": "październik",
88
+ "month.11": "listopad",
89
+ "month.12": "grudzień",
90
+ "weekday.1": "pon",
91
+ "weekday.2": "wt",
92
+ "weekday.3": "śr",
93
+ "weekday.4": "czw",
94
+ "weekday.5": "pt",
95
+ "weekday.6": "sob",
96
+ "weekday.7": "niedz",
97
+ "label.new": "+ Nowa",
98
+ "label.namePlaceholder": "Nazwa etykiety",
99
+ "color.own": "Własny kolor",
100
+ "color.none": "bez koloru",
101
+ "boards.boardTitle": "Tytuł tablicy",
102
+ "boards.columns": "Kolumny (przeciągnij, aby zmienić kolejność)",
103
+ "boards.columnName": "Nazwa kolumny",
104
+ "boards.wipTitle": "Limit WIP",
105
+ "boards.done": "Gotowe",
106
+ "boards.allowAdd": "Nowa",
107
+ "boards.deleteColumnTitle": "Usuń kolumnę (karty trafią do pierwszej)",
108
+ "boards.addColumn": "+ Dodaj kolumnę",
109
+ "boards.labels": "Etykiety",
110
+ "boards.deleteLabelTitle": "Usuń etykietę",
111
+ "boards.addLabel": "+ Dodaj etykietę",
112
+ "boards.linkTarget": "Odnośnik w powiadomieniach",
113
+ "boards.linkBoard": "Widok tablicy (podświetl kartę)",
114
+ "boards.linkEdit": "Otwórz edytor karty",
115
+ "boards.linkUrl": "Własny adres URL",
116
+ "boards.linkUrlField": "Własny adres URL (stały)",
117
+ "boards.members": "Członkowie (użytkownicy do przypisania)",
118
+ "boards.membersHint": "Każda tablica potrzebuje co najmniej jednego wybranego użytkownika.",
119
+ "boards.membersRequiredShort": "Każda tablica potrzebuje co najmniej jednego użytkownika.",
120
+ "boards.memberRemoveTitle": "Usuń członka",
121
+ "boards.memberRemoveMsg": "{count} kart(y) mają jako odpowiedzialną tylko osobę {names}. Te karty zachowają przypisanie, ale nie będą już widoczne w filtrze osób. Usunąć mimo to?",
122
+ "boards.deleteBoard": "Usuń tablicę",
123
+ "boards.close": "Zamknij",
124
+ "boards.save": "Zapisz",
125
+ "boards.newBoard": "Nowa tablica…",
126
+ "boards.noneYet": "Nie ma jeszcze tablicy — wpisz nazwę powyżej i kliknij „Utwórz”.",
127
+ "boards.create": "Utwórz",
128
+ "share.title": "Widoki",
129
+ "share.hint": "Utwórz odnośnik z gotowymi filtrami i opcjami widoku – np. do osadzenia (karta webpage w Lovelace) lub do udostępnienia.",
130
+ "share.board": "Tablica",
131
+ "share.users": "Użytkownicy (puste = wszyscy)",
132
+ "share.labels": "Ukryj etykiety (puste = pokaż wszystkie)",
133
+ "share.labelsHide": "Ukryj te etykiety",
134
+ "share.labelsOnly": "Pokaż tylko te etykiety",
135
+ "share.visibleColumns": "Widoczne kolumny",
136
+ "share.doneLimit": "Maks. widocznych ukończonych zadań (puste = wszystkie, 0 = żadne)",
137
+ "share.doneLimitAll": "wszystkie",
138
+ "share.hideSettings": "Ukryj koło zębate ustawień",
139
+ "share.embed": "Tryb osadzony (kompaktowy, do iframe)",
140
+ "share.generatedUrl": "Wygenerowany adres URL",
141
+ "share.copy": "Kopiuj",
142
+ "share.copied": "Skopiowano ✓",
143
+ "confirm.deleteCard": "Przenieść tę kartę do kosza? Można ją stamtąd przywrócić przez 30 dni.",
144
+ "confirm.deleteBoard": "Usunąć tablicę „{title}” wraz ze wszystkimi kartami?",
145
+ "error.moveFailed": "Nie udało się przenieść: {msg}",
146
+ "error.saveFailed": "Nie udało się zapisać: {msg}",
147
+ "boards.avatars": "Awatary użytkowników (obraz zamiast inicjałów)",
148
+ "avatar.choose": "Wybierz obraz",
149
+ "user.color": "Kolor",
150
+ "avatar.remove": "Usuń awatar",
151
+ "avatar.failed": "Nie udało się przesłać: {msg}",
152
+ "error.loadFailed": "Nie udało się wczytać",
153
+ "settings.title": "Ustawienia",
154
+ "settings.tabBoard": "Tablica",
155
+ "settings.tabUsers": "Użytkownicy",
156
+ "card.checklistToggle": "Pokaż/ukryj listę",
157
+ "boards.colTitle": "Tytuł",
158
+ "boards.colMax": "Maks",
159
+ "boards.colWip": "WIP",
160
+ "boards.legendTitle": "Nazwa kolumny",
161
+ "boards.legendMax": "Maks. wyświetlanych kart (0 = wszystkie)",
162
+ "boards.legendWip": "Limit WIP — tylko wizualny (0 = bez limitu)",
163
+ "boards.legendAdd": "Tutaj można dodawać karty",
164
+ "boards.legendDone": "Oznacza kolumnę jako „gotowe”",
165
+ "boards.maxTitle": "Maks. wyświetlanych kart w kolumnie (0 = wszystkie)",
166
+ "boards.dragTitle": "Przeciągnij, aby zmienić kolejność",
167
+ "board.moreCards": "+{n} więcej",
168
+ "board.moreCardsTitle": "Kolejne karty ukryte przez limit wyświetlania",
169
+ "col.trash": "Kosz",
170
+ "sort.mode": "Sortowanie",
171
+ "sort.manual": "Przeciągnij i upuść",
172
+ "sort.grid": "Uchwyty do przeciągania",
173
+ "sort.gripTitle": "Przeciągnij, aby zmienić kolejność",
174
+ "sort.due": "Termin",
175
+ "sort.priority": "Priorytet",
176
+ "sort.age": "Czas w kolumnie",
177
+ "sort.reverse": "Odwrotna kolejność",
178
+ "card.doneLabel": "Gotowe",
179
+ "card.copy": "Kopiuj kartę",
180
+ "card.edit": "Edytuj kartę",
181
+ "trash.daysLeft": "pozostało {n} dni",
182
+ "trash.restore": "Przywróć",
183
+ "trash.purge": "Usuń trwale",
184
+ "trash.empty": "Opróżnij kosz",
185
+ "trash.showToggle": "Pokaż kosz",
186
+ "confirm.title": "Potwierdź",
187
+ "confirm.ok": "OK",
188
+ "confirm.cancel": "Anuluj",
189
+ "confirm.purgeCard": "Usunąć tę kartę trwale i nieodwracalnie?",
190
+ "confirm.emptyTrash": "Trwale usunąć wszystkie karty z kosza?",
191
+ "cleanup.title": "Przenoś gotowe karty do kosza",
192
+ "cleanup.off": "Wyłączone",
193
+ "cleanup.age": "Według wieku",
194
+ "cleanup.count": "Według liczby",
195
+ "cleanup.days": "Dni",
196
+ "cleanup.countLabel": "Liczba",
197
+ "cleanup.hint": "Automatycznie przenosi stare gotowe karty do kosza (codziennie i przy starcie). Stamtąd są trwale usuwane po 30 dniach.",
198
+ "boards.lastBoard": "Ostatniej tablicy nie można usunąć.",
199
+ "boards.editingBoard": "Która tablica jest edytowana",
200
+ "boards.showBoard": "Pokaż tę tablicę",
201
+ "boards.showConfirm": "Przełączyć na tablicę „{title}”? Okno ustawień pozostanie otwarte.",
202
+ "boards.unsavedTitle": "Niezapisane zmiany",
203
+ "boards.unsavedMsg": "W tej tablicy są niezapisane zmiany. Zapisać czy odrzucić?",
204
+ "boards.discard": "Odrzuć",
205
+ "transfer.title": "Zarządzaj",
206
+ "transfer.targetBoard": "Tablica docelowa",
207
+ "transfer.targetColumn": "Kolumna docelowa",
208
+ "transfer.move": "Przenieś",
209
+ "transfer.noOtherBoards": "Nie ma innej tablicy, na którą można przenieść.",
210
+ "transfer.copy": "Kopiuj",
211
+ "transfer.clone": "Klonuj",
212
+ "transfer.cloneHint": "Karta zostanie zduplikowana z całą zawartością – klon trafi bezpośrednio pod oryginał.",
213
+ "transfer.dropLabels": "{n} etykiet(y) bez odpowiednika zostanie usuniętych.",
214
+ "transfer.dropAssignees": "{n} osób odpowiedzialnych nie należy do tablicy docelowej i zostanie usuniętych.",
215
+ "transfer.pickAssignee": "Żadna z obecnych osób odpowiedzialnych nie należy do tej tablicy. Wybierz co najmniej jedną osobę.",
216
+ "desc.close": "Zamknij",
217
+ "rec.cron": "Wyrażenie cron",
218
+ "rec.cronExpr": "Wzorzec",
219
+ "rec.hint.cron": "Gotowe → nowa karta w najbliższym dniu pasującym do wzorca. Minuta i godzina ustalają godzinę karty.",
220
+ "cron.empty": "Wpisz wzorzec, np. 0 8 * * 1-5",
221
+ "cron.next": "Następne: {dates}",
222
+ "cron.everyDayAt": "Codziennie o {time}",
223
+ "cron.monthlyAt": "{day}. dnia każdego miesiąca o {time}",
224
+ "cron.rangeAt": "Od {from} do {to} o {time}",
225
+ "cron.daysAt": "{days} o {time}",
226
+ "cron.minute": "Minuta",
227
+ "cron.hour": "Godzina",
228
+ "cron.day": "Dzień",
229
+ "cron.month": "Miesiąc",
230
+ "cron.weekday": "Dzień tygodnia",
231
+ "cron.sun": "niedziela",
232
+ "cron.mon": "poniedziałek",
233
+ "cron.tue": "wtorek",
234
+ "cron.wed": "środa",
235
+ "cron.thu": "czwartek",
236
+ "cron.fri": "piątek",
237
+ "cron.sat": "sobota"
238
+ }
@@ -0,0 +1,238 @@
1
+ {
2
+ "topbar.selectBoard": "Selecionar quadro",
3
+ "topbar.activeUser": "Utilizador ativo",
4
+ "topbar.filterMine": "Mostrar apenas os meus cartões",
5
+ "topbar.addCard": "+ Cartão",
6
+ "topbar.theme": "Mudar de tema",
7
+ "topbar.share": "Vistas",
8
+ "topbar.settings": "Definições",
9
+ "board.loading": "A carregar…",
10
+ "board.empty": "Ainda não há quadro — crie um com ⚙.",
11
+ "board.addCard": "+ Adicionar cartão",
12
+ "col.hideDone": "Ocultar concluídos",
13
+ "col.showDone": "Mostrar concluídos",
14
+ "badge.recurring": "Tarefa recorrente",
15
+ "badge.description": "Tem descrição",
16
+ "card.titleNew": "Novo cartão",
17
+ "card.titleEdit": "Editar cartão",
18
+ "card.title": "Título",
19
+ "card.titleRequired": "Introduza um título",
20
+ "card.description": "Descrição",
21
+ "card.markdown": "(Markdown)",
22
+ "card.dueDate": "Data de vencimento",
23
+ "card.timeToggleTitle": "Definir também uma hora",
24
+ "card.time": "Hora",
25
+ "card.priority": "Prioridade",
26
+ "card.column": "Coluna",
27
+ "card.assignees": "Responsáveis",
28
+ "card.requiredLegend": "Obrigatório",
29
+ "card.assigneeRequired": "Escolha pelo menos um responsável",
30
+ "card.labels": "Etiquetas",
31
+ "card.color": "Cor do cartão",
32
+ "card.link": "Ligação",
33
+ "card.location": "Local",
34
+ "card.locationPlaceholder": "por ex. Câmara Municipal, Rua Principal 1",
35
+ "card.calendarInviteTitle": "Só tem efeito com data de vencimento",
36
+ "card.calendarDuration": "Duração",
37
+ "card.calendarDurationTitle": "Duração do compromisso no convite de calendário (hh:mm)",
38
+ "card.calendarInvite": "Anexar convite de calendário (.ics) à notificação",
39
+ "card.recurrence": "Recorrência",
40
+ "card.checklist": "Lista de verificação",
41
+ "card.addCheckItem": "+ Adicionar item",
42
+ "card.delete": "Eliminar",
43
+ "card.manage": "Gerir",
44
+ "card.manageTitle": "Transferir ou clonar o cartão",
45
+ "card.cancel": "Cancelar",
46
+ "card.save": "Guardar",
47
+ "card.checkPlaceholder": "Item…",
48
+ "card.checkDrag": "Reordenar o item",
49
+ "prio.normal": "Normal",
50
+ "prio.high": "Alta",
51
+ "prio.urgent": "Urgente",
52
+ "rec.none": "Nenhuma",
53
+ "rec.daily": "Diária",
54
+ "rec.weekly": "Semanal",
55
+ "rec.monthly": "Mensal (dia do mês)",
56
+ "rec.monthlyWeekday": "Mensal (dia da semana)",
57
+ "rec.workday": "Dia útil do mês",
58
+ "rec.yearly": "Anual",
59
+ "rec.everyNDays": "A cada X dias",
60
+ "rec.interval": "Intervalo (dias)",
61
+ "rec.dayOfMonth": "Dia do mês",
62
+ "rec.month": "Mês",
63
+ "rec.which": "Qual",
64
+ "rec.position": "Posição",
65
+ "rec.n": "n",
66
+ "rec.ordinalLast": "último",
67
+ "rec.hint.daily": "Depois de concluída, reaparece no dia seguinte.",
68
+ "rec.hint.weekly": "Concluída → novo cartão no próximo dia da semana escolhido.",
69
+ "rec.hint.monthly": "Concluída → novo cartão no dia escolhido do mês seguinte.",
70
+ "rec.hint.monthly_weekday": "Concluída → novo cartão no dia da semana escolhido (por ex. a 2.ª terça) do mês seguinte.",
71
+ "rec.hint.workday": "Concluída → novo cartão no dia útil escolhido do mês seguinte (fins de semana e feriados são ignorados).",
72
+ "rec.hint.yearly": "Concluída → novo cartão no dia e mês escolhidos do ano seguinte.",
73
+ "rec.hint.every_n_days": "Concluída → novo cartão após o número de dias configurado.",
74
+ "wd.first": "primeiro",
75
+ "wd.last": "último",
76
+ "wd.nth": "n.º (do início)",
77
+ "wd.nthLast": "n.º (do fim)",
78
+ "month.1": "janeiro",
79
+ "month.2": "fevereiro",
80
+ "month.3": "março",
81
+ "month.4": "abril",
82
+ "month.5": "maio",
83
+ "month.6": "junho",
84
+ "month.7": "julho",
85
+ "month.8": "agosto",
86
+ "month.9": "setembro",
87
+ "month.10": "outubro",
88
+ "month.11": "novembro",
89
+ "month.12": "dezembro",
90
+ "weekday.1": "seg",
91
+ "weekday.2": "ter",
92
+ "weekday.3": "qua",
93
+ "weekday.4": "qui",
94
+ "weekday.5": "sex",
95
+ "weekday.6": "sáb",
96
+ "weekday.7": "dom",
97
+ "label.new": "+ Nova",
98
+ "label.namePlaceholder": "Nome da etiqueta",
99
+ "color.own": "Cor personalizada",
100
+ "color.none": "sem cor",
101
+ "boards.boardTitle": "Título do quadro",
102
+ "boards.columns": "Colunas (arraste para reordenar)",
103
+ "boards.columnName": "Nome da coluna",
104
+ "boards.wipTitle": "Limite WIP",
105
+ "boards.done": "Concluído",
106
+ "boards.allowAdd": "Novo",
107
+ "boards.deleteColumnTitle": "Eliminar a coluna (os cartões passam para a primeira)",
108
+ "boards.addColumn": "+ Adicionar coluna",
109
+ "boards.labels": "Etiquetas",
110
+ "boards.deleteLabelTitle": "Eliminar a etiqueta",
111
+ "boards.addLabel": "+ Adicionar etiqueta",
112
+ "boards.linkTarget": "Ligação nas notificações",
113
+ "boards.linkBoard": "Vista do quadro (destacar o cartão)",
114
+ "boards.linkEdit": "Abrir o editor do cartão",
115
+ "boards.linkUrl": "URL própria",
116
+ "boards.linkUrlField": "URL própria (endereço fixo)",
117
+ "boards.members": "Membros (utilizadores atribuíveis)",
118
+ "boards.membersHint": "Cada quadro precisa de pelo menos um utilizador selecionado.",
119
+ "boards.membersRequiredShort": "Cada quadro precisa de pelo menos um utilizador.",
120
+ "boards.memberRemoveTitle": "Remover membro",
121
+ "boards.memberRemoveMsg": "{count} cartão(ões) têm apenas {names} como responsável. Esses cartões mantêm a atribuição, mas deixam de aparecer no filtro por pessoa. Remover mesmo assim?",
122
+ "boards.deleteBoard": "Eliminar quadro",
123
+ "boards.close": "Fechar",
124
+ "boards.save": "Guardar",
125
+ "boards.newBoard": "Novo quadro…",
126
+ "boards.noneYet": "Ainda não há quadro — escreva um nome acima e clique em «Criar».",
127
+ "boards.create": "Criar",
128
+ "share.title": "Vistas",
129
+ "share.hint": "Crie uma ligação com filtros e opções de vista predefinidos, por ex. para incorporar (cartão webpage do Lovelace) ou partilhar.",
130
+ "share.board": "Quadro",
131
+ "share.users": "Utilizadores (vazio = todos)",
132
+ "share.labels": "Ocultar etiquetas (vazio = mostrar todas)",
133
+ "share.labelsHide": "Ocultar estas etiquetas",
134
+ "share.labelsOnly": "Mostrar apenas estas etiquetas",
135
+ "share.visibleColumns": "Colunas visíveis",
136
+ "share.doneLimit": "Máx. de tarefas concluídas visíveis (vazio = todas, 0 = nenhuma)",
137
+ "share.doneLimitAll": "todas",
138
+ "share.hideSettings": "Ocultar a engrenagem de definições",
139
+ "share.embed": "Modo incorporado (compacto, para iframe)",
140
+ "share.generatedUrl": "URL gerada",
141
+ "share.copy": "Copiar",
142
+ "share.copied": "Copiado ✓",
143
+ "confirm.deleteCard": "Mover este cartão para a lixeira? Poderá restaurá-lo durante 30 dias.",
144
+ "confirm.deleteBoard": "Eliminar o quadro «{title}» com todos os seus cartões?",
145
+ "error.moveFailed": "Falha ao mover: {msg}",
146
+ "error.saveFailed": "Falha ao guardar: {msg}",
147
+ "boards.avatars": "Avatares de utilizador (imagem em vez de iniciais)",
148
+ "avatar.choose": "Escolher imagem",
149
+ "user.color": "Cor",
150
+ "avatar.remove": "Remover avatar",
151
+ "avatar.failed": "Falha no carregamento: {msg}",
152
+ "error.loadFailed": "Falha ao carregar",
153
+ "settings.title": "Definições",
154
+ "settings.tabBoard": "Quadro",
155
+ "settings.tabUsers": "Utilizadores",
156
+ "card.checklistToggle": "Mostrar/ocultar a lista",
157
+ "boards.colTitle": "Título",
158
+ "boards.colMax": "Máx",
159
+ "boards.colWip": "WIP",
160
+ "boards.legendTitle": "Nome da coluna",
161
+ "boards.legendMax": "Máx. de cartões apresentados (0 = todos)",
162
+ "boards.legendWip": "Limite WIP — apenas visual (0 = sem limite)",
163
+ "boards.legendAdd": "Aqui podem ser adicionados cartões",
164
+ "boards.legendDone": "Marca a coluna como «concluído»",
165
+ "boards.maxTitle": "Máx. de cartões apresentados por coluna (0 = todos)",
166
+ "boards.dragTitle": "Arraste para reordenar",
167
+ "board.moreCards": "+{n} mais",
168
+ "board.moreCardsTitle": "Mais cartões ocultados pelo limite de apresentação",
169
+ "col.trash": "Lixeira",
170
+ "sort.mode": "Ordenação",
171
+ "sort.manual": "Arrastar e largar",
172
+ "sort.grid": "Pegas de arrasto",
173
+ "sort.gripTitle": "Arraste para reordenar",
174
+ "sort.due": "Data de vencimento",
175
+ "sort.priority": "Prioridade",
176
+ "sort.age": "Tempo na coluna",
177
+ "sort.reverse": "Ordem inversa",
178
+ "card.doneLabel": "Concluído",
179
+ "card.copy": "Copiar cartão",
180
+ "card.edit": "Editar cartão",
181
+ "trash.daysLeft": "faltam {n} dias",
182
+ "trash.restore": "Restaurar",
183
+ "trash.purge": "Eliminar definitivamente",
184
+ "trash.empty": "Esvaziar a lixeira",
185
+ "trash.showToggle": "Mostrar a lixeira",
186
+ "confirm.title": "Confirmar",
187
+ "confirm.ok": "OK",
188
+ "confirm.cancel": "Cancelar",
189
+ "confirm.purgeCard": "Eliminar este cartão de forma definitiva e irreversível?",
190
+ "confirm.emptyTrash": "Eliminar definitivamente todos os cartões da lixeira?",
191
+ "cleanup.title": "Mover os cartões concluídos para a lixeira",
192
+ "cleanup.off": "Desligado",
193
+ "cleanup.age": "Por idade",
194
+ "cleanup.count": "Por quantidade",
195
+ "cleanup.days": "Dias",
196
+ "cleanup.countLabel": "Quantidade",
197
+ "cleanup.hint": "Move automaticamente os cartões concluídos antigos para a lixeira (diariamente e ao iniciar). Aí são eliminados definitivamente após 30 dias.",
198
+ "boards.lastBoard": "O último quadro não pode ser eliminado.",
199
+ "boards.editingBoard": "Que quadro está a ser editado",
200
+ "boards.showBoard": "Mostrar este quadro",
201
+ "boards.showConfirm": "Mudar para o quadro «{title}»? A janela de definições permanece aberta.",
202
+ "boards.unsavedTitle": "Alterações não guardadas",
203
+ "boards.unsavedMsg": "Há alterações não guardadas neste quadro. Guardar ou descartar?",
204
+ "boards.discard": "Descartar",
205
+ "transfer.title": "Gerir",
206
+ "transfer.targetBoard": "Quadro de destino",
207
+ "transfer.targetColumn": "Coluna de destino",
208
+ "transfer.move": "Mover",
209
+ "transfer.noOtherBoards": "Não há outro quadro para onde transferir.",
210
+ "transfer.copy": "Copiar",
211
+ "transfer.clone": "Clonar",
212
+ "transfer.cloneHint": "O cartão é duplicado com todo o conteúdo; o clone fica logo abaixo do original.",
213
+ "transfer.dropLabels": "{n} etiqueta(s) sem correspondência serão removidas.",
214
+ "transfer.dropAssignees": "{n} responsável(is) não são membros do quadro de destino e serão removidos.",
215
+ "transfer.pickAssignee": "Nenhum dos responsáveis atuais é membro deste quadro. Escolha pelo menos um responsável.",
216
+ "desc.close": "Fechar",
217
+ "rec.cron": "Expressão cron",
218
+ "rec.cronExpr": "Padrão",
219
+ "rec.hint.cron": "Concluída → novo cartão no próximo dia que corresponda ao padrão. Minuto e hora definem a hora do cartão.",
220
+ "cron.empty": "Introduza um padrão, por ex. 0 8 * * 1-5",
221
+ "cron.next": "Próximas: {dates}",
222
+ "cron.everyDayAt": "Todos os dias às {time}",
223
+ "cron.monthlyAt": "No dia {day} de cada mês às {time}",
224
+ "cron.rangeAt": "De {from} a {to} às {time}",
225
+ "cron.daysAt": "{days} às {time}",
226
+ "cron.minute": "Minuto",
227
+ "cron.hour": "Hora",
228
+ "cron.day": "Dia",
229
+ "cron.month": "Mês",
230
+ "cron.weekday": "Dia da semana",
231
+ "cron.sun": "domingo",
232
+ "cron.mon": "segunda-feira",
233
+ "cron.tue": "terça-feira",
234
+ "cron.wed": "quarta-feira",
235
+ "cron.thu": "quinta-feira",
236
+ "cron.fri": "sexta-feira",
237
+ "cron.sat": "sábado"
238
+ }