From 386d3d4bddd5831b7ff4b2cf8a0f649ea7a4e9fa Mon Sep 17 00:00:00 2001 From: symonbaikov Date: Thu, 12 Jun 2025 20:59:48 +0300 Subject: [PATCH] feat: add global 'hide checked tasks' toggle for all checklists in card modal. Show toggle only if at least one checklist exists. Add translations for all locales. --- .../cards/Card/TaskList/TaskList.jsx | 39 +++++++++++--- .../cards/CardModal/TaskLists/Item.jsx | 5 +- .../cards/CardModal/TaskLists/TaskLists.jsx | 53 ++++++++++++++----- .../task-lists/TaskList/TaskList.jsx | 21 +++++--- client/src/locales/ar-YE/core.js | 2 + client/src/locales/bg-BG/core.js | 1 + client/src/locales/cs-CZ/core.js | 2 + client/src/locales/da-DK/core.js | 2 + client/src/locales/de-DE/core.js | 4 +- client/src/locales/el-GR/core.js | 2 + client/src/locales/en-GB/core.js | 4 +- client/src/locales/en-US/core.js | 4 +- client/src/locales/es-ES/core.js | 2 + client/src/locales/fa-IR/core.js | 2 + client/src/locales/fi-FI/core.js | 2 + client/src/locales/fr-FR/core.js | 2 + client/src/locales/hu-HU/core.js | 2 + client/src/locales/id-ID/core.js | 2 + client/src/locales/it-IT/core.js | 5 +- client/src/locales/ja-JP/core.js | 5 +- client/src/locales/ko-KR/core.js | 5 +- client/src/locales/nl-NL/core.js | 5 +- client/src/locales/pl-PL/core.js | 2 + client/src/locales/pt-BR/core.js | 5 +- client/src/locales/ru-RU/core.js | 2 + client/src/locales/sk-SK/core.js | 5 +- client/src/locales/sr-Cyrl-RS/core.js | 5 +- client/src/locales/sr-Latn-RS/core.js | 2 + client/src/locales/sv-SE/core.js | 2 + client/src/locales/tr-TR/core.js | 2 + client/src/locales/uk-UA/core.js | 2 + client/src/locales/uz-UZ/core.js | 2 + client/src/locales/zh-CN/core.js | 2 + client/src/locales/zh-TW/core.js | 2 + 34 files changed, 145 insertions(+), 59 deletions(-) diff --git a/client/src/components/cards/Card/TaskList/TaskList.jsx b/client/src/components/cards/Card/TaskList/TaskList.jsx index e9497848..bbdcba2b 100644 --- a/client/src/components/cards/Card/TaskList/TaskList.jsx +++ b/client/src/components/cards/Card/TaskList/TaskList.jsx @@ -3,11 +3,11 @@ * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md */ -import React, { useCallback, useMemo } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { useSelector } from 'react-redux'; -import { Progress } from 'semantic-ui-react'; +import { Progress, Checkbox } from 'semantic-ui-react'; import { useToggle } from '../../../../lib/hooks'; import selectors from '../../../../selectors'; @@ -15,12 +15,13 @@ import Task from './Task'; import styles from './TaskList.module.scss'; -const TaskList = React.memo(({ id }) => { +const TaskList = React.memo(({ id, showHideCheckedToggle }) => { const selectTasksByTaskListId = useMemo(() => selectors.makeSelectTasksByTaskListId(), []); const tasks = useSelector((state) => selectTasksByTaskListId(state, id)); const [isOpened, toggleOpened] = useToggle(); + const [hideChecked, setHideChecked] = useState(false); // TODO: move to selector? const completedTasksTotal = useMemo( @@ -36,6 +37,11 @@ const TaskList = React.memo(({ id }) => { [toggleOpened], ); + const filteredTasks = useMemo( + () => (hideChecked ? tasks.filter((task) => !task.isCompleted) : tasks), + [tasks, hideChecked], + ); + if (tasks.length === 0) { return null; } @@ -62,11 +68,23 @@ const TaskList = React.memo(({ id }) => { {isOpened && ( - + <> + {showHideCheckedToggle && ( +
+ setHideChecked((prev) => !prev)} + toggle + /> +
+ )} + + )} ); @@ -74,6 +92,11 @@ const TaskList = React.memo(({ id }) => { TaskList.propTypes = { id: PropTypes.string.isRequired, + showHideCheckedToggle: PropTypes.bool, +}; + +TaskList.defaultProps = { + showHideCheckedToggle: false, }; export default TaskList; diff --git a/client/src/components/cards/CardModal/TaskLists/Item.jsx b/client/src/components/cards/CardModal/TaskLists/Item.jsx index 5e85f953..c9ae4c74 100644 --- a/client/src/components/cards/CardModal/TaskLists/Item.jsx +++ b/client/src/components/cards/CardModal/TaskLists/Item.jsx @@ -19,7 +19,7 @@ import TaskList from '../../../task-lists/TaskList'; import styles from './Item.module.scss'; -const Item = React.memo(({ id, index }) => { +const Item = React.memo(({ id, index, hideChecked }) => { const selectTaskListById = useMemo(() => selectors.makeSelectTaskListById(), []); const taskList = useSelector((state) => selectTaskListById(state, id)); @@ -64,7 +64,7 @@ const Item = React.memo(({ id, index }) => { {taskList.name} - + ); @@ -78,6 +78,7 @@ const Item = React.memo(({ id, index }) => { Item.propTypes = { id: PropTypes.string.isRequired, index: PropTypes.number.isRequired, + hideChecked: PropTypes.bool.isRequired, }; export default Item; diff --git a/client/src/components/cards/CardModal/TaskLists/TaskLists.jsx b/client/src/components/cards/CardModal/TaskLists/TaskLists.jsx index 9a110321..09fc1f61 100644 --- a/client/src/components/cards/CardModal/TaskLists/TaskLists.jsx +++ b/client/src/components/cards/CardModal/TaskLists/TaskLists.jsx @@ -3,9 +3,11 @@ * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md */ -import React, { useCallback } from 'react'; +import React, { useCallback, useState, useEffect } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { DragDropContext, Droppable } from 'react-beautiful-dnd'; +import { Checkbox } from 'semantic-ui-react'; +import { useTranslation } from 'react-i18next'; import { closePopup } from '../../../../lib/popup'; import selectors from '../../../../selectors'; @@ -16,8 +18,19 @@ import Item from './Item'; import globalStyles from '../../../../styles.module.scss'; +const HIDE_CHECKED_KEY = 'planka_hide_checked_tasks'; + const TaskLists = React.memo(() => { + const [t] = useTranslation(); const taskListIds = useSelector(selectors.selectTaskListIdsForCurrentCard); + const [hideChecked, setHideChecked] = useState(() => { + const stored = localStorage.getItem(HIDE_CHECKED_KEY); + return stored === 'true'; + }); + + useEffect(() => { + localStorage.setItem(HIDE_CHECKED_KEY, hideChecked); + }, [hideChecked]); const dispatch = useDispatch(); @@ -58,19 +71,31 @@ const TaskLists = React.memo(() => { ); return ( - - - {({ innerRef, droppableProps, placeholder }) => ( - // eslint-disable-next-line react/jsx-props-no-spreading -
- {taskListIds.map((taskListId, index) => ( - - ))} - {placeholder} -
- )} -
-
+ <> + {taskListIds.length > 0 && ( +
+ setHideChecked((prev) => !prev)} + toggle + /> +
+ )} + + + {({ innerRef, droppableProps, placeholder }) => ( + // eslint-disable-next-line react/jsx-props-no-spreading +
+ {taskListIds.map((taskListId, index) => ( + + ))} + {placeholder} +
+ )} +
+
+ ); }); diff --git a/client/src/components/task-lists/TaskList/TaskList.jsx b/client/src/components/task-lists/TaskList/TaskList.jsx index 25e7be7d..9313859d 100755 --- a/client/src/components/task-lists/TaskList/TaskList.jsx +++ b/client/src/components/task-lists/TaskList/TaskList.jsx @@ -21,7 +21,7 @@ import AddTask from './AddTask'; import styles from './TaskList.module.scss'; -const TaskList = React.memo(({ id }) => { +const TaskList = React.memo(({ id, hideChecked }) => { const selectTaskListById = useMemo(() => selectors.makeSelectTaskListById(), []); const selectListById = useMemo(() => selectors.makeSelectListById(), []); const selectTasksByTaskListId = useMemo(() => selectors.makeSelectTasksByTaskListId(), []); @@ -45,10 +45,14 @@ const TaskList = React.memo(({ id }) => { const [isAddOpened, setIsAddOpened] = useState(false); const [, , setIsClosableActive] = useContext(ClosableContext); - // TODO: move to selector? + const filteredTasks = useMemo( + () => (hideChecked ? tasks.filter((task) => !task.isCompleted) : tasks), + [tasks, hideChecked], + ); + const completedTasksTotal = useMemo( - () => tasks.reduce((result, task) => (task.isCompleted ? result + 1 : result), 0), - [tasks], + () => filteredTasks.reduce((result, task) => (task.isCompleted ? result + 1 : result), 0), + [filteredTasks], ); const handleAddClick = useCallback(() => { @@ -65,20 +69,20 @@ const TaskList = React.memo(({ id }) => { return ( <> - {tasks.length > 0 && ( + {filteredTasks.length > 0 && ( <> - {completedTasksTotal}/{tasks.length} + {completedTasksTotal}/{filteredTasks.length} )} @@ -90,7 +94,7 @@ const TaskList = React.memo(({ id }) => { {({ innerRef, droppableProps, placeholder }) => ( // eslint-disable-next-line react/jsx-props-no-spreading
- {tasks.map((task, index) => ( + {filteredTasks.map((task, index) => ( ))} {placeholder} @@ -117,6 +121,7 @@ const TaskList = React.memo(({ id }) => { TaskList.propTypes = { id: PropTypes.string.isRequired, + hideChecked: PropTypes.bool.isRequired, }; export default TaskList; diff --git a/client/src/locales/ar-YE/core.js b/client/src/locales/ar-YE/core.js index 560742a3..0badb047 100644 --- a/client/src/locales/ar-YE/core.js +++ b/client/src/locales/ar-YE/core.js @@ -162,6 +162,7 @@ export default { users: 'المستخدمين', viewer: 'مشاهد', writeComment: 'اكتب تعليقاً...', + taskList_hideChecked: 'إخفاء العناصر المحددة', }, action: { @@ -232,6 +233,7 @@ export default { unsubscribe: 'إلغاء الاشتراك', uploadNewAvatar: 'رفع صورة رمزية جديدة', uploadNewImage: 'رفع صورة جديدة', + moveListToBoard: 'نقل القائمة إلى لوحة أخرى', }, }, }; diff --git a/client/src/locales/bg-BG/core.js b/client/src/locales/bg-BG/core.js index 1b23293a..47a2c0c9 100644 --- a/client/src/locales/bg-BG/core.js +++ b/client/src/locales/bg-BG/core.js @@ -167,6 +167,7 @@ export default { users: 'Потребители', viewer: 'Зрител', writeComment: 'Напишете коментар...', + taskList_hideChecked: 'Скриване на отметки', }, action: { diff --git a/client/src/locales/cs-CZ/core.js b/client/src/locales/cs-CZ/core.js index 4461ac75..006d9fbf 100644 --- a/client/src/locales/cs-CZ/core.js +++ b/client/src/locales/cs-CZ/core.js @@ -293,6 +293,7 @@ export default { visualTaskManagementWithLists: 'Vizuální správa úkolů pomocí seznamů.', withoutBaseGroup: 'Bez základní skupiny', writeComment: 'Napsat komentář...', + taskList_hideChecked: 'Skrýt označené položky', }, action: { @@ -406,6 +407,7 @@ export default { unsubscribe: 'Neodebírat', uploadNewAvatar: 'Nahrát nový avatar', uploadNewImage: 'Nahrát nový obrázek', + moveListToBoard: 'Přesunout seznam na jinou nástěnku', }, }, }; diff --git a/client/src/locales/da-DK/core.js b/client/src/locales/da-DK/core.js index 3e7c5c2c..b654333e 100644 --- a/client/src/locales/da-DK/core.js +++ b/client/src/locales/da-DK/core.js @@ -321,6 +321,7 @@ export default { visualTaskManagementWithLists: 'Visuel opgavestyring med lister', withoutBaseGroup: 'Uden standardgruppe', writeComment: 'Skriv en kommentar...', + taskList_hideChecked: 'Skjul afkrydsede elementer', }, action: { @@ -434,6 +435,7 @@ export default { unsubscribe: 'Opsig abonnement', uploadNewAvatar: 'Tilføj nyt profilbillede', uploadNewImage: 'Tilføj nyt billede', + moveListToBoard: 'Flyt liste til anden tavle', }, }, }; diff --git a/client/src/locales/de-DE/core.js b/client/src/locales/de-DE/core.js index 43bf1cd5..738bff69 100644 --- a/client/src/locales/de-DE/core.js +++ b/client/src/locales/de-DE/core.js @@ -310,6 +310,7 @@ export default { visualTaskManagementWithLists: 'Visuelle Aufgabenverwaltung mit Listen.', withoutBaseGroup: 'Ohne Basisgruppe', writeComment: 'Kommentar verfassen...', + taskList_hideChecked: 'Ausgecheckte Elemente ausblenden', }, action: { @@ -416,8 +417,6 @@ export default { showCardsWithThisUser: 'Karten mit diesem Benutzer zeigen', showDeactivated: 'Deaktivierte anzeigen', showFewerAttachments: 'Weniger Anhänge anzeigen', - showLess: 'Weniger anzeigen', - showMore: 'Mehr anzeigen', sortList_title: 'Liste sortieren', start: 'Start', stop: 'Stopp', @@ -425,6 +424,7 @@ export default { unsubscribe: 'De-abonnieren', uploadNewAvatar: 'Neuen Avatar hochladen', uploadNewImage: 'Neues Bild hochladen', + moveListToBoard: 'Liste auf andere Arbeitsbereich verschieben', }, }, }; diff --git a/client/src/locales/el-GR/core.js b/client/src/locales/el-GR/core.js index 58e45276..68d8d3c0 100644 --- a/client/src/locales/el-GR/core.js +++ b/client/src/locales/el-GR/core.js @@ -337,6 +337,7 @@ export default { visualTaskManagementWithLists: 'Οπτική διαχείριση εργασιών με λίστες.', withoutBaseGroup: 'Χωρίς βασική ομάδα', writeComment: 'Γράψτε ένα σχόλιο...', + taskList_hideChecked: 'Απόκρυψη επιλεγμένων στοιχείων', }, action: { @@ -450,6 +451,7 @@ export default { unsubscribe: 'Απεγγραφή', uploadNewAvatar: 'Μεταφόρτωση νέου avatar', uploadNewImage: 'Μεταφόρτωση νέας εικόνας', + moveListToBoard: 'Μετακίνηση λίστας σε άλλο πίνακα', }, }, }; diff --git a/client/src/locales/en-GB/core.js b/client/src/locales/en-GB/core.js index 01b3255d..7abc3550 100644 --- a/client/src/locales/en-GB/core.js +++ b/client/src/locales/en-GB/core.js @@ -318,6 +318,7 @@ export default { visualTaskManagementWithLists: 'Visual task management with lists.', withoutBaseGroup: 'Without base group', writeComment: 'Write a comment...', + taskList_hideChecked: 'Hide checked items', }, action: { @@ -424,8 +425,6 @@ export default { showCardsWithThisUser: 'Show cards with this user', showDeactivated: 'Show deactivated', showFewerAttachments: 'Show fewer attachments', - showLess: 'Show less', - showMore: 'Show more', sortList_title: 'Sort List', start: 'Start', stop: 'Stop', @@ -433,6 +432,7 @@ export default { unsubscribe: 'Unsubscribe', uploadNewAvatar: 'Upload new avatar', uploadNewImage: 'Upload new image', + moveListToBoard: 'Move list to another board', }, }, }; diff --git a/client/src/locales/en-US/core.js b/client/src/locales/en-US/core.js index f38ae4ed..81ded630 100644 --- a/client/src/locales/en-US/core.js +++ b/client/src/locales/en-US/core.js @@ -313,6 +313,7 @@ export default { visualTaskManagementWithLists: 'Visual task management with lists.', withoutBaseGroup: 'Without base group', writeComment: 'Write a comment...', + taskList_hideChecked: 'Hide checked items', }, action: { @@ -419,8 +420,6 @@ export default { showCardsWithThisUser: 'Show cards with this user', showDeactivated: 'Show deactivated', showFewerAttachments: 'Show fewer attachments', - showLess: 'Show less', - showMore: 'Show more', sortList_title: 'Sort List', start: 'Start', stop: 'Stop', @@ -428,6 +427,7 @@ export default { unsubscribe: 'Unsubscribe', uploadNewAvatar: 'Upload new avatar', uploadNewImage: 'Upload new image', + moveListToBoard: 'Move list to another board', }, }, }; diff --git a/client/src/locales/es-ES/core.js b/client/src/locales/es-ES/core.js index 84206466..24147133 100644 --- a/client/src/locales/es-ES/core.js +++ b/client/src/locales/es-ES/core.js @@ -315,6 +315,7 @@ export default { visualTaskManagementWithLists: 'Gestión visual de tareas con listas', withoutBaseGroup: 'Sin grupo base', writeComment: 'Escribir un comentario...', + taskList_hideChecked: 'Ocultar elementos marcados', }, action: { @@ -423,6 +424,7 @@ export default { unsubscribe: 'Desuscribirse', uploadNewAvatar: 'Subir un nuevo avatar', uploadNewImage: 'Subir una nueva imagen', + moveListToBoard: 'Mover lista a otro tablero', }, }, }; diff --git a/client/src/locales/fa-IR/core.js b/client/src/locales/fa-IR/core.js index f01aa0cf..e0b1ed51 100644 --- a/client/src/locales/fa-IR/core.js +++ b/client/src/locales/fa-IR/core.js @@ -164,6 +164,7 @@ export default { users: 'کاربران', viewer: 'بیننده', writeComment: 'نظر بنویسید...', + taskList_hideChecked: 'پنهان کردن آیتم‌های انتخاب شده', }, action: { @@ -234,6 +235,7 @@ export default { unsubscribe: 'لغو اشتراک', uploadNewAvatar: 'آپلود آواتار جدید', uploadNewImage: 'آپلود تصویر جدید', + moveListToBoard: 'انتقال لیست به برد دیگر', }, }, }; diff --git a/client/src/locales/fi-FI/core.js b/client/src/locales/fi-FI/core.js index 945ce70a..404f0b0f 100644 --- a/client/src/locales/fi-FI/core.js +++ b/client/src/locales/fi-FI/core.js @@ -319,6 +319,7 @@ export default { visualTaskManagementWithLists: 'Visuaalinen tehtävien hallinta listoilla.', withoutBaseGroup: 'Ilman perusryhmää', writeComment: 'Kirjoita kommentti...', + taskList_hideChecked: 'Piilota valitut kohdat', }, action: { @@ -432,6 +433,7 @@ export default { unsubscribe: 'Peru tilaus', uploadNewAvatar: 'Lataa uusi avatar', uploadNewImage: 'Lataa uusi kuva', + moveListToBoard: 'Siirrä lista toiselle taululle', }, }, }; diff --git a/client/src/locales/fr-FR/core.js b/client/src/locales/fr-FR/core.js index 51312a4e..a58658fb 100644 --- a/client/src/locales/fr-FR/core.js +++ b/client/src/locales/fr-FR/core.js @@ -167,6 +167,7 @@ export default { users: 'Utilisateurs', viewer: 'Spectateur', writeComment: 'Écrire un commentaire...', + taskList_hideChecked: 'Masquer les éléments marqués', }, action: { @@ -239,6 +240,7 @@ export default { unsubscribe: 'Se désabonner', uploadNewAvatar: 'Télécharger un nouvel avatar', uploadNewImage: 'Télécharger une nouvelle image', + moveListToBoard: 'Déplacer la liste vers un autre tableau', }, }, }; diff --git a/client/src/locales/hu-HU/core.js b/client/src/locales/hu-HU/core.js index fb5a778f..111005ae 100644 --- a/client/src/locales/hu-HU/core.js +++ b/client/src/locales/hu-HU/core.js @@ -165,6 +165,7 @@ export default { users: 'Felhasználók', viewer: 'Néző', writeComment: 'Írjon egy megjegyzést...', + taskList_hideChecked: 'Elrejtett elemek megjelenítése', }, action: { @@ -235,6 +236,7 @@ export default { unsubscribe: 'Leiratkozás', uploadNewAvatar: 'Új avatar feltöltése', uploadNewImage: 'Új kép feltöltése', + moveListToBoard: 'Lista áthelyezése másik táblára', }, }, }; diff --git a/client/src/locales/id-ID/core.js b/client/src/locales/id-ID/core.js index 6ab44b06..55a40eaf 100644 --- a/client/src/locales/id-ID/core.js +++ b/client/src/locales/id-ID/core.js @@ -160,6 +160,7 @@ export default { users: 'Pengguna', viewer: 'Penglihat', writeComment: 'Tuliskan komentar...', + taskList_hideChecked: 'Sembunyikan item yang terpilih', }, action: { @@ -227,6 +228,7 @@ export default { unsubscribe: 'Berhenti berlangganan', uploadNewAvatar: 'Unggah avatar baru', uploadNewImage: 'Unggah gambar baru', + moveListToBoard: 'Pindahkan daftar ke papan lain', }, }, }; diff --git a/client/src/locales/it-IT/core.js b/client/src/locales/it-IT/core.js index 493cff49..914b3608 100644 --- a/client/src/locales/it-IT/core.js +++ b/client/src/locales/it-IT/core.js @@ -1,12 +1,9 @@ import dateFns from 'date-fns/locale/it'; import timeAgo from 'javascript-time-ago/locale/it'; -import markdownEditor from './markdown-editor.json'; - export default { dateFns, timeAgo, - markdownEditor, format: { date: 'd/M/yyyy', @@ -317,6 +314,7 @@ export default { visualTaskManagementWithLists: 'Gestione visiva dei task con liste', withoutBaseGroup: 'Senza gruppo base', writeComment: 'Scrivi un commento...', + taskList_hideChecked: 'Nascondi elementi selezionati', }, action: { @@ -429,6 +427,7 @@ export default { unsubscribe: 'Annulla iscrizione', uploadNewAvatar: 'Carica nuovo avatar', uploadNewImage: 'Carica nuova immagine', + moveListToBoard: 'Muovi lista a un altra bacheca', }, }, }; diff --git a/client/src/locales/ja-JP/core.js b/client/src/locales/ja-JP/core.js index df57865b..395bd0c1 100644 --- a/client/src/locales/ja-JP/core.js +++ b/client/src/locales/ja-JP/core.js @@ -1,12 +1,9 @@ import dateFns from 'date-fns/locale/ja'; import timeAgo from 'javascript-time-ago/locale/ja'; -import markdownEditor from './markdown-editor.json'; - export default { dateFns, timeAgo, - markdownEditor, format: { date: 'yyyy/M/d', @@ -160,6 +157,7 @@ export default { users: 'ユーザー', viewer: 'ビューア', writeComment: 'コメントを書く…', + taskList_hideChecked: '選択した項目を非表示にする', }, action: { @@ -227,6 +225,7 @@ export default { unsubscribe: '購読解除', uploadNewAvatar: '新しいアバターをアップロード', uploadNewImage: '新しい画像をアップロード', + moveListToBoard: 'リストを別のボードに移動', }, }, }; diff --git a/client/src/locales/ko-KR/core.js b/client/src/locales/ko-KR/core.js index a52e4a05..559110b4 100644 --- a/client/src/locales/ko-KR/core.js +++ b/client/src/locales/ko-KR/core.js @@ -1,12 +1,9 @@ import dateFns from 'date-fns/locale/ko'; import timeAgo from 'javascript-time-ago/locale/ko'; -import markdownEditor from './markdown-editor.json'; - export default { dateFns, timeAgo, - markdownEditor, format: { date: 'yyyy년 M월 d일', @@ -165,6 +162,7 @@ export default { users: '사용자들', viewer: '뷰어', writeComment: '댓글 작성...', + taskList_hideChecked: '완료된 항목 숨기기', }, action: { @@ -237,6 +235,7 @@ export default { unsubscribe: '구독 취소', uploadNewAvatar: '새 아바타 업로드', uploadNewImage: '새 이미지 업로드', + moveListToBoard: '목록을 다른 보드로 이동', }, }, }; diff --git a/client/src/locales/nl-NL/core.js b/client/src/locales/nl-NL/core.js index 24ce91e3..89f2f145 100644 --- a/client/src/locales/nl-NL/core.js +++ b/client/src/locales/nl-NL/core.js @@ -1,12 +1,9 @@ import dateFns from 'date-fns/locale/nl'; import timeAgo from 'javascript-time-ago/locale/nl'; -import markdownEditor from './markdown-editor.json'; - export default { dateFns, timeAgo, - markdownEditor, format: { date: 'd-M-yyyy', @@ -161,6 +158,7 @@ export default { users: 'Gebruikers', viewer: 'Kijker', writeComment: 'Schrijf een opmerking...', + taskList_hideChecked: 'Verberg geselecteerde items', }, action: { @@ -228,6 +226,7 @@ export default { unsubscribe: 'Afmelden', uploadNewAvatar: 'Nieuwe avatar uploaden', uploadNewImage: 'Nieuwe afbeelding uploaden', + moveListToBoard: 'Lijst verplaatsen naar ander bord', }, }, }; diff --git a/client/src/locales/pl-PL/core.js b/client/src/locales/pl-PL/core.js index a26656ec..4b830210 100644 --- a/client/src/locales/pl-PL/core.js +++ b/client/src/locales/pl-PL/core.js @@ -293,6 +293,7 @@ export default { visualTaskManagementWithLists: 'Wizualne zarządzanie zadaniami z listami.', withoutBaseGroup: 'Bez grupy bazowej', writeComment: 'Napisz komentarz...', + taskList_hideChecked: 'Ukryj zaznaczone elementy', }, action: { @@ -406,6 +407,7 @@ export default { unsubscribe: 'Odsubskrybuj', uploadNewAvatar: 'Wgraj nowy awatar', uploadNewImage: 'Wgraj nowy obraz', + moveListToBoard: 'Przenieś listę na inną tablicę', }, }, }; diff --git a/client/src/locales/pt-BR/core.js b/client/src/locales/pt-BR/core.js index 14fe2632..f80a42d2 100644 --- a/client/src/locales/pt-BR/core.js +++ b/client/src/locales/pt-BR/core.js @@ -1,12 +1,9 @@ import dateFns from 'date-fns/locale/pt-BR'; import timeAgo from 'javascript-time-ago/locale/pt'; -import markdownEditor from './markdown-editor.json'; - export default { dateFns, timeAgo, - markdownEditor, format: { date: 'dd/MM/yyyy', @@ -161,6 +158,7 @@ export default { users: 'Usuários', viewer: 'Visualizador', writeComment: 'Escreva um comentário...', + taskList_hideChecked: 'Ocultar itens marcados', }, action: { @@ -228,6 +226,7 @@ export default { unsubscribe: 'Cancelar inscrição', uploadNewAvatar: 'Enviar novo avatar', uploadNewImage: 'Enviar nova imagem', + moveListToBoard: 'Mover lista para outro quadro', }, }, }; diff --git a/client/src/locales/ru-RU/core.js b/client/src/locales/ru-RU/core.js index d15d76a5..c2793697 100644 --- a/client/src/locales/ru-RU/core.js +++ b/client/src/locales/ru-RU/core.js @@ -299,6 +299,7 @@ export default { visualTaskManagementWithLists: 'Визуальное управление задачами с помощью списков', withoutBaseGroup: 'Без основной группы', writeComment: 'Напишите комментарий...', + taskList_hideChecked: 'Скрыть отмеченные пункты', }, action: { @@ -412,6 +413,7 @@ export default { unsubscribe: 'Отписаться', uploadNewAvatar: 'Загрузить новый аватар', uploadNewImage: 'Загрузить новое изображение', + moveListToBoard: 'Переместить в другую доску', }, }, }; diff --git a/client/src/locales/sk-SK/core.js b/client/src/locales/sk-SK/core.js index 11f67c31..da806503 100644 --- a/client/src/locales/sk-SK/core.js +++ b/client/src/locales/sk-SK/core.js @@ -1,12 +1,9 @@ import dateFns from 'date-fns/locale/sk'; import timeAgo from 'javascript-time-ago/locale/sk'; -import markdownEditor from './markdown-editor.json'; - export default { dateFns, timeAgo, - markdownEditor, format: { date: 'd.M.yyyy', @@ -145,6 +142,7 @@ export default { username: 'Používateľské meno', users: 'Používatelia', writeComment: 'Napísať komentár...', + taskList_hideChecked: 'Skryť označené položky', }, action: { @@ -209,6 +207,7 @@ export default { unsubscribe: 'Neodoberať', uploadNewAvatar: 'Nahrať nový avatar', uploadNewImage: 'Nahrať nový obrázok', + moveListToBoard: 'Presunúť zoznam na inú tabuľu', }, }, }; diff --git a/client/src/locales/sr-Cyrl-RS/core.js b/client/src/locales/sr-Cyrl-RS/core.js index e6802980..cd38bd46 100644 --- a/client/src/locales/sr-Cyrl-RS/core.js +++ b/client/src/locales/sr-Cyrl-RS/core.js @@ -1,12 +1,9 @@ import dateFns from 'date-fns/locale/sr'; import timeAgo from 'javascript-time-ago/locale/sr'; -import markdownEditor from './markdown-editor.json'; - export default { dateFns, timeAgo, - markdownEditor, format: { date: 'd.M.yyyy.', @@ -166,6 +163,7 @@ export default { users: 'Корисници', viewer: 'Прегледач', writeComment: 'Напиши коментар...', + taskList_hideChecked: 'Сакриј означене ставке', }, action: { @@ -236,6 +234,7 @@ export default { unsubscribe: 'Укини претплату', uploadNewAvatar: 'Постави нови аватар', uploadNewImage: 'Постави нову слику', + moveListToBoard: 'Премести на другу таблу', }, }, }; diff --git a/client/src/locales/sr-Latn-RS/core.js b/client/src/locales/sr-Latn-RS/core.js index 519dbfba..af3888db 100644 --- a/client/src/locales/sr-Latn-RS/core.js +++ b/client/src/locales/sr-Latn-RS/core.js @@ -163,6 +163,7 @@ export default { users: 'Korisnici', viewer: 'Pregledač', writeComment: 'Napiši komentar...', + taskList_hideChecked: 'Sakrij označene stavke', }, action: { @@ -233,6 +234,7 @@ export default { unsubscribe: 'Ukini pretplatu', uploadNewAvatar: 'Postavi novi avatar', uploadNewImage: 'Postavi novu sliku', + moveListToBoard: 'Premesti spisak na drugu tablu', }, }, }; diff --git a/client/src/locales/sv-SE/core.js b/client/src/locales/sv-SE/core.js index 78e091df..e65f39fa 100644 --- a/client/src/locales/sv-SE/core.js +++ b/client/src/locales/sv-SE/core.js @@ -143,6 +143,7 @@ export default { username: 'Användarnamn', users: 'Användare', writeComment: 'Skriv en kommentar...', + taskList_hideChecked: 'Dölj markerade objekt', }, action: { @@ -207,6 +208,7 @@ export default { unsubscribe: 'Avprenumerera', uploadNewAvatar: 'Ladda upp ny avatar', uploadNewImage: 'Ladda upp ny bild', + moveListToBoard: 'Flytta lista till annan tavla', }, }, }; diff --git a/client/src/locales/tr-TR/core.js b/client/src/locales/tr-TR/core.js index dd782673..4463302c 100644 --- a/client/src/locales/tr-TR/core.js +++ b/client/src/locales/tr-TR/core.js @@ -144,6 +144,7 @@ export default { username: 'kullanıcı adı', users: 'kullanıcı', writeComment: 'Yorum yazın...', + taskList_hideChecked: 'Görevleri gizle', }, action: { @@ -207,6 +208,7 @@ export default { unsubscribe: 'Abonelikten çık', uploadNewAvatar: 'Yeni avatar yükle', uploadNewImage: 'Yeni resim yükle', + moveListToBoard: 'Listeyi başka bir panoya taşı', }, }, }; diff --git a/client/src/locales/uk-UA/core.js b/client/src/locales/uk-UA/core.js index 32392c3c..d7610d5b 100644 --- a/client/src/locales/uk-UA/core.js +++ b/client/src/locales/uk-UA/core.js @@ -295,6 +295,7 @@ export default { visualTaskManagementWithLists: 'Візуальне управління завданнями за допомогою списків.', withoutBaseGroup: 'Без базової групи', writeComment: 'Написати коментар...', + taskList_hideChecked: 'Приховати позначені елементи', }, action: { @@ -408,6 +409,7 @@ export default { unsubscribe: 'Відписатися', uploadNewAvatar: 'Завантажити новий аватар', uploadNewImage: 'Завантажити нове зображення', + moveListToBoard: 'Перемістити список на іншу дошку', }, }, }; diff --git a/client/src/locales/uz-UZ/core.js b/client/src/locales/uz-UZ/core.js index 3bee8806..075e36c7 100644 --- a/client/src/locales/uz-UZ/core.js +++ b/client/src/locales/uz-UZ/core.js @@ -140,6 +140,7 @@ export default { username: 'Foydalanuvchi nomi', users: 'Foydalanuvchilar', writeComment: 'Izoh yozish...', + taskList_hideChecked: 'Ko chirish', }, action: { @@ -203,6 +204,7 @@ export default { unsubscribe: 'Obunani bekor qilish', uploadNewAvatar: 'Yangi avatar yuklash', uploadNewImage: 'Yangi rasm yuklash', + moveListToBoard: "Ro'yxatni boshqa doskaga ko'chirish", }, }, }; diff --git a/client/src/locales/zh-CN/core.js b/client/src/locales/zh-CN/core.js index 8ccccb02..44fd8c68 100644 --- a/client/src/locales/zh-CN/core.js +++ b/client/src/locales/zh-CN/core.js @@ -152,6 +152,7 @@ export default { users: '用户', viewer: '视图', writeComment: '编写评论...', + taskList_hideChecked: '隐藏已完成的任务', }, action: { @@ -220,6 +221,7 @@ export default { unsubscribe: '取消关注', uploadNewAvatar: '上传新头像', uploadNewImage: '上传图片', + moveListToBoard: '移动列表到另一个面板', }, }, }; diff --git a/client/src/locales/zh-TW/core.js b/client/src/locales/zh-TW/core.js index 00107c14..fb16ec43 100644 --- a/client/src/locales/zh-TW/core.js +++ b/client/src/locales/zh-TW/core.js @@ -153,6 +153,7 @@ export default { users: '使用者', viewer: '檢視', writeComment: '編寫評論...', + taskList_hideChecked: '隱藏已完成的任務', }, action: { @@ -220,6 +221,7 @@ export default { unsubscribe: '取消訂閱', uploadNewAvatar: '上傳新頭像', uploadNewImage: '上傳圖片', + moveListToBoard: '移動列表到另一個面板', }, }, };