mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 23:40:13 +01:00
Compare commits
31 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
614cb44b55 | ||
|
|
0ce8e8b74d | ||
|
|
4ea53af76e | ||
|
|
016f17d663 | ||
|
|
07f69950a7 | ||
|
|
cec625607d | ||
|
|
a290c7b34b | ||
|
|
5b77ac1b44 | ||
|
|
41c635afb5 | ||
|
|
adbf729cb2 | ||
|
|
88ea716d63 | ||
|
|
003a07ebce | ||
|
|
d3c237bc66 | ||
|
|
bac0fa81fc | ||
|
|
a42915614a | ||
|
|
5ff9bf331f | ||
|
|
36d7b0f8a7 | ||
|
|
67c8a98f20 | ||
|
|
a81a603031 | ||
|
|
e30ce78053 | ||
|
|
3d70de94c6 | ||
|
|
70975c2944 | ||
|
|
960e2126b4 | ||
|
|
3db1305e58 | ||
|
|
f16780b5e3 | ||
|
|
37a3065f3c | ||
|
|
7ff1649d89 | ||
|
|
a39ae31b45 | ||
|
|
6302a48221 | ||
|
|
c277bee9d2 | ||
|
|
c5f5ce126d |
21 changed files with 2492 additions and 2290 deletions
2
.github/workflows/depsreview.yaml
vendored
2
.github/workflows/depsreview.yaml
vendored
|
|
@ -9,6 +9,6 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Checkout Repository'
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
- name: 'Dependency Review'
|
||||
uses: actions/dependency-review-action@v4
|
||||
|
|
|
|||
4
.github/workflows/docker-publish.yml
vendored
4
.github/workflows/docker-publish.yml
vendored
|
|
@ -32,7 +32,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# Login against a Docker registry except on PR
|
||||
# https://github.com/docker/login-action
|
||||
|
|
@ -48,7 +48,7 @@ jobs:
|
|||
# https://github.com/docker/metadata-action
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f
|
||||
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
|
||||
|
|
|
|||
2
.github/workflows/dockerimage.yml
vendored
2
.github/workflows/dockerimage.yml
vendored
|
|
@ -15,6 +15,6 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
- name: Build the Docker image
|
||||
run: docker build . --file Dockerfile --tag wekan:$(date +%s)
|
||||
|
|
|
|||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
|
@ -15,7 +15,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
|
|
|||
20
.github/workflows/test_suite.yml
vendored
20
.github/workflows/test_suite.yml
vendored
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - name: checkout
|
||||
# uses: actions/checkout@v5
|
||||
# uses: actions/checkout@v6
|
||||
#
|
||||
# - name: setup node
|
||||
# uses: actions/setup-node@v1
|
||||
|
|
@ -42,7 +42,7 @@ jobs:
|
|||
# needs: [lintcode]
|
||||
# steps:
|
||||
# - name: checkout
|
||||
# uses: actions/checkout@v5
|
||||
# uses: actions/checkout@v6
|
||||
#
|
||||
# - name: setup node
|
||||
# uses: actions/setup-node@v1
|
||||
|
|
@ -65,7 +65,7 @@ jobs:
|
|||
# needs: [lintcode,lintstyle]
|
||||
# steps:
|
||||
# - name: checkout
|
||||
# uses: actions/checkout@v5
|
||||
# uses: actions/checkout@v6
|
||||
#
|
||||
# - name: setup node
|
||||
# uses: actions/setup-node@v1
|
||||
|
|
@ -90,12 +90,12 @@ jobs:
|
|||
|
||||
# CHECKOUTS
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# CACHING
|
||||
- name: Install Meteor
|
||||
id: cache-meteor-install
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: ~/.meteor
|
||||
key: v1-meteor-${{ hashFiles('.meteor/versions') }}
|
||||
|
|
@ -104,7 +104,7 @@ jobs:
|
|||
|
||||
- name: Cache NPM dependencies
|
||||
id: cache-meteor-npm
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: v1-npm-${{ hashFiles('package-lock.json') }}
|
||||
|
|
@ -113,7 +113,7 @@ jobs:
|
|||
|
||||
- name: Cache Meteor build
|
||||
id: cache-meteor-build
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: |
|
||||
.meteor/local/resolver-result-cache.json
|
||||
|
|
@ -136,7 +136,7 @@ jobs:
|
|||
run: sh ./test-wekan.sh -cv
|
||||
|
||||
- name: Upload coverage
|
||||
uses: actions/upload-artifact@v5
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: coverage-folder
|
||||
path: .coverage/
|
||||
|
|
@ -147,10 +147,10 @@ jobs:
|
|||
needs: [tests]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Download coverage
|
||||
uses: actions/download-artifact@v6
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: coverage-folder
|
||||
path: .coverage/
|
||||
|
|
|
|||
18
CHANGELOG.md
18
CHANGELOG.md
|
|
@ -22,6 +22,24 @@ Fixing other platforms In Progress.
|
|||
WeKan 8.00-8.06 had wrong raw database directory setting /var/snap/wekan/common/wekan and some cards were not visible.
|
||||
Those are fixed at WeKan 8.07 where database directory is back to /var/snap/wekan/common and all cards are visible.
|
||||
|
||||
# Upcoming WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Update GitHub docker/metadata-action from 5.8.0 to 5.9.0](https://github.com/wekan/wekan/pull/6012).
|
||||
Thanks to dependabot.
|
||||
- [Updated security.md](https://github.com/wekan/wekan/commit/7ff1649d8909917cae590c68def6eecac0442f91).
|
||||
Thanks to xet7.
|
||||
- [Updated build script for Linux arm64 bundle](https://github.com/wekan/wekan/commit/3db1305e58168f7417023ccd8d54995026844b18).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix Broken Strikethroughs in Markdown to HTML conversion](https://github.com/wekan/wekan/pull/6009).
|
||||
Thanks to brlin-tw.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v8.17 2025-11-06 WeKan ® release
|
||||
|
||||
This release adds the following new feature:
|
||||
|
|
|
|||
36
SECURITY.md
36
SECURITY.md
|
|
@ -1,12 +1,20 @@
|
|||
About money, see [CONTRIBUTING.md](CONTRIBUTING.md)
|
||||
|
||||
Security is very important to us. If you discover any issue regarding security, please disclose
|
||||
the information responsibly by sending an email from Protonmail to security@wekan.fi
|
||||
that is Protomail email address, or by using this PGP key
|
||||
[security-at-wekan.fi.asc](security-at-wekan.fi.asc) to security@wekan.fi
|
||||
and not by creating a GitHub issue. We will respond swiftly to fix verifiable security issues.
|
||||
## Responsible Security Disclosure
|
||||
|
||||
We thank you with a place at our hall of fame page, that is at https://wekan.fi/hall-of-fame
|
||||
- To send email, use [ProtonMail](https://proton.me) email address or use PGP key [security-at-wekan.fi.asc](security-at-wekan.fi.asc)
|
||||
- Send info about security issue ONLY to security@wekan.fi (that is Protomail email address). NOT TO ANYWHERE ELSE. NO CC, NO BCC.
|
||||
- Wait for new WeKan release that fixes security issue
|
||||
- If you approve, we thank you by adding you to Hall of Fame: https://wekan.fi/hall-of-fame/
|
||||
|
||||
## Bonus Points
|
||||
|
||||
- If you include code for fixing security issue
|
||||
|
||||
## Losing Points
|
||||
|
||||
- If you ask about [bounty](CONTRIBUTING.md). There is no bounty. WeKan is NOT Big Tech. WeKan is FLOSS.
|
||||
- If you forget to include vulnerability details.
|
||||
- If you send info about security issue to somewhere else than security@wekan.fi
|
||||
|
||||
## How should reports be formatted?
|
||||
|
||||
|
|
@ -26,7 +34,7 @@ CWSS (optional): %cwss
|
|||
|
||||
Anyone who reports a unique security issue in scope and does not disclose it to
|
||||
a third party before we have patched and updated may be upon their approval
|
||||
added to the Wekan Hall of Fame.
|
||||
added to the WeKan Hall of Fame https://wekan.fi/hall-of-fame/
|
||||
|
||||
## Which domains are in scope?
|
||||
|
||||
|
|
@ -63,11 +71,6 @@ and by by companies that have 30k users.
|
|||
- If you are thinking about TLS MITM, look at https://github.com/caddyserver/caddy/issues/2530
|
||||
- Let's Encrypt TLS requires publicly accessible webserver, that Let's Encrypt TLS validation servers check.
|
||||
- If firewall limits to only allowed IP addresses, you may need non-Let's Encrypt TLS cert.
|
||||
- For On Premise:
|
||||
- https://caddyserver.com/docs/automatic-https#local-https
|
||||
- https://github.com/wekan/wekan/wiki/Caddy-Webserver-Config
|
||||
- https://github.com/wekan/wekan/wiki/Azure
|
||||
- https://github.com/wekan/wekan/wiki/Traefik-and-self-signed-SSL-certs
|
||||
|
||||
## XSS
|
||||
|
||||
|
|
@ -269,9 +272,4 @@ Typical already known or "no impact" bugs such as:
|
|||
- Email spoofing, SPF, DMARC & DKIM. Wekan does not include email server.
|
||||
|
||||
Wekan is Open Source with MIT license, and free to use also for commercial use.
|
||||
We welcome all fixes to improve security by email to security@wekan.team
|
||||
|
||||
## Bonus Points
|
||||
|
||||
If your Responsible Security Disclosure includes code for fixing security issue,
|
||||
you get bonus points, as seen on [Hall of Fame](https://wekan.github.io/hall-of-fame).
|
||||
We welcome all fixes to improve security by email to security@wekan.fi
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import DOMPurify from 'dompurify';
|
|||
export function getSecureDOMPurifyConfig() {
|
||||
return {
|
||||
// Allow common markdown elements including anchor tags
|
||||
ALLOWED_TAGS: ['a', 'p', 'br', 'strong', 'em', 'u', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'img', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'hr', 'div', 'span'],
|
||||
ALLOWED_TAGS: ['a', 'p', 'br', 'strong', 'em', 'u', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'img', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'hr', 'div', 'span', 's'],
|
||||
// Allow safe attributes including href for anchor tags
|
||||
ALLOWED_ATTR: ['href', 'title', 'alt', 'src', 'width', 'height', 'target', 'rel'],
|
||||
// Allow safe protocols for links
|
||||
|
|
|
|||
|
|
@ -78,18 +78,18 @@
|
|||
"activity-deleteComment": "commentaire supprimé %s",
|
||||
"activity-receivedDate": "date de réception éditée de %s à %s",
|
||||
"activity-startDate": "date de début éditée de %s à %s",
|
||||
"allboards.starred": "Starred",
|
||||
"allboards.starred": "Favoris",
|
||||
"allboards.templates": "Modèles",
|
||||
"allboards.remaining": "Remaining",
|
||||
"allboards.workspaces": "Workspaces",
|
||||
"allboards.add-workspace": "Add Workspace",
|
||||
"allboards.add-workspace-prompt": "Workspace name",
|
||||
"allboards.add-subworkspace": "Add Subworkspace",
|
||||
"allboards.add-subworkspace-prompt": "Subworkspace name",
|
||||
"allboards.edit-workspace": "Edit workspace",
|
||||
"allboards.edit-workspace-name": "Workspace name",
|
||||
"allboards.remaining": "Restant",
|
||||
"allboards.workspaces": "Espaces de travail",
|
||||
"allboards.add-workspace": "Ajouter un espace de travail",
|
||||
"allboards.add-workspace-prompt": "Nom de l'espace de travail",
|
||||
"allboards.add-subworkspace": "Ajouter un sous-espace de travail",
|
||||
"allboards.add-subworkspace-prompt": "Nom du sous-espace de travail",
|
||||
"allboards.edit-workspace": "Modifier l'espace de travail",
|
||||
"allboards.edit-workspace-name": "Nom de l'espace de travail",
|
||||
"allboards.edit-workspace-icon": "Workspace icon (markdown)",
|
||||
"multi-selection-active": "Click checkboxes to select boards",
|
||||
"multi-selection-active": "Cliquez sur les cases à cocher pour sélectionner les tableaux",
|
||||
"activity-dueDate": "date d'échéance éditée de %s à %s",
|
||||
"activity-endDate": "date de fin éditée de %s à %s",
|
||||
"add-attachment": "Ajouter une pièce jointe",
|
||||
|
|
@ -1416,35 +1416,35 @@
|
|||
"automatic-migration": "Migration automatique",
|
||||
"back-to-settings": "Retour aux paramètres",
|
||||
"board-id": "ID du tableau",
|
||||
"board-migration": "Board Migration",
|
||||
"board-migrations": "Board Migrations",
|
||||
"board-migration": "Migration du tableau",
|
||||
"board-migrations": "Migrations de tableau",
|
||||
"card-show-lists-on-minicard": "Afficher les listes sur la mini-carte",
|
||||
"comprehensive-board-migration": "Comprehensive Board Migration",
|
||||
"comprehensive-board-migration": "Migration complète de tableau",
|
||||
"comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
|
||||
"delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
|
||||
"delete-duplicate-empty-lists-migration": "Supprimer les listes vides en doublon ? ",
|
||||
"delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
|
||||
"lost-cards": "Lost Cards",
|
||||
"lost-cards-list": "Restored Items",
|
||||
"restore-lost-cards-migration": "Restore Lost Cards",
|
||||
"lost-cards": "Cartes perdues",
|
||||
"lost-cards-list": "Éléments restaurés",
|
||||
"restore-lost-cards-migration": "Restaurer les cartes perdues",
|
||||
"restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
|
||||
"restore-all-archived-migration": "Restore All Archived",
|
||||
"restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
|
||||
"fix-missing-lists-migration": "Fix Missing Lists",
|
||||
"fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
|
||||
"fix-avatar-urls-migration": "Fix Avatar URLs",
|
||||
"fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
|
||||
"fix-avatar-urls-migration": "Corriger les URLs d'avatar",
|
||||
"fix-avatar-urls-migration-description": "Mets à jour les URLs d'avatar des participants du tableau pour utiliser le bon gestionnaire de stockage et corriger les références défaillantes d'avatar ",
|
||||
"fix-all-file-urls-migration": "Fix All File URLs",
|
||||
"fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
|
||||
"migration-needed": "Migration Needed",
|
||||
"migration-needed": "Migration requise",
|
||||
"migration-complete": "Terminé",
|
||||
"migration-running": "Running...",
|
||||
"migration-successful": "Migration completed successfully",
|
||||
"migration-failed": "Migration failed",
|
||||
"migration-running": "En cours ...",
|
||||
"migration-successful": "Migration terminée avec succès",
|
||||
"migration-failed": "Migration en échec",
|
||||
"migrations": "Migrations",
|
||||
"migrations-admin-only": "Only board administrators can run migrations",
|
||||
"migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
|
||||
"no-issues-found": "No issues found",
|
||||
"run-migration": "Run Migration",
|
||||
"no-issues-found": "Aucun problème détecté",
|
||||
"run-migration": "Lancer la migration",
|
||||
"run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
|
||||
"run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
|
||||
|
|
@ -1454,28 +1454,28 @@
|
|||
"run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
|
||||
"restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
|
||||
|
||||
"migration-progress-title": "Board Migration in Progress",
|
||||
"migration-progress-title": "Migration du tableau en cours",
|
||||
"migration-progress-overall": "Overall Progress",
|
||||
"migration-progress-current-step": "Current Step",
|
||||
"migration-progress-current-step": "Étape courante",
|
||||
"migration-progress-status": "Statut",
|
||||
"migration-progress-details": "Détails",
|
||||
"migration-progress-note": "Please wait while we migrate your board to the latest structure...",
|
||||
|
||||
"step-analyze-board-structure": "Analyze Board Structure",
|
||||
"step-fix-orphaned-cards": "Fix Orphaned Cards",
|
||||
"step-fix-orphaned-cards": "Corriger les cartes orphelines",
|
||||
"step-convert-shared-lists": "Convert Shared Lists",
|
||||
"step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
|
||||
"step-validate-migration": "Validate Migration",
|
||||
"step-fix-avatar-urls": "Fix Avatar URLs",
|
||||
"step-validate-migration": "Valider la migration",
|
||||
"step-fix-avatar-urls": "Corriger les URLs d'avatar",
|
||||
"step-fix-attachment-urls": "Fix Attachment URLs",
|
||||
"step-analyze-lists": "Analyze Lists",
|
||||
"step-create-missing-lists": "Create Missing Lists",
|
||||
"step-update-cards": "Update Cards",
|
||||
"step-finalize": "Finalize",
|
||||
"step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
|
||||
"step-delete-duplicate-empty-lists": "Supprimer les listes vides en doublon ? ",
|
||||
"step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
|
||||
"step-restore-lists": "Restore Lists",
|
||||
"step-restore-cards": "Restore Cards",
|
||||
"step-restore-cards": "Restaurer les cartes",
|
||||
"step-restore-swimlanes": "Restore Swimlanes",
|
||||
"step-fix-missing-ids": "Fix Missing IDs",
|
||||
"step-scan-users": "Checking board member avatars",
|
||||
|
|
|
|||
|
|
@ -78,18 +78,18 @@
|
|||
"activity-deleteComment": "התגובה %s נמחקה",
|
||||
"activity-receivedDate": "תאריך הקבלה השתנה מ־%s ל־%s",
|
||||
"activity-startDate": "תאריך ההתחלה השתנה מ־%s ל־%s",
|
||||
"allboards.starred": "Starred",
|
||||
"allboards.starred": "סומן בכוכב",
|
||||
"allboards.templates": "תבניות",
|
||||
"allboards.remaining": "Remaining",
|
||||
"allboards.workspaces": "Workspaces",
|
||||
"allboards.add-workspace": "Add Workspace",
|
||||
"allboards.add-workspace-prompt": "Workspace name",
|
||||
"allboards.add-subworkspace": "Add Subworkspace",
|
||||
"allboards.add-subworkspace-prompt": "Subworkspace name",
|
||||
"allboards.edit-workspace": "Edit workspace",
|
||||
"allboards.edit-workspace-name": "Workspace name",
|
||||
"allboards.edit-workspace-icon": "Workspace icon (markdown)",
|
||||
"multi-selection-active": "Click checkboxes to select boards",
|
||||
"allboards.remaining": "נותרו",
|
||||
"allboards.workspaces": "מרחבי עבודה",
|
||||
"allboards.add-workspace": "הוספת מרחב עבודה",
|
||||
"allboards.add-workspace-prompt": "שם מרחב עבודה",
|
||||
"allboards.add-subworkspace": "הוספת תת־מרחב עבודה",
|
||||
"allboards.add-subworkspace-prompt": "שם תת־מרחב עבודה",
|
||||
"allboards.edit-workspace": "עריכת מרחב עבודה",
|
||||
"allboards.edit-workspace-name": "שם מרחב עבודה",
|
||||
"allboards.edit-workspace-icon": "סמל מרחב עבודה (markdown)",
|
||||
"multi-selection-active": "יש לסמן את התיבות כדי לבחור לוחות",
|
||||
"activity-dueDate": "תאריך היעד השתנה מ־%s ל־%s",
|
||||
"activity-endDate": "תאריך הסיום השתנה מ־%s ל־%s",
|
||||
"add-attachment": "הוספת קובץ מצורף",
|
||||
|
|
@ -398,7 +398,7 @@
|
|||
"editNotificationPopup-title": "שינוי דיווח",
|
||||
"editProfilePopup-title": "עריכת פרופיל",
|
||||
"email": "דוא״ל",
|
||||
"email-address": "Email Address",
|
||||
"email-address": "כתובת דוא״ל",
|
||||
"email-enrollAccount-subject": "נוצר עבורך חשבון באתר __siteName__",
|
||||
"email-enrollAccount-text": "__user__ שלום,\n\nכדי להתחיל להשתמש בשירות, יש ללחוץ על הקישור המופיע להלן.\n\n__url__\n\nתודה.",
|
||||
"email-fail": "שליחת ההודעה בדוא״ל נכשלה",
|
||||
|
|
@ -768,8 +768,8 @@
|
|||
"delete-board-confirm-popup": "כל הרשימות, הכרטיסים, התווית והפעולות יימחקו ולא תהיה לך דרך לשחזר את תכני הלוח. אין אפשרות לבטל.",
|
||||
"boardDeletePopup-title": "למחוק את הלוח?",
|
||||
"delete-board": "מחיקת לוח",
|
||||
"delete-duplicate-lists": "Delete Duplicate Lists",
|
||||
"delete-duplicate-lists-confirm": "Are you sure? This will delete all duplicate lists that have the same name and contain no cards.",
|
||||
"delete-duplicate-lists": "מחיקת רשימות כפולות",
|
||||
"delete-duplicate-lists-confirm": "להמשיך? הפעולה הזאת תמחק את כל הרשימות הכפולות שיש להן את אותו השם ואינן מכילות כרטיסים.",
|
||||
"default-subtasks-board": "תת־משימות עבור הלוח __board__",
|
||||
"default": "בררת מחדל",
|
||||
"defaultdefault": "בררת מחדל",
|
||||
|
|
@ -1417,15 +1417,15 @@
|
|||
"back-to-settings": "חזרה להגדרות",
|
||||
"board-id": "מזהה לוח",
|
||||
"board-migration": "הסבת לוחות",
|
||||
"board-migrations": "Board Migrations",
|
||||
"board-migrations": "הסבות לוחות",
|
||||
"card-show-lists-on-minicard": "הצגת רשימות בכרטיסון",
|
||||
"comprehensive-board-migration": "Comprehensive Board Migration",
|
||||
"comprehensive-board-migration": "הסבת לוחות נרחבת",
|
||||
"comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
|
||||
"delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
|
||||
"delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
|
||||
"lost-cards": "Lost Cards",
|
||||
"lost-cards-list": "Restored Items",
|
||||
"restore-lost-cards-migration": "Restore Lost Cards",
|
||||
"lost-cards": "כרטיסים אבודים",
|
||||
"lost-cards-list": "פריטים משוחזרים",
|
||||
"restore-lost-cards-migration": "שחזור כרטיסים אבודים",
|
||||
"restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
|
||||
"restore-all-archived-migration": "Restore All Archived",
|
||||
"restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
|
||||
|
|
@ -1439,8 +1439,8 @@
|
|||
"migration-complete": "הושלם",
|
||||
"migration-running": "Running...",
|
||||
"migration-successful": "Migration completed successfully",
|
||||
"migration-failed": "Migration failed",
|
||||
"migrations": "Migrations",
|
||||
"migration-failed": "ההסבה נכשלה",
|
||||
"migrations": "הסבות",
|
||||
"migrations-admin-only": "Only board administrators can run migrations",
|
||||
"migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
|
||||
"no-issues-found": "No issues found",
|
||||
|
|
|
|||
|
|
@ -1474,9 +1474,9 @@
|
|||
"step-finalize": "Finalize",
|
||||
"step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
|
||||
"step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
|
||||
"step-restore-lists": "Restore Lists",
|
||||
"step-restore-cards": "Restore Cards",
|
||||
"step-restore-swimlanes": "Restore Swimlanes",
|
||||
"step-restore-lists": "リストをリストア",
|
||||
"step-restore-cards": "カードをリストア",
|
||||
"step-restore-swimlanes": "スイムレーンをリストア",
|
||||
"step-fix-missing-ids": "Fix Missing IDs",
|
||||
"step-scan-users": "Checking board member avatars",
|
||||
"step-scan-files": "Checking board file attachments",
|
||||
|
|
|
|||
|
|
@ -1474,9 +1474,9 @@
|
|||
"step-finalize": "Finalize",
|
||||
"step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
|
||||
"step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
|
||||
"step-restore-lists": "Restore Lists",
|
||||
"step-restore-cards": "Restore Cards",
|
||||
"step-restore-swimlanes": "Restore Swimlanes",
|
||||
"step-restore-lists": "リストをリストア",
|
||||
"step-restore-cards": "カードをリストア",
|
||||
"step-restore-swimlanes": "スイムレーンをリストア",
|
||||
"step-fix-missing-ids": "Fix Missing IDs",
|
||||
"step-scan-users": "Checking board member avatars",
|
||||
"step-scan-files": "Checking board file attachments",
|
||||
|
|
|
|||
|
|
@ -78,18 +78,18 @@
|
|||
"activity-deleteComment": "aantekening verwijderd %s",
|
||||
"activity-receivedDate": "ontvangst datum gewijzigd naar %s van %s",
|
||||
"activity-startDate": "start datum gewijzigd naar %s van %s",
|
||||
"allboards.starred": "Starred",
|
||||
"allboards.starred": "Favorieten",
|
||||
"allboards.templates": "Templates",
|
||||
"allboards.remaining": "Remaining",
|
||||
"allboards.workspaces": "Workspaces",
|
||||
"allboards.add-workspace": "Add Workspace",
|
||||
"allboards.add-workspace-prompt": "Workspace name",
|
||||
"allboards.add-subworkspace": "Add Subworkspace",
|
||||
"allboards.add-subworkspace-prompt": "Subworkspace name",
|
||||
"allboards.edit-workspace": "Edit workspace",
|
||||
"allboards.edit-workspace-name": "Workspace name",
|
||||
"allboards.edit-workspace-icon": "Workspace icon (markdown)",
|
||||
"multi-selection-active": "Click checkboxes to select boards",
|
||||
"allboards.remaining": "Resterend",
|
||||
"allboards.workspaces": "Werkruimte",
|
||||
"allboards.add-workspace": "Werkruimte toevoegen",
|
||||
"allboards.add-workspace-prompt": "Werkruimtenaam",
|
||||
"allboards.add-subworkspace": "Sub-werkruimte toevoegen",
|
||||
"allboards.add-subworkspace-prompt": "Sub-werkruimtenaam",
|
||||
"allboards.edit-workspace": "Wijzig werkruimte",
|
||||
"allboards.edit-workspace-name": "Werkruimtenaam",
|
||||
"allboards.edit-workspace-icon": "Werkruimteicoon (markdown)",
|
||||
"multi-selection-active": "Vink de checkboxen om borden te selecteren",
|
||||
"activity-dueDate": "vervaldatum gewijzigd naar %s van %s",
|
||||
"activity-endDate": "einddatum gewijzigd naar %s van %s",
|
||||
"add-attachment": "Bijlage Toevoegen",
|
||||
|
|
@ -936,7 +936,7 @@
|
|||
"people-number": "Het aantal gebruikers is:",
|
||||
"swimlaneDeletePopup-title": "Swimlane verwijderen?",
|
||||
"swimlane-delete-pop": "Alle acties zullen verwijderd worden van de activiteiten feed en je kunt de swimlane niet terughalen. Er is geen herstelmogelijkheid.",
|
||||
"restore-all": "Haal alles terug",
|
||||
"restore-all": "Herstel alles",
|
||||
"delete-all": "Verwijder alles",
|
||||
"loading": "Laden, even geduld.",
|
||||
"previous_as": "laatste keer was",
|
||||
|
|
@ -1417,70 +1417,70 @@
|
|||
"back-to-settings": "Terug naar Instellingen",
|
||||
"board-id": "Bord ID",
|
||||
"board-migration": "Bord Migratie",
|
||||
"board-migrations": "Board Migrations",
|
||||
"board-migrations": "Bord Migraties",
|
||||
"card-show-lists-on-minicard": "Toon Lijsten op Minikaart",
|
||||
"comprehensive-board-migration": "Comprehensive Board Migration",
|
||||
"comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
|
||||
"delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
|
||||
"delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
|
||||
"lost-cards": "Lost Cards",
|
||||
"lost-cards-list": "Restored Items",
|
||||
"restore-lost-cards-migration": "Restore Lost Cards",
|
||||
"restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
|
||||
"restore-all-archived-migration": "Restore All Archived",
|
||||
"restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
|
||||
"fix-missing-lists-migration": "Fix Missing Lists",
|
||||
"fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
|
||||
"fix-avatar-urls-migration": "Fix Avatar URLs",
|
||||
"fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
|
||||
"fix-all-file-urls-migration": "Fix All File URLs",
|
||||
"fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
|
||||
"migration-needed": "Migration Needed",
|
||||
"comprehensive-board-migration": "Uitgebreide Bord Migratie",
|
||||
"comprehensive-board-migration-description": "Voert uitgebreide controles en reparaties uit voor bord data-integriteit, inclusief lijst sortering, kaart posities en swimlane-structuur.",
|
||||
"delete-duplicate-empty-lists-migration": "Verwijder Dubbele Lege Lijsten",
|
||||
"delete-duplicate-empty-lists-migration-description": "Verwijderd veilig lege dubbele lijsten. Verwijderd alleen lijsten die geen kaarten bevatten EN waar een andere lijst bestaat met dezelfde titel die wel kaarten bevat.",
|
||||
"lost-cards": "Verloren Kaarten",
|
||||
"lost-cards-list": "Herstelde Items",
|
||||
"restore-lost-cards-migration": "Herstel Verloren Kaarten",
|
||||
"restore-lost-cards-migration-description": "Vind en herstel kaarten en lijsten met missende swimlane-ID of list-ID. Hier wordt een 'Verloren Kaarten'-swimlane gemaakt om alles verloren items weer zichtbaar te maken.",
|
||||
"restore-all-archived-migration": "Herstel Alles ui Archief",
|
||||
"restore-all-archived-migration-description": "Herstel alle ge-archiveerde swimlanes, lijsten en kaarten. Hierbij worden automatisch de missende swimlane-ID of lijs-ID gerapareerd om de items weer zichtbaar te maken.",
|
||||
"fix-missing-lists-migration": "Repareer Missende Lijsten",
|
||||
"fix-missing-lists-migration-description": "Detecteer en repareer missende of corrupte lijsten in de bordstructuur.",
|
||||
"fix-avatar-urls-migration": "Repareer Avatar URL's",
|
||||
"fix-avatar-urls-migration-description": "Werkt de avatar URL's van de bord-leden bij zodat de juiste opslagmethode gebruikt wordt en het repareert defecte avatar verwijzingen.",
|
||||
"fix-all-file-urls-migration": "Repareer alle bestand URL's",
|
||||
"fix-all-file-urls-migration-description": "Werkt alle bestandsbijlagen URL's op dit bord bij naar de juiste opslagmethode en repareert defecte bestandsverwijzingen.",
|
||||
"migration-needed": "Migratie Nodig",
|
||||
"migration-complete": "Voltooid",
|
||||
"migration-running": "Running...",
|
||||
"migration-successful": "Migration completed successfully",
|
||||
"migration-failed": "Migration failed",
|
||||
"migrations": "Migrations",
|
||||
"migrations-admin-only": "Only board administrators can run migrations",
|
||||
"migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
|
||||
"no-issues-found": "No issues found",
|
||||
"run-migration": "Run Migration",
|
||||
"run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
|
||||
"run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
|
||||
"run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
|
||||
"run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
|
||||
"run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
|
||||
"run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
|
||||
"restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
|
||||
"migration-running": "In Uitvoering...",
|
||||
"migration-successful": "Migratie succesvol uitgevoerd",
|
||||
"migration-failed": "Migratie mislukt",
|
||||
"migrations": "Migraties",
|
||||
"migrations-admin-only": "Alleen bord-beherders kunnen migraties uitvoeren",
|
||||
"migrations-description": "Voer data-integriteits controles en reparaties uit op dit bord. Elke migratie kan afzonderlijk uitgevoerd worden.",
|
||||
"no-issues-found": "Geen problemen gevonden",
|
||||
"run-migration": "Voer Migratie Uit",
|
||||
"run-comprehensive-migration-confirm": "Dit voert een uitgebreide migratie uit en controleert en repareert de data-integriteit op dit bord. Dit kan even duren. Doorgaan?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "Dit converteert eventuele gedeelde lijsten naar lijsten per swimlane waarna lege lijsten verwijderd worden die dubbel zijn met een lijst met dezelfde titel en wel kaarten bevatten. Alleen echt dubbele lege lijsten worden verwijderd. Doorgaan?",
|
||||
"run-restore-lost-cards-migration-confirm": "Dit creëert een 'Verloren Kaarten' swimlane en hierin worden kaarten en lijsten hersteld met een missende swimlane-ID of lijst-ID. Dit heeft alleen gevolgen voor niet gearchiveerde items. Doorgaan?",
|
||||
"run-restore-all-archived-migration-confirm": "Dit herstelt alle gearchiveerde swimlanes, lijsten en kaarten waardoor ze weer zichtbaar worden. Items met een missende ID zulle automatisch gerepareerd worden. Doorgaan?",
|
||||
"run-fix-missing-lists-migration-confirm": "Dit detecteert en repareert missende of corrupte lijsten in de bord-structuur. Doorgaan?",
|
||||
"run-fix-avatar-urls-migration-confirm": "Dit werkt alle avatar URL's van de bord-leden bij naar de juiste opslagmethode. Doorgaan?",
|
||||
"run-fix-all-file-urls-migration-confirm": "dit werkt alle bestandsbijlagen URL's bij naar de juiste opslagmethode. Doorgaan?",
|
||||
"restore-lost-cards-nothing-to-restore": "Geen verloren swinmlanes, lijsten of kaarten om te herstellen",
|
||||
|
||||
"migration-progress-title": "Board Migration in Progress",
|
||||
"migration-progress-title": "Bord Migratie in Uitvoering",
|
||||
"migration-progress-overall": "Algehele Voortgang",
|
||||
"migration-progress-current-step": "Current Step",
|
||||
"migration-progress-current-step": "Huidige Stap",
|
||||
"migration-progress-status": "Status",
|
||||
"migration-progress-details": "Details",
|
||||
"migration-progress-note": "Please wait while we migrate your board to the latest structure...",
|
||||
"migration-progress-note": "Wacht tot we jouw bord gemigreerd hebben naar de actuele structuur...",
|
||||
|
||||
"step-analyze-board-structure": "Analyze Board Structure",
|
||||
"step-fix-orphaned-cards": "Fix Orphaned Cards",
|
||||
"step-convert-shared-lists": "Convert Shared Lists",
|
||||
"step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
|
||||
"step-validate-migration": "Validate Migration",
|
||||
"step-fix-avatar-urls": "Fix Avatar URLs",
|
||||
"step-fix-attachment-urls": "Fix Attachment URLs",
|
||||
"step-analyze-lists": "Analyze Lists",
|
||||
"step-create-missing-lists": "Create Missing Lists",
|
||||
"step-update-cards": "Update Cards",
|
||||
"step-finalize": "Finalize",
|
||||
"step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
|
||||
"step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
|
||||
"step-restore-lists": "Restore Lists",
|
||||
"step-restore-cards": "Restore Cards",
|
||||
"step-restore-swimlanes": "Restore Swimlanes",
|
||||
"step-fix-missing-ids": "Fix Missing IDs",
|
||||
"step-scan-users": "Checking board member avatars",
|
||||
"step-scan-files": "Checking board file attachments",
|
||||
"step-fix-file-urls": "Fixing file URLs",
|
||||
"step-analyze-board-structure": "Bordstructuur Analyseren",
|
||||
"step-fix-orphaned-cards": "Repareer Verweesde Kaarten",
|
||||
"step-convert-shared-lists": "Converteer Gedeelde Lijsten",
|
||||
"step-ensure-per-swimlane-lists": "Maak Per-Swimlane Lijsten",
|
||||
"step-validate-migration": "Valideer Migratie",
|
||||
"step-fix-avatar-urls": "Repareer Avatar URL's",
|
||||
"step-fix-attachment-urls": "Repareer Bijlage URL's",
|
||||
"step-analyze-lists": "Analyseer Lijsten",
|
||||
"step-create-missing-lists": "Maak Missende Lijsten",
|
||||
"step-update-cards": "Werk Kaarten Bij",
|
||||
"step-finalize": "Beëindig",
|
||||
"step-delete-duplicate-empty-lists": "Verwijder Dubbele Lege Lijsten",
|
||||
"step-ensure-lost-cards-swimlane": "Maak Verloren Kaarten Swimlane",
|
||||
"step-restore-lists": "Herstel Lijsten",
|
||||
"step-restore-cards": "Herstel Kaarten",
|
||||
"step-restore-swimlanes": "Herstel Swimlanes",
|
||||
"step-fix-missing-ids": "Herstel Missende ID's",
|
||||
"step-scan-users": "Bord-leden avatars controleren",
|
||||
"step-scan-files": "Bord bestandsbijlagen controleren",
|
||||
"step-fix-file-urls": "Herstel bestand URL's",
|
||||
"cleanup": "Opschonen",
|
||||
"cleanup-old-jobs": "Schoon Oude Taken Op",
|
||||
"completed": "Afgewerkt",
|
||||
|
|
|
|||
|
|
@ -78,18 +78,18 @@
|
|||
"activity-deleteComment": "comentário excluído %s",
|
||||
"activity-receivedDate": "editou recebido para %s de %s",
|
||||
"activity-startDate": "editou data início para %s de %s",
|
||||
"allboards.starred": "Starred",
|
||||
"allboards.starred": "Favoritado",
|
||||
"allboards.templates": "Modelos",
|
||||
"allboards.remaining": "Remaining",
|
||||
"allboards.workspaces": "Workspaces",
|
||||
"allboards.add-workspace": "Add Workspace",
|
||||
"allboards.add-workspace-prompt": "Workspace name",
|
||||
"allboards.add-subworkspace": "Add Subworkspace",
|
||||
"allboards.add-subworkspace-prompt": "Subworkspace name",
|
||||
"allboards.edit-workspace": "Edit workspace",
|
||||
"allboards.edit-workspace-name": "Workspace name",
|
||||
"allboards.edit-workspace-icon": "Workspace icon (markdown)",
|
||||
"multi-selection-active": "Click checkboxes to select boards",
|
||||
"allboards.remaining": "Restante",
|
||||
"allboards.workspaces": "Áreas de trabalho",
|
||||
"allboards.add-workspace": "Adicionar Área de trabalho",
|
||||
"allboards.add-workspace-prompt": "Nome da Área de trabalho",
|
||||
"allboards.add-subworkspace": "Adicionar Subárea de trabalho",
|
||||
"allboards.add-subworkspace-prompt": "Nome da Subárea de trabalho",
|
||||
"allboards.edit-workspace": "Editar Área de trabalho",
|
||||
"allboards.edit-workspace-name": "Nome da Área de trabalho",
|
||||
"allboards.edit-workspace-icon": "Ícone da Área de trabalho (markdown)",
|
||||
"multi-selection-active": "Clique nas caixas de seleção para selecionar os quadros",
|
||||
"activity-dueDate": "editou prazo final para %s de %s",
|
||||
"activity-endDate": "editou concluído para %s de %s",
|
||||
"add-attachment": "Adicionar Anexos",
|
||||
|
|
@ -1419,68 +1419,68 @@
|
|||
"board-migration": "Migração de Quadro",
|
||||
"board-migrations": "Migração de Quadros",
|
||||
"card-show-lists-on-minicard": "Mostrar Listas no Mini cartão",
|
||||
"comprehensive-board-migration": "Comprehensive Board Migration",
|
||||
"comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
|
||||
"delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
|
||||
"delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
|
||||
"lost-cards": "Lost Cards",
|
||||
"lost-cards-list": "Restored Items",
|
||||
"restore-lost-cards-migration": "Restore Lost Cards",
|
||||
"restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
|
||||
"restore-all-archived-migration": "Restore All Archived",
|
||||
"restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
|
||||
"fix-missing-lists-migration": "Fix Missing Lists",
|
||||
"fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
|
||||
"fix-avatar-urls-migration": "Fix Avatar URLs",
|
||||
"fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
|
||||
"fix-all-file-urls-migration": "Fix All File URLs",
|
||||
"fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
|
||||
"migration-needed": "Migration Needed",
|
||||
"comprehensive-board-migration": "Migração de Quadros abrangente",
|
||||
"comprehensive-board-migration-description": "Realiza verificações e correções abrangentes para a integridade dos dados do quadro, incluindo a ordem da lista, as posições dos cartões e a estrutura das raias.",
|
||||
"delete-duplicate-empty-lists-migration": "Apagar Listas Vazias Duplicadas",
|
||||
"delete-duplicate-empty-lists-migration-description": "Exclui com segurança listas duplicadas vazias. Remove apenas listas que não contêm cartões E que possuem outra lista com o mesmo título que contém cartões.",
|
||||
"lost-cards": "Cartões Perdidos",
|
||||
"lost-cards-list": "Itens Recuperados",
|
||||
"restore-lost-cards-migration": "Recuperar Cartões Perdidos",
|
||||
"restore-lost-cards-migration-description": "Encontra e restaura cartões e listas com ID de raia ou ID de lista ausentes. Cria uma raia \"Cartões Perdidos\" para tornar todos os itens perdidos visíveis novamente.",
|
||||
"restore-all-archived-migration": "Recuperar Todos Arquivados",
|
||||
"restore-all-archived-migration-description": "Restaura todas as raias, listas e cartões arquivados. Corrige automaticamente qualquer ID de raia ou ID de lista ausente para tornar os itens visíveis.",
|
||||
"fix-missing-lists-migration": "Corrigir Listas Ausentes",
|
||||
"fix-missing-lists-migration-description": "Detecta e repara listas ausentes ou corrompidas na estrutura do quadro.",
|
||||
"fix-avatar-urls-migration": "Corrigir URLs de Avatar",
|
||||
"fix-avatar-urls-migration-description": "Atualiza os URLs dos avatares dos membros do quadro para que utilizem o backend de armazenamento correto e corrige referências de avatar quebradas.",
|
||||
"fix-all-file-urls-migration": "Corrigir todas URLs de arquivos",
|
||||
"fix-all-file-urls-migration-description": "Atualiza todas URLs de arquivos de anexo neste quadro para usar o backend de armazenamento correto e corrige referências de arquivos quebradas.",
|
||||
"migration-needed": "Migração necessária",
|
||||
"migration-complete": "Concluído",
|
||||
"migration-running": "Running...",
|
||||
"migration-successful": "Migration completed successfully",
|
||||
"migration-failed": "Migration failed",
|
||||
"migrations": "Migrations",
|
||||
"migrations-admin-only": "Only board administrators can run migrations",
|
||||
"migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
|
||||
"no-issues-found": "No issues found",
|
||||
"run-migration": "Run Migration",
|
||||
"run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
|
||||
"run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
|
||||
"run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
|
||||
"run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
|
||||
"run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
|
||||
"run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
|
||||
"restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
|
||||
"migration-running": "Executando...",
|
||||
"migration-successful": "Migração concluída com sucesso.",
|
||||
"migration-failed": "A migração falhou",
|
||||
"migrations": "Migrações",
|
||||
"migrations-admin-only": "Somente os administradores do quadro podem executar migrações.",
|
||||
"migrations-description": "Execute verificações de integridade de dados e reparos para este quadro. Cada migração pode ser executada individualmente.",
|
||||
"no-issues-found": "Nenhum problema encontrado",
|
||||
"run-migration": "Executar Migração",
|
||||
"run-comprehensive-migration-confirm": "Isso realizará uma migração completa para verificar e corrigir a integridade dos dados do quadro. Isso pode levar alguns instantes. Continuar?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "Primeiro, isso converterá todas as listas compartilhadas em listas por raia e, em seguida, excluirá as listas vazias que contêm listas duplicadas com o mesmo título e que possuem cartões. Somente as listas vazias realmente redundantes serão removidas. Continuar?",
|
||||
"run-restore-lost-cards-migration-confirm": "Isso criará uma raia \"Cartões Perdidos\" e restaurará todos os cartões e listas com ID de raia ou ID de lista ausentes. Isso afeta apenas itens não arquivados. Continuar?",
|
||||
"run-restore-all-archived-migration-confirm": "Isso restaurará TODAS as raias, listas e cartões arquivados, tornando-os visíveis novamente. Quaisquer itens com IDs ausentes serão corrigidos automaticamente. Esta ação não pode ser desfeita facilmente. Continuar?",
|
||||
"run-fix-missing-lists-migration-confirm": "Isso detectará e corrigirá listas ausentes ou corrompidas na estrutura do quadro. Continuar?",
|
||||
"run-fix-avatar-urls-migration-confirm": "Isso atualizará as URLs dos avatares dos membros do quadro para usar o backend de armazenamento correto. Continuar?",
|
||||
"run-fix-all-file-urls-migration-confirm": "Isso atualizará todas URLs de arquivos de anexos neste quadro para usar o servidor de armazenamento correto. Continuar?",
|
||||
"restore-lost-cards-nothing-to-restore": "Sem raias, listas ou cartões perdidos para restaurar.",
|
||||
|
||||
"migration-progress-title": "Board Migration in Progress",
|
||||
"migration-progress-title": "Migração do Quadro em Andamento",
|
||||
"migration-progress-overall": "Progresso Geral",
|
||||
"migration-progress-current-step": "Current Step",
|
||||
"migration-progress-current-step": "Etapa Atual",
|
||||
"migration-progress-status": "Status",
|
||||
"migration-progress-details": "Detalhes",
|
||||
"migration-progress-note": "Please wait while we migrate your board to the latest structure...",
|
||||
"migration-progress-note": "Aguarde enquanto migramos seu quadro para a estrutura mais recente...",
|
||||
|
||||
"step-analyze-board-structure": "Analyze Board Structure",
|
||||
"step-fix-orphaned-cards": "Fix Orphaned Cards",
|
||||
"step-convert-shared-lists": "Convert Shared Lists",
|
||||
"step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
|
||||
"step-validate-migration": "Validate Migration",
|
||||
"step-fix-avatar-urls": "Fix Avatar URLs",
|
||||
"step-fix-attachment-urls": "Fix Attachment URLs",
|
||||
"step-analyze-lists": "Analyze Lists",
|
||||
"step-create-missing-lists": "Create Missing Lists",
|
||||
"step-update-cards": "Update Cards",
|
||||
"step-finalize": "Finalize",
|
||||
"step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
|
||||
"step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
|
||||
"step-restore-lists": "Restore Lists",
|
||||
"step-restore-cards": "Restore Cards",
|
||||
"step-restore-swimlanes": "Restore Swimlanes",
|
||||
"step-fix-missing-ids": "Fix Missing IDs",
|
||||
"step-scan-users": "Checking board member avatars",
|
||||
"step-scan-files": "Checking board file attachments",
|
||||
"step-fix-file-urls": "Fixing file URLs",
|
||||
"step-analyze-board-structure": "Analisar a Estrutura do Quadro",
|
||||
"step-fix-orphaned-cards": "Corrigir Cartões Órfãos",
|
||||
"step-convert-shared-lists": "Converter Listas Compartilhadas",
|
||||
"step-ensure-per-swimlane-lists": "Garantir listas por raia",
|
||||
"step-validate-migration": "Validar Migração",
|
||||
"step-fix-avatar-urls": "Corrigir URLs de Avatar",
|
||||
"step-fix-attachment-urls": "Corrigir URLs de anexos",
|
||||
"step-analyze-lists": "Analisar Listas",
|
||||
"step-create-missing-lists": "Criar Listas Faltantes",
|
||||
"step-update-cards": "Atualizar Cartões",
|
||||
"step-finalize": "Finalizar",
|
||||
"step-delete-duplicate-empty-lists": "Apagar Listas Vazias Duplicadas",
|
||||
"step-ensure-lost-cards-swimlane": "Garantir a Raia dos Cartões Perdidos",
|
||||
"step-restore-lists": "Restaurar Listas",
|
||||
"step-restore-cards": "Restaurar Cartões",
|
||||
"step-restore-swimlanes": "Restaurar Raias",
|
||||
"step-fix-missing-ids": "Corrigir IDs ausentes",
|
||||
"step-scan-users": "Verificando os avatares dos membros do quadro",
|
||||
"step-scan-files": "Verificando arquivos de anexos do quadro",
|
||||
"step-fix-file-urls": "Corrigindo URLs de arquivos",
|
||||
"cleanup": "Limpeza",
|
||||
"cleanup-old-jobs": "Limpar Trabalhos Antigos",
|
||||
"completed": "Completado",
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -78,18 +78,18 @@
|
|||
"activity-deleteComment": "raderade kommentar %s",
|
||||
"activity-receivedDate": "redigerade mottaget datum till %s av %s",
|
||||
"activity-startDate": "redigerade startdatum till %s av %s",
|
||||
"allboards.starred": "Starred",
|
||||
"allboards.starred": " Stjärnmärkt",
|
||||
"allboards.templates": "Mallar",
|
||||
"allboards.remaining": "Remaining",
|
||||
"allboards.workspaces": "Workspaces",
|
||||
"allboards.add-workspace": "Add Workspace",
|
||||
"allboards.add-workspace-prompt": "Workspace name",
|
||||
"allboards.add-subworkspace": "Add Subworkspace",
|
||||
"allboards.add-subworkspace-prompt": "Subworkspace name",
|
||||
"allboards.edit-workspace": "Edit workspace",
|
||||
"allboards.edit-workspace-name": "Workspace name",
|
||||
"allboards.edit-workspace-icon": "Workspace icon (markdown)",
|
||||
"multi-selection-active": "Click checkboxes to select boards",
|
||||
"allboards.remaining": "Återstående",
|
||||
"allboards.workspaces": "Arbetsytor",
|
||||
"allboards.add-workspace": "Lägg till arbetsyta",
|
||||
"allboards.add-workspace-prompt": "Arbetsytans namn",
|
||||
"allboards.add-subworkspace": "Lägg till underarbetsyta",
|
||||
"allboards.add-subworkspace-prompt": "Underarbetsytans namn",
|
||||
"allboards.edit-workspace": "Redigera arbetsyta",
|
||||
"allboards.edit-workspace-name": "Arbetsytans namn",
|
||||
"allboards.edit-workspace-icon": "Arbetsytans ikon (markdown)",
|
||||
"multi-selection-active": "Klicka i kryssrutor för att välja tavlor",
|
||||
"activity-dueDate": "redigerade förfallodag till %s av %s",
|
||||
"activity-endDate": "redigerade slutdatum till %s av %s",
|
||||
"add-attachment": "Lägg till bilaga",
|
||||
|
|
@ -1411,91 +1411,91 @@
|
|||
"add-job": "Lägg till jobb",
|
||||
"attachment-migration": "Migrering av bilagor",
|
||||
"attachment-monitoring": "Övervakning av bilagor",
|
||||
"attachment-settings": "Attachment Settings",
|
||||
"attachment-storage-settings": "Storage Settings",
|
||||
"automatic-migration": "Automatic Migration",
|
||||
"back-to-settings": "Back to Settings",
|
||||
"board-id": "Board ID",
|
||||
"board-migration": "Board Migration",
|
||||
"board-migrations": "Board Migrations",
|
||||
"card-show-lists-on-minicard": "Show Lists on Minicard",
|
||||
"comprehensive-board-migration": "Comprehensive Board Migration",
|
||||
"comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
|
||||
"delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
|
||||
"delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
|
||||
"lost-cards": "Lost Cards",
|
||||
"lost-cards-list": "Restored Items",
|
||||
"restore-lost-cards-migration": "Restore Lost Cards",
|
||||
"restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
|
||||
"restore-all-archived-migration": "Restore All Archived",
|
||||
"restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
|
||||
"fix-missing-lists-migration": "Fix Missing Lists",
|
||||
"fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
|
||||
"fix-avatar-urls-migration": "Fix Avatar URLs",
|
||||
"fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
|
||||
"fix-all-file-urls-migration": "Fix All File URLs",
|
||||
"fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
|
||||
"migration-needed": "Migration Needed",
|
||||
"migration-complete": "Complete",
|
||||
"migration-running": "Running...",
|
||||
"migration-successful": "Migration completed successfully",
|
||||
"migration-failed": "Migration failed",
|
||||
"migrations": "Migrations",
|
||||
"migrations-admin-only": "Only board administrators can run migrations",
|
||||
"migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
|
||||
"no-issues-found": "No issues found",
|
||||
"run-migration": "Run Migration",
|
||||
"run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
|
||||
"run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
|
||||
"run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
|
||||
"run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
|
||||
"run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
|
||||
"run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
|
||||
"restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
|
||||
"attachment-settings": "Bilageinställningar",
|
||||
"attachment-storage-settings": " Lagringsinställningar",
|
||||
"automatic-migration": "Automatisk migrering",
|
||||
"back-to-settings": "Tillbaka till inställningar",
|
||||
"board-id": "Tavlans ID",
|
||||
"board-migration": "Tavelmigration",
|
||||
"board-migrations": "Migrering av tavlor",
|
||||
"card-show-lists-on-minicard": "Visa listor på minikort",
|
||||
"comprehensive-board-migration": "Fullständig migration av alla tavlor ",
|
||||
"comprehensive-board-migration-description": "Utför omfattande kontroller och korrigeringar för tavlans dataintegritet, inklusive listordning, kortpositioner och swimlane-struktur.",
|
||||
"delete-duplicate-empty-lists-migration": "Ta bort duplicerade tomma listor",
|
||||
"delete-duplicate-empty-lists-migration-description": "Tar säkert bort tomma duplicerade listor. Tar endast bort listor som inte har några kort OCH där det finns en annan lista med samma titel som innehåller kort.",
|
||||
"lost-cards": "Förlorade kort ",
|
||||
"lost-cards-list": "Återställda objekt",
|
||||
"restore-lost-cards-migration": "Återställ förlorade kort",
|
||||
"restore-lost-cards-migration-description": "Hittar och återställer kort och listor som saknar simbaneid eller listId. Skapar en 'Förlorade kort'-simbana för att göra alla förlorade objekt synliga igen.",
|
||||
"restore-all-archived-migration": "Återställ från Arkiv",
|
||||
"restore-all-archived-migration-description": "Återställer alla arkiverade swimlanes, listor och kort. Korrigerar automatiskt alla saknade simbaneId eller listId för att göra objekt synliga.",
|
||||
"fix-missing-lists-migration": "Fixa saknade listor",
|
||||
"fix-missing-lists-migration-description": "Upptäcker och reparerar saknade eller korrupta listor i tavlans struktur.",
|
||||
"fix-avatar-urls-migration": "Fixa avatar-URL:er",
|
||||
"fix-avatar-urls-migration-description": "Uppdaterar avatar-URL:er för tavlans medlemmar till att använda rätt lagrings-backend och fixar trasiga avatar-referenser.",
|
||||
"fix-all-file-urls-migration": "Fixa alla fil-URL:er",
|
||||
"fix-all-file-urls-migration-description": "Uppdaterar alla URL:er för filbilagor på denna tavla till att använda rätt lagrings-backend och fixar trasiga filreferenser.",
|
||||
"migration-needed": "Migrering krävs",
|
||||
"migration-complete": "Avslutad",
|
||||
"migration-running": "Körs...",
|
||||
"migration-successful": "Migrering slutförd",
|
||||
"migration-failed": "Migrering misslyckades",
|
||||
"migrations": "Migreringar",
|
||||
"migrations-admin-only": "Endast tavlans administratörer kan köra migreringar",
|
||||
"migrations-description": "Kör dataintegritetskontroller och reparationer för denna tavla. Varje migrering kan utföras individuellt.",
|
||||
"no-issues-found": "Inga problem hittades",
|
||||
"run-migration": "Kör migrering",
|
||||
"run-comprehensive-migration-confirm": "Detta kommer att utföra en omfattande migrering för att kontrollera och fixa tavlans dataintegritet. Detta kan ta en liten stund. Fortsätt?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "Detta kommer först att konvertera alla delade listor till listor per simbana, och sedan ta bort tomma listor som har en dubblettlista med samma titel som innehåller kort. Endast överflödiga tomma listor kommer att tas bort. Fortsätt?",
|
||||
"run-restore-lost-cards-migration-confirm": "Detta kommer att skapa en 'Förlorade kort'-simbana och återställa alla kort och listor som saknar simbaneId eller listId. Detta påverkar endast icke-arkiverade objekt. Fortsätt?",
|
||||
"run-restore-all-archived-migration-confirm": "Detta kommer att återställa ALLA arkiverade simbanor, listor och kort, vilket gör dem synliga igen. Alla objekt med saknade ID:n kommer att fixas automatiskt. Detta kan inte enkelt ångras. Fortsätt?",
|
||||
"run-fix-missing-lists-migration-confirm": "Detta kommer att upptäcka och reparera saknade eller korrupta listor i tavlans struktur. Fortsätt?",
|
||||
"run-fix-avatar-urls-migration-confirm": "Detta kommer att uppdatera avatar-URL:er för tavlans medlemmar till att använda rätt lagrings-backend. Fortsätt?",
|
||||
"run-fix-all-file-urls-migration-confirm": "Detta kommer att uppdatera alla URL:er för filbilagor på denna tavla till att använda rätt lagrings-backend. Fortsätt?",
|
||||
"restore-lost-cards-nothing-to-restore": "Inga förlorade simbanor, listor eller kort att återställa",
|
||||
|
||||
"migration-progress-title": "Board Migration in Progress",
|
||||
"migration-progress-overall": "Overall Progress",
|
||||
"migration-progress-current-step": "Current Step",
|
||||
"migration-progress-title": "Tavlans migrering pågår",
|
||||
"migration-progress-overall": "Övergripande förlopp",
|
||||
"migration-progress-current-step": "Nuvarande steg",
|
||||
"migration-progress-status": "Status",
|
||||
"migration-progress-details": "Detaljer",
|
||||
"migration-progress-note": "Please wait while we migrate your board to the latest structure...",
|
||||
"migration-progress-note": "Vänta medan vi migrerar din tavla till den senaste strukturen...",
|
||||
|
||||
"step-analyze-board-structure": "Analyze Board Structure",
|
||||
"step-fix-orphaned-cards": "Fix Orphaned Cards",
|
||||
"step-convert-shared-lists": "Convert Shared Lists",
|
||||
"step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
|
||||
"step-validate-migration": "Validate Migration",
|
||||
"step-fix-avatar-urls": "Fix Avatar URLs",
|
||||
"step-fix-attachment-urls": "Fix Attachment URLs",
|
||||
"step-analyze-lists": "Analyze Lists",
|
||||
"step-analyze-board-structure": "Analysera tavlans struktur",
|
||||
"step-fix-orphaned-cards": "Fixa övergivna kort",
|
||||
"step-convert-shared-lists": "Konvertera delade listor",
|
||||
"step-ensure-per-swimlane-lists": "Säkerställ listor per simbana",
|
||||
"step-validate-migration": "Validera migrering",
|
||||
"step-fix-avatar-urls": "Fixa avatar-URL:er",
|
||||
"step-fix-attachment-urls": "Fixa bilage-URL:er",
|
||||
"step-analyze-lists": "Analysera listor",
|
||||
"step-create-missing-lists": "Create Missing Lists",
|
||||
"step-update-cards": "Update Cards",
|
||||
"step-finalize": "Finalize",
|
||||
"step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
|
||||
"step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
|
||||
"step-restore-lists": "Restore Lists",
|
||||
"step-restore-cards": "Restore Cards",
|
||||
"step-restore-swimlanes": "Restore Swimlanes",
|
||||
"step-fix-missing-ids": "Fix Missing IDs",
|
||||
"step-scan-users": "Checking board member avatars",
|
||||
"step-scan-files": "Checking board file attachments",
|
||||
"step-fix-file-urls": "Fixing file URLs",
|
||||
"cleanup": "Cleanup",
|
||||
"cleanup-old-jobs": "Cleanup Old Jobs",
|
||||
"step-update-cards": "Uppdatera kort",
|
||||
"step-finalize": "Slutför",
|
||||
"step-delete-duplicate-empty-lists": "Ta bort duplicerade tomma listor",
|
||||
"step-ensure-lost-cards-swimlane": "Säkerställ simbana för förlorade kort",
|
||||
"step-restore-lists": "Återställ listor",
|
||||
"step-restore-cards": "Återställ kort",
|
||||
"step-restore-swimlanes": "Återställ simbanor",
|
||||
"step-fix-missing-ids": "Fixa saknade ID:n",
|
||||
"step-scan-users": "Kontrollerar tavlans medlemsavatarer",
|
||||
"step-scan-files": "Kontrollerar tavlans filbilagor",
|
||||
"step-fix-file-urls": "Fixar fil-URL:er",
|
||||
"cleanup": "Rensning",
|
||||
"cleanup-old-jobs": "Rensa gamla jobb",
|
||||
"completed": "Avslutad",
|
||||
"conversion-info-text": "This conversion is performed once per board and improves performance. You can continue using the board normally.",
|
||||
"converting-board": "Converting Board",
|
||||
"converting-board-description": "Converting board structure for improved functionality. This may take a few moments.",
|
||||
"cpu-cores": "CPU Cores",
|
||||
"cpu-usage": "CPU Usage",
|
||||
"current-action": "Current Action",
|
||||
"database-migration": "Database Migration",
|
||||
"database-migration-description": "Updating database structure for improved functionality and performance. This process may take several minutes.",
|
||||
"database-migrations": "Database Migrations",
|
||||
"days-old": "Days Old",
|
||||
"duration": "Duration",
|
||||
"errors": "Errors",
|
||||
"conversion-info-text": "Denna konvertering utförs en gång per tavla och förbättrar prestandan. Ni kan fortsätta använda tavlan som vanligt.",
|
||||
"converting-board": "Konverterar tavla",
|
||||
"converting-board-description": "Konverterar tavlans struktur för förbättrad funktionalitet. Detta kan ta en liten stund.",
|
||||
"cpu-cores": "CPU-kärnor",
|
||||
"cpu-usage": "CPU-användning",
|
||||
"current-action": "Nuvarande åtgärd",
|
||||
"database-migration": "Databasmigrering",
|
||||
"database-migration-description": "Uppdaterar databasstrukturen för förbättrad funktionalitet och prestanda. Denna process kan ta flera minuter.",
|
||||
"database-migrations": "Databasmigreringar",
|
||||
"days-old": "Dagar gammal",
|
||||
"duration": "Varaktighet",
|
||||
"errors": "Fel",
|
||||
"estimated-time-remaining": "Beräknad återstående tid",
|
||||
"every-1-day": "Var 1 dag",
|
||||
"every-1-hour": "Var 1 timme",
|
||||
|
|
@ -1504,76 +1504,76 @@
|
|||
"every-30-minutes": "Var 30 minuter",
|
||||
"every-5-minutes": "Var 5 minuter",
|
||||
"every-6-hours": "Var 6 timmar",
|
||||
"export-monitoring": "Export Monitoring",
|
||||
"filesystem-attachments": "Filesystem Attachments",
|
||||
"filesystem-size": "Filesystem Size",
|
||||
"filesystem-storage": "Filesystem Storage",
|
||||
"force-board-scan": "Force Board Scan",
|
||||
"gridfs-attachments": "GridFS Attachments",
|
||||
"gridfs-size": "GridFS Size",
|
||||
"export-monitoring": "Exportövervakning",
|
||||
"filesystem-attachments": "Filssystem-bilagor",
|
||||
"filesystem-size": "Filssystemstorlek",
|
||||
"filesystem-storage": "Filssystemlagring",
|
||||
"force-board-scan": "Tvinga tavelskanning",
|
||||
"gridfs-attachments": "GridFS-bilagor",
|
||||
"gridfs-size": "GridFS-storlek",
|
||||
"gridfs-storage": "GridFS",
|
||||
"hide-list-on-minicard": "Hide List on Minicard",
|
||||
"idle-migration": "Idle Migration",
|
||||
"job-description": "Job Description",
|
||||
"job-details": "Job Details",
|
||||
"job-name": "Job Name",
|
||||
"job-queue": "Job Queue",
|
||||
"last-run": "Last Run",
|
||||
"max-concurrent": "Max Concurrent",
|
||||
"memory-usage": "Memory Usage",
|
||||
"migrate-all-to-filesystem": "Migrate All to Filesystem",
|
||||
"migrate-all-to-gridfs": "Migrate All to GridFS",
|
||||
"migrate-all-to-s3": "Migrate All to S3",
|
||||
"migrated-attachments": "Migrated Attachments",
|
||||
"migration-batch-size": "Batch Size",
|
||||
"migration-batch-size-description": "Number of attachments to process in each batch (1-100)",
|
||||
"migration-cpu-threshold": "CPU Threshold (%)",
|
||||
"migration-cpu-threshold-description": "Pause migration when CPU usage exceeds this percentage (10-90)",
|
||||
"migration-delay-ms": "Delay (ms)",
|
||||
"migration-delay-ms-description": "Delay between batches in milliseconds (100-10000)",
|
||||
"migration-detector": "Migration Detector",
|
||||
"migration-info-text": "Database migrations are performed once and improve system performance. The process continues in the background even if you close your browser.",
|
||||
"migration-log": "Migration Log",
|
||||
"migration-markers": "Migration Markers",
|
||||
"migration-resume-failed": "Failed to resume migration",
|
||||
"migration-resumed": "Migration resumed",
|
||||
"migration-steps": "Migration Steps",
|
||||
"migration-warning-text": "Please do not close your browser during migration. The process will continue in the background but may take longer to complete.",
|
||||
"monitoring-export-failed": "Failed to export monitoring data",
|
||||
"monitoring-refresh-failed": "Failed to refresh monitoring data",
|
||||
"next": "Next",
|
||||
"next-run": "Next Run",
|
||||
"hide-list-on-minicard": "Göm lista på minikort",
|
||||
"idle-migration": "Inaktiv migrering",
|
||||
"job-description": "Jobbeskrivning",
|
||||
"job-details": "Jobbdetaljer",
|
||||
"job-name": "Jobbnamn",
|
||||
"job-queue": "Jobbkö",
|
||||
"last-run": "Senaste körning",
|
||||
"max-concurrent": "Max samtidigt",
|
||||
"memory-usage": "Minnesanvändning",
|
||||
"migrate-all-to-filesystem": "Migrera allt till filsystem",
|
||||
"migrate-all-to-gridfs": "Migrera allt till GridFS",
|
||||
"migrate-all-to-s3": "Migrera allt till S3",
|
||||
"migrated-attachments": "Migrerade bilagor",
|
||||
"migration-batch-size": "Batchstorlek",
|
||||
"migration-batch-size-description": "Antal bilagor att bearbeta i varje batch (1-100)",
|
||||
"migration-cpu-threshold": "CPU-tröskel (%)",
|
||||
"migration-cpu-threshold-description": "Pausa migreringen när CPU-användningen överstiger denna procentsats (10-90)",
|
||||
"migration-delay-ms": "Fördröjning (ms)",
|
||||
"migration-delay-ms-description": "Fördröjning mellan batchar i millisekunder (100-10000)",
|
||||
"migration-detector": "Migreringsdetektor",
|
||||
"migration-info-text": "Databasmigreringar utförs en gång och förbättrar systemets prestanda. Processen fortsätter i bakgrunden även om du stänger din webbläsare.",
|
||||
"migration-log": "Migreringslogg",
|
||||
"migration-markers": "Migreringsmarkörer",
|
||||
"migration-resume-failed": "Misslyckades med att återuppta migrering",
|
||||
"migration-resumed": "Migrering återupptogs",
|
||||
"migration-steps": "Migreringssteg",
|
||||
"migration-warning-text": "Vänligen stäng inte din webbläsare under migreringen. Processen fortsätter i bakgrunden men kan ta längre tid att slutföra.",
|
||||
"monitoring-export-failed": "Misslyckades med att exportera övervakningsdata",
|
||||
"monitoring-refresh-failed": "Misslyckades med att uppdatera övervakningsdata",
|
||||
"next": "Nästa",
|
||||
"next-run": "Nästa körning",
|
||||
"of": "av",
|
||||
"operation-type": "Operation Type",
|
||||
"overall-progress": "Overall Progress",
|
||||
"page": "Page",
|
||||
"pause-migration": "Pause Migration",
|
||||
"previous": "Previous",
|
||||
"refresh": "Refresh",
|
||||
"refresh-monitoring": "Refresh Monitoring",
|
||||
"remaining-attachments": "Remaining Attachments",
|
||||
"resume-migration": "Resume Migration",
|
||||
"run-once": "Run once",
|
||||
"s3-attachments": "S3 Attachments",
|
||||
"s3-size": "S3 Size",
|
||||
"operation-type": "Operationstyp",
|
||||
"overall-progress": "Övergripande förlopp",
|
||||
"page": "Sida",
|
||||
"pause-migration": "Pausa migrering",
|
||||
"previous": "Föregående",
|
||||
"refresh": "Uppdatera",
|
||||
"refresh-monitoring": "Uppdatera övervakning",
|
||||
"remaining-attachments": "Återstående bilagor",
|
||||
"resume-migration": "Återuppta migrering",
|
||||
"run-once": "Kör en gång",
|
||||
"s3-attachments": "S3-bilagor",
|
||||
"s3-size": "S3-storlek",
|
||||
"s3-storage": "S3",
|
||||
"scanning-status": "Scanning Status",
|
||||
"schedule": "Schedule",
|
||||
"search-boards-or-operations": "Search boards or operations...",
|
||||
"show-list-on-minicard": "Show List on Minicard",
|
||||
"showing": "Showing",
|
||||
"start-test-operation": "Start Test Operation",
|
||||
"start-time": "Start Time",
|
||||
"step-progress": "Step Progress",
|
||||
"stop-migration": "Stop Migration",
|
||||
"storage-distribution": "Storage Distribution",
|
||||
"system-resources": "System Resources",
|
||||
"total-attachments": "Total Attachments",
|
||||
"total-operations": "Total Operations",
|
||||
"total-size": "Total Size",
|
||||
"unmigrated-boards": "Unmigrated Boards",
|
||||
"weight": "Weight",
|
||||
"idle": "Idle",
|
||||
"complete": "Complete",
|
||||
"scanning-status": "Skanningsstatus",
|
||||
"schedule": "Schema",
|
||||
"search-boards-or-operations": "Sök tavlor eller operationer...",
|
||||
"show-list-on-minicard": "Visa lista på minikort",
|
||||
"showing": "Visar",
|
||||
"start-test-operation": "Starta testoperation",
|
||||
"start-time": "Starttid",
|
||||
"step-progress": "Stegförlopp",
|
||||
"stop-migration": "Stoppa migrering",
|
||||
"storage-distribution": "Lagringsdistribution",
|
||||
"system-resources": "Systemresurser",
|
||||
"total-attachments": "Totala bilagor",
|
||||
"total-operations": "Totala operationer",
|
||||
"total-size": "Total storlek",
|
||||
"unmigrated-boards": "Okonverterade tavlor",
|
||||
"weight": "Vikt",
|
||||
"idle": "Inaktiv",
|
||||
"complete": "Avslutad",
|
||||
"cron": "Cron"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,18 +78,18 @@
|
|||
"activity-deleteComment": "評論已刪除",
|
||||
"activity-receivedDate": "已編輯收到日期為 %s %s",
|
||||
"activity-startDate": "已編輯起始日期為 %s %s",
|
||||
"allboards.starred": "Starred",
|
||||
"allboards.starred": "已加星號",
|
||||
"allboards.templates": "範本",
|
||||
"allboards.remaining": "Remaining",
|
||||
"allboards.workspaces": "Workspaces",
|
||||
"allboards.add-workspace": "Add Workspace",
|
||||
"allboards.add-workspace-prompt": "Workspace name",
|
||||
"allboards.add-subworkspace": "Add Subworkspace",
|
||||
"allboards.add-subworkspace-prompt": "Subworkspace name",
|
||||
"allboards.edit-workspace": "Edit workspace",
|
||||
"allboards.edit-workspace-name": "Workspace name",
|
||||
"allboards.edit-workspace-icon": "Workspace icon (markdown)",
|
||||
"multi-selection-active": "Click checkboxes to select boards",
|
||||
"allboards.remaining": "剩餘",
|
||||
"allboards.workspaces": "工作空間",
|
||||
"allboards.add-workspace": "新增工作空間",
|
||||
"allboards.add-workspace-prompt": "工作空間名稱",
|
||||
"allboards.add-subworkspace": "新增子工作空間",
|
||||
"allboards.add-subworkspace-prompt": "子工作空間名稱",
|
||||
"allboards.edit-workspace": "編輯工作空間",
|
||||
"allboards.edit-workspace-name": "工作空間名稱",
|
||||
"allboards.edit-workspace-icon": "工作空間圖示 (markdown)",
|
||||
"multi-selection-active": "點選核取方塊以選取看板",
|
||||
"activity-dueDate": "已編輯截止日期為 %s %s",
|
||||
"activity-endDate": "已編輯結束日期為 %s %s",
|
||||
"add-attachment": "新增附件",
|
||||
|
|
@ -466,8 +466,8 @@
|
|||
"filter-no-label": "沒有標籤",
|
||||
"filter-member-label": "按成員篩選",
|
||||
"filter-no-member": "沒有成員",
|
||||
"filter-assignee-label": "按代理人篩選",
|
||||
"filter-no-assignee": "沒有代理人",
|
||||
"filter-assignee-label": "按承辦人篩選",
|
||||
"filter-no-assignee": "沒有承辦人",
|
||||
"filter-custom-fields-label": "按自訂欄位篩選",
|
||||
"filter-no-custom-fields": "沒有自訂欄位",
|
||||
"filter-show-archive": "顯示封存的清單",
|
||||
|
|
@ -639,7 +639,7 @@
|
|||
"has-spenttime-cards": "耗時卡",
|
||||
"time": "時間",
|
||||
"title": "標題",
|
||||
"toggle-assignees": "切換卡片的代理人 1-9(按加入看板的順序)。",
|
||||
"toggle-assignees": "切換卡片的承辦人 1-9(按加入看板的順序)。",
|
||||
"toggle-labels": "切換卡片的標籤 1-9。多重選擇新增標籤 1-9",
|
||||
"remove-labels-multiselect": "多重選擇移除標籤 1-9",
|
||||
"tracking": "訂閱相關通知",
|
||||
|
|
@ -963,8 +963,8 @@
|
|||
"accounts-allowUserDelete": "允許用戶自行刪除其帳戶",
|
||||
"hide-minicard-label-text": "隱藏迷你卡片標籤內文",
|
||||
"show-desktop-drag-handles": "顯示桌面拖曳工具",
|
||||
"assignee": "代理人",
|
||||
"cardAssigneesPopup-title": "代理人",
|
||||
"assignee": "承辦人",
|
||||
"cardAssigneesPopup-title": "承辦人",
|
||||
"addmore-detail": "新增更多詳細描述",
|
||||
"show-on-card": "在卡片上顯示",
|
||||
"show-on-minicard": "在小卡片顯示",
|
||||
|
|
@ -1060,7 +1060,7 @@
|
|||
"operator-user-abbrev": "@",
|
||||
"operator-member": "成員",
|
||||
"operator-member-abbrev": "m",
|
||||
"operator-assignee": "代理人",
|
||||
"operator-assignee": "承辦人",
|
||||
"operator-assignee-abbrev": "a",
|
||||
"operator-creator": "建立者",
|
||||
"operator-status": "狀態",
|
||||
|
|
@ -1091,7 +1091,7 @@
|
|||
"predicate-checklist": "待辦清單",
|
||||
"predicate-start": "開始",
|
||||
"predicate-end": "完成",
|
||||
"predicate-assignee": "代理人",
|
||||
"predicate-assignee": "承辦人",
|
||||
"predicate-member": "成員",
|
||||
"predicate-public": "公開",
|
||||
"predicate-private": "私有",
|
||||
|
|
@ -1116,10 +1116,10 @@
|
|||
"globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - 卡片評論包含 *<text>*.",
|
||||
"globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - 卡片標籤要符合 *<color>* 或 *<name>",
|
||||
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - 的簡寫 `__operator_label__:<color>` 或 `__operator_label__:<name>`",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:<username>` - 卡片,其中 *<username>* 是 *成員* 或 *代理人*",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:<username>` - 卡片,其中 *<username>* 是 *成員* 或 *承辦人*",
|
||||
"globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - `user:<username>` 的簡寫",
|
||||
"globalSearch-instructions-operator-member": "`__operator_member__:<username>` - 卡片,其中 *<username>* 是i *成員*",
|
||||
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - 卡片,其中 *<username>* 是 *代理人*",
|
||||
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - 卡片,其中 *<username>* 是 *承辦人*",
|
||||
"globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - 卡片,其中 *<username>* 是卡片的建立者",
|
||||
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - 屬於分配給組織 *<name>* 看板的卡片",
|
||||
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - 屬於分配給團隊 *<name>* 看板的卡片",
|
||||
|
|
@ -1417,70 +1417,70 @@
|
|||
"back-to-settings": "回到設定",
|
||||
"board-id": "看板 ID",
|
||||
"board-migration": "看板遷移",
|
||||
"board-migrations": "Board Migrations",
|
||||
"board-migrations": "看板遷移",
|
||||
"card-show-lists-on-minicard": "在迷你卡片上顯示清單",
|
||||
"comprehensive-board-migration": "Comprehensive Board Migration",
|
||||
"comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
|
||||
"delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
|
||||
"delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
|
||||
"lost-cards": "Lost Cards",
|
||||
"lost-cards-list": "Restored Items",
|
||||
"restore-lost-cards-migration": "Restore Lost Cards",
|
||||
"restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
|
||||
"restore-all-archived-migration": "Restore All Archived",
|
||||
"restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
|
||||
"fix-missing-lists-migration": "Fix Missing Lists",
|
||||
"fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
|
||||
"fix-avatar-urls-migration": "Fix Avatar URLs",
|
||||
"fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
|
||||
"fix-all-file-urls-migration": "Fix All File URLs",
|
||||
"fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
|
||||
"migration-needed": "Migration Needed",
|
||||
"comprehensive-board-migration": "全面看板遷移",
|
||||
"comprehensive-board-migration-description": "執行全面檢查與修復,確保看板資料完整性,包括清單排序、卡片位置及泳道結構。",
|
||||
"delete-duplicate-empty-lists-migration": "刪除重複的空清單",
|
||||
"delete-duplicate-empty-lists-migration-description": "安全地刪除空的重複清單。僅移除既無卡片、又存在標題相同且含卡片的另一份清單的清單。",
|
||||
"lost-cards": "遺失的卡片",
|
||||
"lost-cards-list": "已還原的項目",
|
||||
"restore-lost-cards-migration": "還原遺失的卡片",
|
||||
"restore-lost-cards-migration-description": "尋找並還原缺少泳道 ID 或清單 ID 的卡片與清單。建立「遺失的卡片」泳道,使所有遺失項目重新可見。",
|
||||
"restore-all-archived-migration": "還原所有封存",
|
||||
"restore-all-archived-migration-description": "還原所有已封存的泳道、清單與卡片。自動修復任何缺少泳道 ID 或清單 ID 的項目以使它們重新可見。",
|
||||
"fix-missing-lists-migration": "修復遺失的清單",
|
||||
"fix-missing-lists-migration-description": "偵測並修復在看板結構中遺失或損毀的清單。",
|
||||
"fix-avatar-urls-migration": "修復大頭照 URL",
|
||||
"fix-avatar-urls-migration-description": "更新看板成員的大頭照 URL 以使用正確的儲存空間後端並修復損壞的大頭照參照。",
|
||||
"fix-all-file-urls-migration": "修復所有檔案 URL",
|
||||
"fix-all-file-urls-migration-description": "更新所有此看板的檔案附件 URL 以使用正確的儲存空間後端並修復損壞的檔案參照。",
|
||||
"migration-needed": "需要遷移",
|
||||
"migration-complete": "完成",
|
||||
"migration-running": "Running...",
|
||||
"migration-successful": "Migration completed successfully",
|
||||
"migration-failed": "Migration failed",
|
||||
"migrations": "Migrations",
|
||||
"migrations-admin-only": "Only board administrators can run migrations",
|
||||
"migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
|
||||
"no-issues-found": "No issues found",
|
||||
"run-migration": "Run Migration",
|
||||
"run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
|
||||
"run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
|
||||
"run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
|
||||
"run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
|
||||
"run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
|
||||
"run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
|
||||
"restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
|
||||
"migration-running": "正在執行……",
|
||||
"migration-successful": "遷移成功完成",
|
||||
"migration-failed": "遷移失敗",
|
||||
"migrations": "遷移",
|
||||
"migrations-admin-only": "僅看板管理員可執行遷移",
|
||||
"migrations-description": "為此看板執行資料完整性檢查並修復。每個遷移皆可單獨執行。",
|
||||
"no-issues-found": "未找到問題",
|
||||
"run-migration": "執行遷移",
|
||||
"run-comprehensive-migration-confirm": "這將會執行全面的遷移以檢查並修復看板資料完整性。這可能需要數分鐘。要繼續嗎?",
|
||||
"run-delete-duplicate-empty-lists-migration-confirm": "此操作將先將所有共享清單轉換為每個泳道專屬的清單,接著刪除那些存在標題相同且含卡片之重複清單的空清單。僅會移除真正冗餘的空清單。要繼續嗎?",
|
||||
"run-restore-lost-cards-migration-confirm": "這將建立一個「遺失的卡片」泳道,並還原所有缺少泳道 ID 或清單 ID 的卡片與清單。此操作僅影響未封存項目。繼續?",
|
||||
"run-restore-all-archived-migration-confirm": "此操作將還原所有已封存的泳道、清單及卡片,使其重新顯示。任何缺少 ID 的項目將自動修復。此操作無法輕易撤銷。要繼續嗎?",
|
||||
"run-fix-missing-lists-migration-confirm": "這將會偵測並修復在看板結構中遺失或損毀的清單。要繼續嗎?",
|
||||
"run-fix-avatar-urls-migration-confirm": "這將會更新看板成員的大頭照 URL 以使用正確的儲存空間後端。要繼續嗎?",
|
||||
"run-fix-all-file-urls-migration-confirm": "這將會更新此看板上的所有檔案附件 URL 以使用正確的儲存空間後端。要繼續嗎?",
|
||||
"restore-lost-cards-nothing-to-restore": "沒有需要還原的遺失泳道、清單或卡片",
|
||||
|
||||
"migration-progress-title": "Board Migration in Progress",
|
||||
"migration-progress-title": "正在進行看板遷移",
|
||||
"migration-progress-overall": "整體進度",
|
||||
"migration-progress-current-step": "Current Step",
|
||||
"migration-progress-current-step": "目前步驟",
|
||||
"migration-progress-status": "狀態",
|
||||
"migration-progress-details": "內容",
|
||||
"migration-progress-note": "Please wait while we migrate your board to the latest structure...",
|
||||
"migration-progress-note": "請稍候,我們正在將您的看板遷移至最新結構……",
|
||||
|
||||
"step-analyze-board-structure": "Analyze Board Structure",
|
||||
"step-fix-orphaned-cards": "Fix Orphaned Cards",
|
||||
"step-convert-shared-lists": "Convert Shared Lists",
|
||||
"step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
|
||||
"step-validate-migration": "Validate Migration",
|
||||
"step-fix-avatar-urls": "Fix Avatar URLs",
|
||||
"step-fix-attachment-urls": "Fix Attachment URLs",
|
||||
"step-analyze-lists": "Analyze Lists",
|
||||
"step-create-missing-lists": "Create Missing Lists",
|
||||
"step-update-cards": "Update Cards",
|
||||
"step-finalize": "Finalize",
|
||||
"step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
|
||||
"step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
|
||||
"step-restore-lists": "Restore Lists",
|
||||
"step-restore-cards": "Restore Cards",
|
||||
"step-restore-swimlanes": "Restore Swimlanes",
|
||||
"step-fix-missing-ids": "Fix Missing IDs",
|
||||
"step-scan-users": "Checking board member avatars",
|
||||
"step-scan-files": "Checking board file attachments",
|
||||
"step-fix-file-urls": "Fixing file URLs",
|
||||
"step-analyze-board-structure": "分析看板結構",
|
||||
"step-fix-orphaned-cards": "修復孤立卡片",
|
||||
"step-convert-shared-lists": "轉換共享清單",
|
||||
"step-ensure-per-swimlane-lists": "確保每個泳道專屬的清單",
|
||||
"step-validate-migration": "驗證遷移",
|
||||
"step-fix-avatar-urls": "修復大頭照 URL",
|
||||
"step-fix-attachment-urls": "修復附件 URL",
|
||||
"step-analyze-lists": "分析清單",
|
||||
"step-create-missing-lists": "建立遺失的清單",
|
||||
"step-update-cards": "更新卡片",
|
||||
"step-finalize": "完成",
|
||||
"step-delete-duplicate-empty-lists": "刪除重複的空清單",
|
||||
"step-ensure-lost-cards-swimlane": "確保遺失的卡片泳道",
|
||||
"step-restore-lists": "還原清單",
|
||||
"step-restore-cards": "還原卡片",
|
||||
"step-restore-swimlanes": "還原泳道",
|
||||
"step-fix-missing-ids": "修復遺失的 ID",
|
||||
"step-scan-users": "正在檢查看板成員大頭照",
|
||||
"step-scan-files": "正在檢查看板檔案附件",
|
||||
"step-fix-file-urls": "正在修復檔案 URL",
|
||||
"cleanup": "清理",
|
||||
"cleanup-old-jobs": "清理舊工作",
|
||||
"completed": "已完成",
|
||||
|
|
|
|||
|
|
@ -4440,6 +4440,83 @@ JsonRoutes.add('GET', '/api/boards/:boardId/cards_count', function(
|
|||
});
|
||||
},
|
||||
);
|
||||
|
||||
/**
|
||||
* @operation archive_card
|
||||
* @summary Archive a card
|
||||
*
|
||||
* @description Archive a card
|
||||
* @param {string} boardId the board ID of the card
|
||||
* @param {string} listId the list ID of the card
|
||||
* @param {string} cardId the ID of the card
|
||||
* @return_type {_id: string, archived: boolean, archivedAt: Date}
|
||||
*/
|
||||
JsonRoutes.add(
|
||||
'POST',
|
||||
'/api/boards/:boardId/lists/:listId/cards/:cardId/archive',
|
||||
function(req, res) {
|
||||
const paramBoardId = req.params.boardId;
|
||||
const paramCardId = req.params.cardId;
|
||||
const paramListId = req.params.listId;
|
||||
Authentication.checkBoardAccess(req.userId, paramBoardId);
|
||||
const card = ReactiveCache.getCard({
|
||||
_id: paramCardId,
|
||||
listId: paramListId,
|
||||
boardId: paramBoardId,
|
||||
archived: false,
|
||||
});
|
||||
if (!card) {
|
||||
throw new Meteor.Error(404, 'Card not found');
|
||||
}
|
||||
card.archive();
|
||||
JsonRoutes.sendResult(res, {
|
||||
code: 200,
|
||||
data: {
|
||||
_id: paramCardId,
|
||||
archived: true,
|
||||
archivedAt: new Date(),
|
||||
},
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
/**
|
||||
* @operation unarchive_card
|
||||
* @summary Unarchive card
|
||||
*
|
||||
* @description Unarchive card
|
||||
* @param {string} boardId the board ID of the card
|
||||
* @param {string} listId the list ID of the card
|
||||
* @param {string} cardId the ID of the card
|
||||
* @return_type {_id: string, archived: boolean}
|
||||
*/
|
||||
JsonRoutes.add(
|
||||
'POST',
|
||||
'/api/boards/:boardId/lists/:listId/cards/:cardId/unarchive',
|
||||
function(req, res) {
|
||||
const paramBoardId = req.params.boardId;
|
||||
const paramCardId = req.params.cardId;
|
||||
const paramListId = req.params.listId;
|
||||
Authentication.checkBoardAccess(req.userId, paramBoardId);
|
||||
const card = ReactiveCache.getCard({
|
||||
_id: paramCardId,
|
||||
listId: paramListId,
|
||||
boardId: paramBoardId,
|
||||
archived: true,
|
||||
});
|
||||
if (!card) {
|
||||
throw new Meteor.Error(404, 'Card not found');
|
||||
}
|
||||
card.restore();
|
||||
JsonRoutes.sendResult(res, {
|
||||
code: 200,
|
||||
data: {
|
||||
_id: paramCardId,
|
||||
archived: false,
|
||||
},
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// Position history tracking methods
|
||||
|
|
|
|||
|
|
@ -2594,6 +2594,53 @@ paths:
|
|||
properties:
|
||||
_id:
|
||||
type: string
|
||||
/api/boards/{board}/lists/{list}/cards/{card}/archive:
|
||||
post:
|
||||
operationId: archive_card
|
||||
summary: Archive a card
|
||||
description: |
|
||||
Archive a card
|
||||
tags:
|
||||
- Cards
|
||||
consumes:
|
||||
- multipart/form-data
|
||||
- application/json
|
||||
parameters:
|
||||
- name: board
|
||||
in: path
|
||||
description: |
|
||||
the board ID of the card
|
||||
type: string
|
||||
required: true
|
||||
- name: list
|
||||
in: path
|
||||
description: |
|
||||
the list ID of the card
|
||||
type: string
|
||||
required: true
|
||||
- name: card
|
||||
in: path
|
||||
description: |
|
||||
the ID of the card
|
||||
type: string
|
||||
required: true
|
||||
produces:
|
||||
- application/json
|
||||
security:
|
||||
- UserSecurity: []
|
||||
responses:
|
||||
'200':
|
||||
description: |-
|
||||
200 response
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
_id:
|
||||
type: string
|
||||
archived:
|
||||
type: boolean
|
||||
archivedAt:
|
||||
type: string
|
||||
/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}:
|
||||
post:
|
||||
operationId: edit_card_custom_field
|
||||
|
|
@ -2658,6 +2705,51 @@ paths:
|
|||
type: string
|
||||
value:
|
||||
type: object
|
||||
/api/boards/{board}/lists/{list}/cards/{card}/unarchive:
|
||||
post:
|
||||
operationId: unarchive_card
|
||||
summary: Unarchive card
|
||||
description: |
|
||||
Unarchive card
|
||||
tags:
|
||||
- Cards
|
||||
consumes:
|
||||
- multipart/form-data
|
||||
- application/json
|
||||
parameters:
|
||||
- name: board
|
||||
in: path
|
||||
description: |
|
||||
the board ID of the card
|
||||
type: string
|
||||
required: true
|
||||
- name: list
|
||||
in: path
|
||||
description: |
|
||||
the list ID of the card
|
||||
type: string
|
||||
required: true
|
||||
- name: card
|
||||
in: path
|
||||
description: |
|
||||
the ID of the card
|
||||
type: string
|
||||
required: true
|
||||
produces:
|
||||
- application/json
|
||||
security:
|
||||
- UserSecurity: []
|
||||
responses:
|
||||
'200':
|
||||
description: |-
|
||||
200 response
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
_id:
|
||||
type: string
|
||||
archived:
|
||||
type: boolean
|
||||
/api/boards/{board}/lists/{list}/cards_count:
|
||||
get:
|
||||
operationId: get_list_cards_count
|
||||
|
|
|
|||
|
|
@ -10,21 +10,38 @@ if [ $# -ne 1 ]
|
|||
exit 1
|
||||
fi
|
||||
|
||||
sudo apt -y install g++ build-essential p7zip-full
|
||||
sudo apt -y install g++ build-essential p7zip-full npm
|
||||
sudo npm -g install n
|
||||
# Building bundle works with Node.js 14.21.3 .
|
||||
# Running works also with 14.21.4, many architectures at https://github.com/wekan/node-v14-esm/releases/tag/v14.21.4
|
||||
sudo n 14.21.3
|
||||
sudo npm -g uninstall node-pre-gyp
|
||||
sudo npm -g install @mapbox/node-pre-gyp
|
||||
rm -rf bundle
|
||||
rm wekan-$1-arm64.zip
|
||||
#rm wekan-$1.zip
|
||||
#wget https://releases.wekan.team/wekan-$1.zip
|
||||
7z x wekan-$1-amd64.zip
|
||||
rm wekan-$1.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v$1/wekan-$1-amd64.zip
|
||||
7z x wekan-$1-arm64.zip
|
||||
|
||||
(cd bundle/programs/server && chmod u+w *.json && cd node_modules/fibers && node build.js)
|
||||
# Get working fibers and bcrypt from previous WeKan v7.93 https://github.com/wekan/wekan/releases/tag/v7.93
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.93/wekan-7.93-arm64.zip
|
||||
mkdir 7.93
|
||||
cd 7.93
|
||||
7z x ../wekan-7.93-arm64.zip
|
||||
cd ..
|
||||
|
||||
#wget https://releases.wekan.team/wekan-$1.zip
|
||||
#7z x wekan-$1-amd64.zip
|
||||
|
||||
#(cd bundle/programs/server && chmod u+w *.json && cd node_modules/fibers && node build.js)
|
||||
(cd bundle/programs/server && chmod u+w *.json)
|
||||
# && cd node_modules/fibers && node build.js)
|
||||
#cd ../../../..
|
||||
#(cd bundle/programs/server/npm/node_modules/meteor/accounts-password && npm remove bcrypt && npm install bcrypt)
|
||||
(cd bundle/programs/server/npm/node_modules/meteor/accounts-password/node_modules && rm -rf bcrypt)
|
||||
(cp -pR 7.93/bundle/programs/server/npm/node_modules/meteor/accounts-password/node_modules/bcrypt bundle/programs/server/npm/node_modules/meteor/accounts-password/node_modules/)
|
||||
|
||||
# Requires building from source https://github.com/meteor/meteor/issues/11682
|
||||
(cd bundle/programs/server/npm/node_modules/meteor/accounts-password && npm rebuild --build-from-source)
|
||||
#(cd bundle/programs/server/npm/node_modules/meteor/accounts-password && npm rebuild --build-from-source)
|
||||
|
||||
cd bundle
|
||||
find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
|
@ -35,6 +52,6 @@ cd ..
|
|||
|
||||
7z a wekan-$1-arm64.zip bundle
|
||||
|
||||
sudo snap start juju-db
|
||||
#sudo snap start juju-db
|
||||
|
||||
./start-wekan.sh
|
||||
#./start-wekan.sh
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue