Compare commits

...
99 Commits
Author SHA1 Message Date
github-actions[bot] 736d308860 Bump versions for v9.78 2026-07-06 09:03:57 +00:00
Lauri Ojansivu 9eca7a3941 Updated ChangeLog. 2026-07-06 11:54:17 +03:00
Lauri Ojansivu af436e16c4 Updated ChangeLog. 2026-07-06 11:52:49 +03:00
Lauri Ojansivu b1b414e850 - **Fix "Internal Server Error" when signing up despite the account being created**:
Registering a new account showed a red "Internal server error" on the sign-up form even
  though the account was created and could sign in — which typically happens when SMTP is not
  configured. Root cause: useraccounts' `ATCreateUserServer` creates the account and then
  calls `Accounts.sendVerificationEmail()` (because `sendVerificationEmail: true`); when SMTP
  is missing/misconfigured that send throws **after** the user row is inserted, and with no
  try/catch the exception leaves the createUser method as an opaque HTTP 500. The verification
  email is best-effort at sign-up, so `Accounts.sendVerificationEmail` is now wrapped to log
  and swallow a transport failure — registration completes and redirects to sign-in — while an
  "already verified" error is re-thrown so the resend-verification flow still reports it. This
  mirrors the [#5706](https://github.com/wekan/wekan/issues/5706) reset-password hardening.
  Covered by `tests/verificationEmail.test.cjs`.

Thanks to Firas-Git and xet7.

Fixes #5672
2026-07-06 11:50:28 +03:00
Lauri Ojansivu 57da3885a2 Updated ChangeLog. 2026-07-06 11:38:57 +03:00
Lauri Ojansivu cb9c897309 - **Fix can not add members to a Linked Card**:
A **linked card** (created by "Link card to this card") is only a placeholder on the board
  that links it — its members are stored on the **real card** it points at (`linkedId`), which
  lives on another board, and `Card.getMembers()` / `assignMember()` / `unassignMember()`
  already read and write that real card. But the member **picker** listed the members of the
  board you were *viewing* the linked card on, not the board the real card lives on. So on a
  board that links a card from another board, the picker offered the wrong set of members and
  toggling them did not behave as a consistent add/remove — "can not add members to the linked
  card". The picker now resolves a linked card to its real card's board and offers *that*
  board's active members (matching where the membership is actually stored), falling back to
  the current board for normal cards or when the real card isn't loaded yet. Extracted the
  target-card/target-board resolution into `models/lib/linkedCardMembers.js`, covered by
  `tests/linkedCardMembers.test.cjs`.

Thanks to ITT5 and xet7 !

Fixes #5676
2026-07-06 11:35:56 +03:00
Lauri Ojansivu 81f07baeb8 Updated ChangeLog. 2026-07-06 11:21:41 +03:00
Lauri Ojansivu 001c258f96 - **Fix can't search numbers in custom fields**:
Searching a board for the value of a **number** or **currency** custom field (e.g. a
  transaction number `2025001`, or a currency amount `123`) found nothing. Those field types
  store their value as a JS **Number** (the inputs save `parseInt(...)` / `Number(...)`), but
  `Board.searchCards()` only matched custom fields with `{ value: <regex> }` — and a MongoDB /
  Minimongo regex only matches **string** values, so it silently skipped every numeric custom
  field. The search now also adds an exact numeric-equality clause when the term is a plain
  number (a comma is accepted as a decimal separator, matching the currency input), so numeric
  custom fields match too; text/title/description matching is unchanged. Card search runs
  against Minimongo on the client, which — like MongoDB — cannot regex a numeric field, so
  equality is the correct cross-environment match. Covered by `tests/cardSearch.test.cjs`.

Thanks to MarcusDger and xet7.

Fixes #5680
2026-07-06 11:19:15 +03:00
Lauri Ojansivu 9d77b9d7b7 Updated ChangeLog. 2026-07-06 10:57:03 +03:00
Lauri Ojansivu 2242da4176 - **Fix "Removed nonexistent document" crash during notification_cleanup**:
The scheduled notification-tray cleanup logged `Exception in removed observeChanges
  callback: Error: Removed nonexistent document …`. The crash itself came from the old
  `cottz:publish-relations` package (since replaced by `reywood:publish-composite`), but the
  cleanup that provoked it still fired one **un-awaited** `removeNotification()` per expired
  notification — a separate `Users.update` `$pull` each time — so a user with K stale
  notifications produced K writes to the Users collection, and every publication that
  republishes user documents re-ran its observers K times in quick bursts (the churn that
  surfaced the removed-document error), while any rejected write went unhandled. The cleanup
  now scans only users that have notifications and prunes each user's stale notifications in a
  single awaited `$pull … $in`. It also removes an activity's notifications only when *every*
  entry for that activity is read and past its removal age (so a freshly re-created unread
  notification sharing an activity id is not dropped), and guards missing/invalid `read`
  timestamps. Covered by `tests/notificationCleanup.test.cjs`.

Thanks to xet7.

Fixes #5685
2026-07-06 10:55:29 +03:00
Lauri Ojansivu 0a3a28ef29 Updated ChangeLog. 2026-07-06 10:46:27 +03:00
Lauri Ojansivu dcf5aa65b0 - **Fix impossible to select another board in rules**:
In the IFTTT-Rules "Move card to the board" and "Link card to the board" actions, the
  board dropdown was empty for some users — the current board included — while colleagues
  in the same company could pick boards normally. Root cause: the dropdown filtered the
  (already access-scoped) client cache with `'members.userId': me`, i.e. it only kept boards
  where the user has a *direct* member entry. A user who reaches a board through an
  Organization, Team or email-domain share — but is not listed individually in
  `board.members` — matched nothing, so the whole selector came up empty. The dropdown now
  filters by the same visibility rule as `Boards.userBoards()` (public OR active member OR
  active org OR active team OR active domain), so org/team/domain-shared boards appear too,
  while archived boards, template containers, the user's templates board and internal helper
  boards stay excluded.

Thanks to Augustin356 and xet7 !

Fixes #5698
2026-07-06 10:43:26 +03:00
Lauri Ojansivu dd3be179ca Updated ChangeLog. 2026-07-06 10:33:15 +03:00
Lauri Ojansivu bc1f149ea3 - **Fix board disappeared after adding another user**:
A board admin adding another user could make the whole board silently vanish from a
  user's board list, with no archive and "nothing out of order" in the logs. Root cause:
  the `setBoardTeams` server method (used by the board Teams/Members management popups)
  blindly overwrote the board's entire `members` array with a snapshot sent by the client.
  When that client's board document was stale — e.g. a member had just been added via
  `inviteUserToBoard` on the server and the change had not yet propagated to the client —
  the overwrite dropped members, and in the worst case the board's own admin, so the board
  no longer matched the board-list publication (which requires an active membership) and
  disappeared. Because a wholesale `$set: { members }` never passes through
  `foreachRemovedMember()`, no `removeBoardMember` activity was logged and no
  card/watcher/star cleanup ran, which is why the logs looked normal. `setBoardTeams` now
  reconciles against the authoritative server-side members instead of trusting the client
  snapshot: it never drops an active admin, keeps every existing member the client still
  lists, adds the members the client introduces, and only removes non-admin members the
  client explicitly omitted (an intentional team-leave) — logging and cleaning up each such
  removal so it is auditable rather than silent.

Thanks to DVNBLMHC and xet7 !

Fixes #5730
2026-07-06 10:33:15 +03:00
github-actions[bot] 0dd11ea573 Bump versions for v9.77 2026-07-06 00:01:08 +00:00
Lauri Ojansivu 5feb83d919 Updated ChangeLog. 2026-07-06 02:51:25 +03:00
Lauri Ojansivu 8980668686 Updated ChangeLog. 2026-07-06 02:47:52 +03:00
Lauri Ojansivu 0d4e48ddd6 Retry snapcraft install in the release-all.yml snap job
The Snap Store intermittently rejects `sudo snap install snapcraft --classic`
with "error: cannot install snapcraft: too many requests" (a 429-style rate
limit) that instantly failed the whole snap job before any build ran. Retry up
to 5 times with 30s backoff so one transient store throttle no longer fails the
release, matching the remote-build retry already in the same job.
2026-07-06 02:47:32 +03:00
Lauri Ojansivu a01b175895 Updated ChangeLog. 2026-07-06 02:37:29 +03:00
Lauri Ojansivu 83f63c9efa Updated Code of Conduct.
Thanks to xet7 !
2026-07-06 02:37:28 +03:00
Lauri Ojansivu 3b031bd901 Updated Code of Conduct.
Thanks to xet7 !
2026-07-06 02:37:28 +03:00
github-actions[bot] e2a7e300c9 Bump versions for v9.76 2026-07-05 23:07:35 +00:00
Lauri Ojansivu 844f59e12e Updated ChangeLog. 2026-07-06 01:57:54 +03:00
Lauri Ojansivu 1a3d7b5da4 Updated translations. 2026-07-06 01:57:00 +03:00
Lauri Ojansivu 3d2bdf4f22 Updated ChangeLog. 2026-07-06 01:50:59 +03:00
Lauri Ojansivu b9fe1f1639 Updated ChangeLog. 2026-07-06 01:35:30 +03:00
Lauri Ojansivu a39a7b90b1 Updated ChangeLog.
Repoint the #6427 upcoming entry to its on-main commit (the old link was
malformed and pointed at an orphaned pre-rebase commit).
2026-07-06 01:28:24 +03:00
Lauri Ojansivu 5d1c979e3b Updated ChangeLog.
Link the #5808 and board-not-found-flicker upcoming entries to their commits.
2026-07-06 01:26:43 +03:00
Lauri Ojansivu d00dc6056b Fix the "Board not found" flicker (stale-while-revalidate for the client board cache)
The client board cache (imports/lib/dataCache.js) re-fetches its value inside a
reactive computation. When the board doc is briefly absent from minimongo (a
subscription stops and restarts, momentarily removing the doc), the empty value
was surfaced immediately, flashing the "Board not found" shell — and on WebKit
throwing a Blaze "Can't select in removed DomRange" error tearing down the card
view. It self-recovers when the doc is re-delivered, so it presents as a flicker,
reliably hit only on Firefox/WebKit timing (which is why it surfaced as
browser-specific Playwright failures in 14-voting-watchers and 24-feature-issues).

Fixed with an opt-in stale-while-revalidate mode on DataCache, enabled only for
getBoard: a transient miss over an already-cached board keeps the last value and
re-checks after a short delay, surfacing an empty result only if the board is
still gone then (a genuine deletion / access loss). First-ever loads and caches
that did not opt in are unchanged. Core decision extracted to the pure
shouldDeferCacheMiss helper with unit tests.

Also hardens the related Playwright specs: a retry in CardPage.openActionsMenu, a
longer visibility budget for the WebKit slow card-render in spec 16, and removes a
reload race in the move-list-right spec (moveListBy fires two un-awaited
updateListSort calls, so an immediate reload read a half-applied order).
2026-07-06 01:26:05 +03:00
Lauri Ojansivu 878a24f586 Fix #5808: linking a card to another linked card made both cards inaccessible
The "Link to this card" target picker only excluded template cards, so an
existing linked card (or a card that links back to the current board) could be
chosen as a link target. That builds a chain of linkedId pointers, but the card
helpers (getTitle/getBoardTitle/getRealId) resolve linkedId only one hop, so
such a card renders as an empty/broken pointer and becomes inaccessible (the
reported freeze). As the reporter suggested, prevent the configuration: only a
real card — not a linked card/linked board, not one of the linking board's own
cards, and not a card that links back to one of them — may be a link target.
Enforced in the picker query and re-checked at creation time via the pure
isLinkableCardTarget guard, mirroring the #3328 parent/subtask cycle guard.
2026-07-06 01:25:39 +03:00
Lauri Ojansivu 6d08181edd Updated ChangeLog. 2026-07-05 23:24:30 +03:00
Lauri Ojansivu d5596f05b7 - **Fix DEFAULT_AUTHENTICATION_METHOD env var ignored, and Admin Panel Layout save hanging.
Two related problems with the default login authentication method.
  - **Env var ignored:** the stored setting was only ever seeded as `password` and
    `DEFAULT_AUTHENTICATION_METHOD` was never applied, so operators setting it (e.g. Kubernetes/Helm
    `DEFAULT_AUTHENTICATION_METHOD: ldap`) saw no effect. Startup now applies the env var
    authoritatively: it seeds the value on a fresh install and, on existing installs, keeps the
    stored `defaultAuthenticationMethod` in sync with the env var on every boot (the operator's env
    is the source of truth), so the method can be configured entirely by env without the Admin Panel.
    The value is normalized (trimmed + lower-cased), so `DEFAULT_AUTHENTICATION_METHOD=LDAP` works.
  - **Layout save hanging / not persisting:** the authentication-method `<select>` is populated by an
    async `Meteor.call`, so clicking **Admin Panel > Layout > Save** before it loaded sent an empty
    value for the **required** `defaultAuthenticationMethod` field, which silently failed validation —
    the save looked stuck and nothing changed. The save now falls back to the currently stored method
    when the select is empty, so a real value is never overwritten by `''`.
  Both paths share one pure helper (`resolveDefaultAuthenticationMethod`) that never resolves to an
  empty string.

Thanks to joe-speedboat and xet7 !

Fixes #5879
2026-07-05 23:22:16 +03:00
Lauri Ojansivu 22b280a18e Updated ChangeLog. 2026-07-05 23:13:36 +03:00
Lauri Ojansivu 2e7c4ede2a - **[Reduce card flicker on drag by only writing changed fields on a card move](https://github.com/wekan/wekan/issues/6430)** (#6430):
`Card.move()` wrote `boardId`/`swimlaneId`/`listId` into the update unconditionally, even for a
  same-board drag to another list (the reported case). Keeping `boardId` in the `$set` on every drag
  re-ran the `boardId`-gated `Cards.after.update` hook that re-syncs the card's checklists and
  checklist items via `multi` updates, ran the cross-board consistency guard and the
  `denyCrossBoardMove` deny-rule DB lookup, and invalidated more reactive dependents than
  necessary — server work and reactivity churn that contributed to a ~1s card flicker on large
  boards. `Card.move()` now writes **only the fields that actually change** (via the pure
  `computeCardMoveModifier` helper) and skips the write entirely when a card is dropped back in the
  same place, so a same-board move no longer touches boardId or the cross-board hooks. The
  `moveCard`/`moveCardBoard` activity generators already re-check `doc.X !== oldX`, so trimming the
  modifier does not drop any activity. Note: this reduces the drag-time work behind the flicker; the
  residual reactive re-render cost on very large boards is a separate performance topic.

Thanks to mimZD and xet7 !

Fixes #6430
2026-07-05 23:12:16 +03:00
Lauri Ojansivu ed77abd90d Updated ChangeLog. 2026-07-05 22:56:01 +03:00
Lauri Ojansivu 45fb547947 - **Fix thousands of unsolicited empty "Default" swimlanes created on some boards**:
`Board.getDefaultSwimline()`/`getDefaultSwimlineAsync()` self-heal a missing default swimlane by
  reading the board's swimlanes and inserting one if none exist. That check-then-insert is a race:
  concurrent or repeated server calls for a swimlane-less board each saw zero swimlanes and each
  inserted a new one, so some boards accumulated 30 000+ empty "Default" swimlanes and became
  unloadable (the `key 'default (en)' returned an object instead of string` log is a harmless i18n
  side effect — the title correctly falls back to the string `Default`). Follow-up to the
  client-side [#6382](https://github.com/wekan/wekan/issues/6382) fix, which only stopped the
  browser from auto-creating them. Fixed by making the server self-heal **idempotent**: the default
  swimlane is now upserted with a deterministic `_id` (`<boardId>-default`), so the `_id` unique
  index guarantees at most one default swimlane per board no matter how many times, or how
  concurrently, the getters run. `archived`/`type` are set explicitly in the `$setOnInsert` because
  their schema autoValue/defaultValue only fire on insert, not upsert. Note: this prevents new
  duplicates; boards that already accumulated thousands still need a one-off cleanup.

Thanks to brlin-tw and xet7 !

Fixes #6429
2026-07-05 22:54:13 +03:00
Lauri Ojansivu 477ad737d3 Updated ChangeLog. 2026-07-05 22:30:37 +03:00
Lauri Ojansivu a2802a850b - **Release workflow: publish the Helm chart only after the Docker image is pushed**:
In `.github/workflows/release-all.yml` the `charts` job now depends on the `docker` job
  (`needs: docker`) instead of running in parallel right after `bump`. GitHub Actions runs a job
  only when all of its `needs` jobs succeed, so the wekan/charts Helm chart is published only after
  the multi-arch image is live on Docker Hub / Quay.io / GHCR (and is skipped if `docker` fails).
  This prevents ArtifactHub from scanning a freshly published chart whose image tag does not exist
  yet and emailing the maintainer about the missing Docker image.

Thanks to xet7 !
2026-07-05 22:29:23 +03:00
Lauri Ojansivu 5cbe27be7e Updated ChangeLog. 2026-07-05 22:23:36 +03:00
Lauri Ojansivu 8b21158736 - **Fix [#6427](https://github.com/wekan/wekan/issues/6427): notification emails linked to
`/b/undefined/board/<cardId>` instead of the real board.** On the server
  `ReactiveCache.getBoard()` is async and returns a Promise, but `Cards.board()` did not await it,
  so the synchronous `Card.originRelativeUrl()`/`absoluteUrl()` interpolated a Promise —
  `board._id` and `board.slug` were `undefined`, producing `/b/undefined/board/<cardId>` in
  card activity notification emails (the client UI was unaffected because `this.board()` is
  synchronous there). Fixed by making `Card.originRelativeUrl(board)`/`absoluteUrl(board)` accept an
  already-resolved board and fall back to `this.boardId` (always available synchronously) when the
  board is a Promise, and by passing the awaited board from `server/models/activities.js` so the
  correct board id and slug are used.

Thanks to titver968 and xet7 !

Fixes #6427
2026-07-05 22:23:36 +03:00
github-actions[bot] 651c6f8fb6 Bump versions for v9.75 2026-07-05 19:05:05 +00:00
Lauri Ojansivu 5b67312f0f Updated ChangeLog. 2026-07-05 21:55:15 +03:00
Lauri Ojansivu 1a222c4477 - **[ScannerBleed](https://github.com/wekan/wekan/security/advisories/GHSA-x3xm-pxrv-jg7p)
— shell injection (RCE) via a malicious upload filename in the external antivirus scanner command path**
  ([GHSA-x3xm-pxrv-jg7p](https://github.com/wekan/wekan/security/advisories/GHSA-x3xm-pxrv-jg7p),
  CWE-78 OS Command Injection). Same RCE class as
  [AvatarBleed](https://wekan.fi/hall-of-fame/avatarbleed/) (CVE-2026-52891, GHSA-35j7-h385-2q9g)
  and its follow-up regression (CVE-2026-53447 / GHSA-qfqv-42qw-vvwh area), but in a code path that
  was **never** covered by those fixes.
  In `models/fileValidation.js`, when an admin has configured an external scanner (antivirus)
  command line with a `{file}` placeholder, the uploaded file path was interpolated into the command
  and run through `asyncExec` (`promisify(exec)`), which spawns `/bin/sh -c` and interprets **all**
  shell metacharacters:
  ```js
  await asyncExec(externalCommandLine.replace("{file}", '"' + fileObj.path + '"'));
  ```
  Wrapping the path in double quotes is not a shell boundary — inside double quotes the shell still
  expands `$(...)`, backticks and `\`, so a filename such as `` a`id`.png `` or `$(touch /tmp/pwn).png`
  escaped the argument and executed as the Wekan server process. Any **authenticated** user who can
  upload an attachment could trigger it, on servers that have an external scanner configured. Unlike
  the sibling MIME-detection path (`detectMimeFromFile`, which already uses `execFile` with no shell)
  and unlike the AvatarBleed fix (which strips non-alphanumeric characters from the filename), this
  scanner path had **zero** sanitization.
  - **Fixed** by POSIX single-quote-escaping the interpolated file path via a new `shellQuote()`
    helper (wrap in single quotes, escape embedded `'` as `'\''`). Inside single quotes the shell
    interprets no metacharacters, so a malicious filename can no longer break out of the argument or
    inject commands, while the admin's arbitrary command line and the exact on-disk path are both
    preserved. CVSS:3.1 9.9 Critical (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H).
  - Affected Wekan v9.06 and earlier through the current release; fixed at the upcoming WeKan release.
    Reported by **DavidCarliez**.

Thanks to DavidCarliez and xet7 !
2026-07-05 21:55:15 +03:00
github-actions[bot] ca9bcfa4ee Bump versions for v9.74 2026-07-05 15:08:00 +00:00
Lauri Ojansivu 4da5b4eb96 Updated ChangeLog. 2026-07-05 17:55:45 +03:00
Lauri Ojansivu 8c4044ce6c Updated ChangeLog. 2026-07-05 17:53:28 +03:00
Lauri Ojansivu b46d9588c7 Fix translations at Login and Register pages.
Thanks to xet7 !
2026-07-05 17:52:05 +03:00
Lauri Ojansivu 96773e7b1d Updated ChangeLog. 2026-07-05 16:51:28 +03:00
Lauri OjansivuandClaude Opus 4.8 5a80f4f6ce Updated ChangeLog.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 16:49:23 +03:00
Lauri OjansivuandClaude Opus 4.8 b9f9390d04 Server-side Mocha suite: fixed a startup crash and the 44 latent failures it had been hiding
- imports/i18n/i18n.test.js crashed the whole run at load: chai 6.x plugins (sinon-chai,
  chai-as-promised) are ESM-only, so use(require('sinon-chai')) handed chai.use() a module
  namespace instead of the plugin function ("fn is not a function"). Now imports the default
  export.
- That unmasked a second load crash - PositionHistory.helpers is not a function: the
  meteor test entry (server/lib/tests/index.js) never ran the .helpers / .attachSchema shim
  that server/main.js bootstraps, so the first model to call Collection.helpers({...}) threw.
  The shim is now imported first in the test entry.
- With the suite finally running, 44 server tests failed because meteor test only loads what
  the specs import (not the app's /server/imports). The specs now import the files that
  register the methods / globals under test (cards.vote / cards.pokerVote, api.attachment.*,
  cloneBoard, getBackgroundImageURL, applyListWidth, updateListSort, moveChecklist,
  userPositionHistory.*, archiveBoard, sendSMTPTestEmail, and the Attachments global). Also
  fixed genuine test bugs: the cards.vote / cards.pokerVote specs were written synchronously
  against async methods; the header-login trust specs restored env vars with
  process.env.X = undefined (which stores the string "undefined" and shadowed the trusted-IP
  allowlist, making every trusted source read as untrusted); the DnsBleed decimal-loopback
  matcher assumed the integer host survived URL normalisation; and the dependencies-OpenAPI
  spec could not locate its source file from the built bundle. The two cards.archive /
  cards.move specs tested Meteor methods that do not exist (archive / move are Minimongo
  document helpers secured by Cards.allow / Cards.deny, already covered by the cards security
  tests) and were removed. Server-side Mocha is now 409 passing, 0 failing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 16:48:58 +03:00
Lauri OjansivuandClaude Opus 4.8 f5a4ece294 Playwright E2E: fixed three cross-process-contention flakes in the parallel run
The Chromium / Firefox / WebKit browser jobs run as separate processes against ONE
shared server + DB, so specs that used fixed identifiers or global cleanups raced
each other:

- 26-shared-templates.e2e.js seeded a fixed email domain (usera@acme-e2e.invalid) in
  all three browsers, hitting E11000 duplicate key on the unique emails.address index.
  Now uses a unique-per-run token for the org / team / domain and template titles.
- 38-impersonation.e2e.js cleaned up with a global
  deleteMany({ reason: 'clickedImpersonate' }) that deleted another browser's in-flight
  audit record mid-poll. Scoped the cleanup to the test's own adminId.
- 32-org-team-feature-toggles.e2e.js exercises setAllOrgsFeature / setAllTeamsFeature,
  which do a global updateMany({}) across every org / team, so two browsers clobbered
  each other's rows. These browser-agnostic server-method tests now run in a single
  project (Chromium); Firefox / WebKit skip them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 16:48:50 +03:00
Lauri Ojansivu c1ddf989a2 Updated ChangeLog. 2026-07-05 14:52:10 +03:00
Lauri Ojansivu c48ecb1d88 Fix tests.
Thanks to xet7 !
2026-07-05 14:50:59 +03:00
Lauri Ojansivu c664fe863c Updated translations. 2026-07-05 14:11:44 +03:00
Lauri Ojansivu 38f571b388 Updated ChangeLog. 2026-07-05 14:10:42 +03:00
Lauri Ojansivu 1e7de6d776 Card Settings popup options combined to same lines, and added more options.
Thanks to xet7 !
2026-07-05 14:09:38 +03:00
Lauri Ojansivu 6d47dc3f4a Updated translations. 2026-07-05 13:30:49 +03:00
Lauri Ojansivu 4756ca4226 Updated ChangeLog. 2026-07-05 13:27:46 +03:00
Lauri Ojansivu bb440b0d7b Board Settings / Card Settings / Checklist item count (0/0) on minicard. Default: Off.
Thanks to carl-unique and xet7 !

Fixes #6431
2026-07-05 13:25:00 +03:00
Lauri Ojansivu 89cfe1529f Updated ChangeLog. 2026-07-05 12:50:30 +03:00
Lauri Ojansivu 236fdf9338 Each run all tests now has logs at ../log/YYYY-MM-DD_HH-MM-SS/
Thanks to xet7 !
2026-07-05 12:48:21 +03:00
Lauri Ojansivu 5c36b2292b Updated ChangeLog. 2026-07-05 12:29:14 +03:00
Lauri Ojansivu 4eebdb4278 Fix tests.
Thanks to xet7 !
2026-07-05 12:21:47 +03:00
Lauri Ojansivu 4533268418 Update vscode sandbox.
Thanks to xet7 !
2026-07-05 12:12:24 +03:00
Lauri Ojansivu c997c12f88 Updated tests 2026-07-05 11:52:12 +03:00
Lauri Ojansivu 36efd9c988 Fix parallel tests.
Thanks to xet7 !
2026-07-05 11:30:26 +03:00
Lauri Ojansivu 267bfc7229 Script to be executeable 2026-07-05 11:03:13 +03:00
Lauri Ojansivu 405a7b72e9 Updated ChangeLog. 2026-07-05 11:02:01 +03:00
Lauri Ojansivu 7d416cc7cc Run all tests at parallel or sequential.
Thanks to xet7 !
2026-07-05 11:00:43 +03:00
Lauri Ojansivu 7929ab27cb Updated ChangeLog. 2026-07-05 10:21:20 +03:00
Lauri Ojansivu 7bbd1a3fad Fix ExcelBleed.
Thanks to sec-reex and xet7 !
2026-07-05 10:20:08 +03:00
Lauri Ojansivu 0f9bd4f9f9 Reverted JQuery 4.0.0 that did not work back to JQuery 3.7.1.
Thanks to xet7 !
2026-07-05 10:02:37 +03:00
Lauri Ojansivu a7ce6690a5 Merge pull request #6415 from wekan/dependabot/npm_and_yarn/babel/runtime-8.0.0
build(deps): bump @babel/runtime from 7.29.7 to 8.0.0
2026-07-05 09:56:51 +03:00
dependabot[bot] 82bd4ff39d build(deps): bump @babel/runtime from 7.29.7 to 8.0.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.29.7 to 8.0.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v8.0.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-05 06:55:17 +00:00
Lauri Ojansivu 721c61bef5 Merge pull request #6417 from wekan/dependabot/npm_and_yarn/jquery-4.0.0
Bump jquery from 3.7.1 to 4.0.0
2026-07-05 09:54:49 +03:00
Lauri Ojansivu 7a25546da7 Merge pull request #6435 from wekan/dependabot/npm_and_yarn/i18next-26.3.4
build(deps): bump i18next from 25.10.10 to 26.3.4
2026-07-05 09:53:13 +03:00
Lauri Ojansivu 2c1d3a3922 Merge pull request #6414 from wekan/dependabot/npm_and_yarn/tweedegolf/sab-adapter-amazon-s3-3.0.4
Bump @tweedegolf/sab-adapter-amazon-s3 from 1.0.20 to 3.0.4
2026-07-05 09:52:52 +03:00
Lauri Ojansivu b4d6cc741c Merge pull request #6438 from wekan/dependabot/npm_and_yarn/azure/storage-blob-12.33.0
build(deps): bump @azure/storage-blob from 12.32.0 to 12.33.0
2026-07-05 09:49:31 +03:00
Lauri Ojansivu 5311f80711 Merge pull request #6436 from wekan/dependabot/npm_and_yarn/tests/playwright/playwright/test-1.61.1
build(deps-dev): bump @playwright/test from 1.61.0 to 1.61.1 in /tests/playwright
2026-07-05 09:48:19 +03:00
Lauri Ojansivu abed969a96 Merge pull request #6437 from wekan/dependabot/npm_and_yarn/tests/playwright/mongodb-7.4.0
build(deps): bump mongodb from 7.3.0 to 7.4.0 in /tests/playwright
2026-07-05 09:47:58 +03:00
Lauri Ojansivu 36e3cf30d3 Merge pull request #6428 from wekan/dependabot/github_actions/actions/cache-6
build(deps): bump actions/cache from 5 to 6
2026-07-05 09:47:10 +03:00
Lauri Ojansivu eaadbc6dd1 Merge pull request #6434 from wekan/dependabot/github_actions/docker/build-push-action-7.3.0
build(deps): bump docker/build-push-action from 7.2.0 to 7.3.0
2026-07-05 09:46:41 +03:00
Lauri Ojansivu 0aacc989b7 Merge pull request #6433 from wekan/dependabot/github_actions/docker/metadata-action-6.2.0
build(deps): bump docker/metadata-action from 6.1.0 to 6.2.0
2026-07-05 09:46:32 +03:00
Lauri Ojansivu 77adfb28c9 Merge pull request #6432 from wekan/dependabot/github_actions/docker/login-action-4.4.0
build(deps): bump docker/login-action from 4.2.0 to 4.4.0
2026-07-05 09:46:23 +03:00
Lauri Ojansivu a9d8261d80 Updated ChangeLog. 2026-07-05 09:38:48 +03:00
Lauri Ojansivu df3f519e99 Update to Meteor 3.5.
Thanks to Meteor developers !
2026-07-05 09:36:34 +03:00
Lauri Ojansivu d68364befe Updated translations. 2026-07-05 09:35:02 +03:00
Lauri Ojansivu 6094979d4e Updated ChangeLog. 2026-07-05 09:33:14 +03:00
Lauri Ojansivu ef845fe4a0 Fix DnsBleed.
Thanks to 4n207 and xet7 !
2026-07-05 09:30:12 +03:00
dependabot[bot] ce8fc8e392 build(deps): bump @azure/storage-blob from 12.32.0 to 12.33.0
Bumps [@azure/storage-blob](https://github.com/Azure/azure-sdk-for-js/tree/HEAD/sdk/storage/storage-blob) from 12.32.0 to 12.33.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-js/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/storage/storage-blob/CHANGELOG.md)
- [Commits](https://github.com/Azure/azure-sdk-for-js/commits/@azure/storage-blob_12.33.0/sdk/storage/storage-blob)

---
updated-dependencies:
- dependency-name: "@azure/storage-blob"
  dependency-version: 12.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 20:32:53 +00:00
dependabot[bot] 402b79c340 build(deps): bump mongodb from 7.3.0 to 7.4.0 in /tests/playwright
Bumps [mongodb](https://github.com/mongodb/node-mongodb-native) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/mongodb/node-mongodb-native/releases)
- [Changelog](https://github.com/mongodb/node-mongodb-native/blob/main/HISTORY.md)
- [Commits](https://github.com/mongodb/node-mongodb-native/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: mongodb
  dependency-version: 7.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 20:32:51 +00:00
dependabot[bot] 08ba9b02f2 build(deps-dev): bump @playwright/test in /tests/playwright
Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.61.0 to 1.61.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.61.0...v1.61.1)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.61.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 20:32:44 +00:00
dependabot[bot] 3a016be97d build(deps): bump i18next from 25.10.10 to 26.3.4
Bumps [i18next](https://github.com/i18next/i18next) from 25.10.10 to 26.3.4.
- [Release notes](https://github.com/i18next/i18next/releases)
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next/compare/v25.10.10...v26.3.4)

---
updated-dependencies:
- dependency-name: i18next
  dependency-version: 26.3.4
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 20:32:38 +00:00
dependabot[bot] 56b09f9102 build(deps): bump docker/build-push-action from 7.2.0 to 7.3.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 7.2.0 to 7.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/f9f3042f7e2789586610d6e8b85c8f03e5195baf...53b7df96c91f9c12dcc8a07bcb9ccacbed38856a)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 7.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 20:32:31 +00:00
dependabot[bot] dccf16647a build(deps): bump docker/metadata-action from 6.1.0 to 6.2.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9...dc802804100637a589fabce1cb79ff13a1411302)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 20:32:23 +00:00
dependabot[bot] 9c2ff81b12 build(deps): bump docker/login-action from 4.2.0 to 4.4.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.2.0 to 4.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/650006c6eb7dba73a995cc03b0b2d7f5ca915bee...af1e73f918a031802d376d3c8bbc3fe56130a9b0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 20:32:19 +00:00
dependabot[bot] af8bba27c0 build(deps): bump actions/cache from 5 to 6
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-27 20:32:19 +00:00
dependabot[bot] f188572b70 Bump jquery from 3.7.1 to 4.0.0
Bumps [jquery](https://github.com/jquery/jquery) from 3.7.1 to 4.0.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Changelog](https://github.com/jquery/jquery/blob/main/changelog.md)
- [Commits](https://github.com/jquery/jquery/compare/3.7.1...4.0.0)

---
updated-dependencies:
- dependency-name: jquery
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 09:06:11 +00:00
dependabot[bot] fb9380c0d0 Bump @tweedegolf/sab-adapter-amazon-s3 from 1.0.20 to 3.0.4
Bumps [@tweedegolf/sab-adapter-amazon-s3](https://github.com/tweedegolf/storage-abstraction) from 1.0.20 to 3.0.4.
- [Release notes](https://github.com/tweedegolf/storage-abstraction/releases)
- [Changelog](https://github.com/tweedegolf/storage-abstraction/blob/master/changelog.md)
- [Commits](https://github.com/tweedegolf/storage-abstraction/commits/v3.0.4)

---
updated-dependencies:
- dependency-name: "@tweedegolf/sab-adapter-amazon-s3"
  dependency-version: 3.0.4
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 08:33:08 +00:00
242 changed files with 5241 additions and 1031 deletions

No files matched your search

+3 -3
View File
@@ -38,7 +38,7 @@ jobs:
# https://github.com/docker/login-action
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -48,14 +48,14 @@ jobs:
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9
uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker image
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
+6 -6
View File
@@ -27,14 +27,14 @@ jobs:
cache: 'npm'
- name: Cache Meteor installation
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.meteor
key: meteor-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/packages') }}
restore-keys: meteor-
- name: Cache Meteor build (.meteor/local)
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: .meteor/local
key: meteor-local-unit-${{ hashFiles('.meteor/versions') }}
@@ -98,14 +98,14 @@ jobs:
cache: 'npm'
- name: Cache Meteor installation
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.meteor
key: meteor-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/packages') }}
restore-keys: meteor-
- name: Cache Meteor build (.meteor/local)
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: .meteor/local
key: meteor-local-e2e-${{ hashFiles('.meteor/versions') }}
@@ -227,14 +227,14 @@ jobs:
cache: 'npm'
- name: Cache Meteor installation
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.meteor
key: meteor-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/packages') }}
restore-keys: meteor-
- name: Cache Meteor build (.meteor/local)
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: .meteor/local
key: meteor-local-regression-${{ hashFiles('.meteor/versions') }}
+25 -8
View File
@@ -22,7 +22,9 @@ name: Release All Platforms
# commits and pushes the bump to wekan/wekan main
# - prepare: tags the bumped main as v<new_version> and extracts release notes
# - website: updates the wekan/wekan.fi repo (install page + API docs) and pushes
# - charts: updates and publishes the wekan/charts Helm chart and pushes
# - charts: updates and publishes the wekan/charts Helm chart and pushes,
# only AFTER the `docker` job has published the image (skipped if
# docker fails)
# - build-*: builds the amd64 bundle (full Meteor 3 build), then rebuilds native
# modules for arm64 from that amd64 base
# - release: creates the GitHub Release with the newest CHANGELOG.md notes and
@@ -210,12 +212,14 @@ jobs:
cd ..
./wekan/releases/release-website.sh "${{ inputs.old_version }}" "${{ inputs.new_version }}"
# ─── 1c. Update and publish the Helm chart repo (parallel) ──────────────────
# ─── 1c. Update and publish the Helm chart repo (after docker) ──────────────
# Bumps the WeKan version in wekan/charts, packages the chart and publishes it
# to the gh-pages Helm index, then pushes both branches. Runs in parallel with
# the platform builds; packaging the chart does not need the built artifacts.
# to the gh-pages Helm index, then pushes both branches. Runs only AFTER the
# `docker` job succeeds: the chart points users at the freshly published
# multi-arch image, so we don't advertise a new chart version until that image
# is actually on the registries. If `docker` fails, this job is skipped.
charts:
needs: bump
needs: docker
runs-on: ubuntu-latest
steps:
- name: Checkout wekan repo (for releases/release-charts.sh + version refs)
@@ -265,14 +269,14 @@ jobs:
ref: refs/tags/v${{ needs.prepare.outputs.version }}
- name: Cache Meteor installation
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.meteor
key: meteor-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/packages') }}
restore-keys: meteor-
- name: Cache npm packages
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.npm
key: npm-${{ hashFiles('package-lock.json') }}
@@ -796,7 +800,20 @@ jobs:
fetch-depth: 0
- name: Install snapcraft
run: sudo snap install snapcraft --classic
# The Snap Store intermittently rejects the install with
# 'error: cannot install "snapcraft": too many requests' (a 429-style
# rate limit) that instantly fails the whole snap job before any build.
# Retry a few times so one transient store throttle does not fail the
# release (same spirit as the remote-build retry below).
run: |
set -uo pipefail
for i in 1 2 3 4 5; do
sudo snap install snapcraft --classic && exit 0
echo "snapcraft install attempt $i/5 failed (Snap Store throttle?); retrying in 30s..."
sleep 30
done
echo "::error::snapcraft install failed after 5 attempts (Snap Store rate limit)."
exit 1
- name: Provide Launchpad credentials for remote-build
env:
+8 -8
View File
@@ -6,7 +6,7 @@
meteor-base@1.5.2
# Build system
ecmascript@0.18.1-rc350.0
ecmascript@0.18.1
standard-minifier-js@3.2.0
rspack@1.1.0
@@ -16,11 +16,11 @@ blaze@3.0.2
aldeed:collection2
aldeed:schema-index@4.0.0-beta.5
reywood:publish-composite
mongo@2.4.0-rc350.2
mongo@2.4.0
# Account system
accounts-password@3.3.0-rc350.2
accounts-express@1.0.0-rc350.2
accounts-password@3.3.0
accounts-express@1.0.0
communitypackages:core
communitypackages:unstyled
communitypackages:flow-routing
@@ -37,7 +37,7 @@ wekan-accounts-oidc
check@1.5.0
random@1.2.2
reactive-dict@1.3.2
session@1.2.3-rc350.2
session@1.2.3
tracker@1.3.4
audit-argument-checks@1.0.8
@@ -45,7 +45,7 @@ audit-argument-checks@1.0.8
ostrio:i18n
reactive-var@1.0.13
shell-server@0.7.0
email@3.2.0-rc350.2
email@3.2.0
dynamic-import@0.7.4
wekan-markdown
quave:synced-cron
@@ -55,8 +55,8 @@ ostrio:files
meteortesting:mocha@3.0.0
matb33:collection-hooks
service-configuration@1.3.5
minifier-css@2.0.2-rc350.2
ejson@1.2.0-rc350.2
minifier-css@2.0.2
ejson@1.2.0
logging@1.3.6
wekan-fullcalendar
wekan-fontawesome
+1 -1
View File
@@ -1 +1 @@
METEOR@3.5-rc.2
METEOR@3.5
+28 -28
View File
@@ -1,44 +1,44 @@
accounts-base@3.3.0-rc350.2
accounts-express@1.0.0-rc350.2
accounts-oauth@1.4.7-rc350.2
accounts-password@3.3.0-rc350.2
accounts-base@3.3.0
accounts-express@1.0.0
accounts-oauth@1.4.7
accounts-password@3.3.0
aldeed:collection2@4.2.0
aldeed:schema-index@4.0.0
aldeed:simple-schema@1.13.1
allow-deny@2.1.0
audit-argument-checks@1.0.8
autoupdate@2.0.1
babel-compiler@7.14.1-rc350.0
babel-compiler@7.14.1
babel-runtime@1.5.2
base64@1.0.14-rc350.2
binary-heap@1.0.13-rc350.2
base64@1.0.14
binary-heap@1.0.13
blaze@3.0.3
blaze-tools@2.0.1
boilerplate-generator@2.1.0
caching-compiler@2.0.1
caching-html-compiler@2.0.1
callback-hook@1.8.0-rc350.2
callback-hook@1.8.0
check@1.5.0
communitypackages:core@2.0.3
communitypackages:flow-routing@2.1.0
communitypackages:unstyled@2.0.1
core-runtime@1.0.0
ddp@1.4.2
ddp-client@3.3.0-rc350.2
ddp-common@1.4.5-rc350.2
ddp-rate-limiter@1.3.0-rc350.2
ddp-server@3.3.0-rc350.2
ddp-client@3.3.0
ddp-common@1.4.5
ddp-rate-limiter@1.3.0
ddp-server@3.3.0
diff-sequence@1.1.3
dynamic-import@0.7.4
ecmascript@0.18.1-rc350.0
ecmascript@0.18.1
ecmascript-runtime@0.8.3
ecmascript-runtime-client@0.13.0
ecmascript-runtime-server@0.11.1
ejson@1.2.0-rc350.2
email@3.2.0-rc350.2
ejson@1.2.0
email@3.2.0
es5-shim@4.8.1
facts-base@1.0.2
fetch@0.2.0-rc350.2
fetch@0.2.0
geojson-utils@1.0.12
hot-code-push@1.0.5
html-tools@2.0.1
@@ -53,23 +53,23 @@ lai:collection-extensions@1.0.0
localstorage@1.2.1
logging@1.3.6
matb33:collection-hooks@2.1.0
meteor@2.3.1-rc350.2
meteor@2.3.1
meteor-base@1.5.2
meteortesting:browser-tests@1.8.0
meteortesting:mocha@3.3.0
meteortesting:mocha-core@8.2.0
minifier-css@2.0.2-rc350.2
minifier-js@3.2.1-rc350.0
minimongo@2.2.0-rc350.2
minifier-css@2.0.2
minifier-js@3.2.1
minimongo@2.2.0
modern-browsers@0.2.3
modules@0.20.3
modules-runtime@0.13.2
mongo@2.4.0-rc350.2
mongo@2.4.0
mongo-decimal@0.2.0
mongo-dev-server@1.1.1
mongo-id@1.0.9
npm-mongo@6.16.1
oauth@3.0.4-rc350.2
oauth@3.0.4
oauth2@1.3.3
observe-sequence@2.0.1
ordered-dict@1.2.0
@@ -82,7 +82,7 @@ promise@1.0.0
quave:synced-cron@2.4.0
raix:eventemitter@1.0.0
random@1.2.2
rate-limit@1.2.0-rc350.2
rate-limit@1.2.0
react-fast-refresh@0.3.0
reactive-dict@1.3.2
reactive-var@1.0.13
@@ -92,10 +92,10 @@ reywood:publish-composite@1.9.0
routepolicy@1.1.2
rspack@1.1.0
service-configuration@1.3.5
session@1.2.3-rc350.2
session@1.2.3
sha@1.0.10
shell-server@0.7.0
socket-stream-client@0.7.0-rc350.2
socket-stream-client@0.7.0
spacebars@2.0.1
spacebars-compiler@2.0.1
standard-minifier-js@3.2.0
@@ -105,9 +105,9 @@ templating-runtime@2.0.2
templating-tools@2.0.1
tools-core@1.1.0
tracker@1.3.4
typescript@5.10.1-rc350.0
url@1.3.6-rc350.2
webapp@2.2.0-rc350.2
typescript@5.10.1
url@1.3.6
webapp@2.2.0
webapp-hashing@1.1.2
wekan-accounts-cas@0.2.0
wekan-accounts-lockout@1.1.0
+8 -1
View File
@@ -1,2 +1,9 @@
npm-packages/
tests/
# Root tests/ holds Playwright specs, Node E2E and node-based unit tests - none
# of it is Meteor code, and Meteor's file watcher otherwise churns on the
# tests/playwright/test-results/ tree (inotify errors). The leading slash anchors
# this to the repo root only, so it does NOT match server/lib/tests/ or
# client/lib/tests/ (the Mocha suites, loaded via meteor.testModule in
# package.json). A naked "tests/" would match a dir named tests at any depth and
# would hide those suites, making `meteor test` report "0 passing".
/tests/
+526 -142
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -2,10 +2,10 @@
For all code at WeKan GitHub Organization https://github.com/wekan
- For pull requests, mention only those participants that are **human**.
- All code in pull requests need to have permission already to add it to WeKan with MIT license, and will become MIT license.
- For any dependencies, permissive licenses like https://copyfree.org are preferred
- For anything currently that is non-permissive (like GPL, AGPL, SSPL), those will be replaced with permissive-licensed alternatives
- Any intelligence allowed: Human, AI or any other. No discrimination, please have world peace. Mentioning participants optional.
- All code is checked and validated by xet7 and many different security AI. If code is real working fix or feature, it usually will be merged.
- All known vulnerabilities have been fixed at newest WeKan, please upgrade https://wekan.fi/upgrade/
- There is no known backdoors. If WeKan is installed by someone else, first registered user is Admin and has Admin Panel access.
+1 -1
View File
@@ -7,7 +7,7 @@ LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
# TARGETARCH and TARGETVARIANT are automatically provided by Docker Buildx
ARG TARGETARCH
ARG TARGETVARIANT
ARG VERSION=9.73
ARG VERSION=9.78
ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils gnupg wget bzip2 g++ curl libarchive-tools build-essential git ca-certificates python3 unzip"
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v9.73.0"
appVersion: "v9.78.0"
files:
userUploads:
- README.md
+11
View File
@@ -1087,3 +1087,14 @@ body.mobile-mode .card-details .card-details-header .close-card-details-mobile-w
line-height: 1;
box-sizing: border-box;
}
/* #6431 follow-up: cover image on the opened card (Card Settings > Cover image
on card, opt-in). Mirrors the minicard cover but taller. */
.card-details-cover {
background-position: center;
background-repeat: no-repeat;
background-size: contain;
height: 200px;
user-select: none;
margin: 8px 0;
}
+15
View File
@@ -112,6 +112,11 @@ template(name="cardDetails")
i.fa.fa-check
span {{_ 'upload-completed'}}
//- #6431 follow-up: cover image on the opened card (opt-in, OFF by default).
if currentBoard.allowsCoverAttachmentOnCard
if cover
.card-details-cover(style="background-image: url('{{cover.link 'original'}}');")
.card-details-left
.card-details-items
@@ -684,6 +689,14 @@ template(name="cardDetails")
.card-checklist-attachmentGallery.card-checklists
if currentBoard.allowsChecklists
hr
//- Total checklist item count (finished/total) shown above all
checklists. The board flag is a cheap boolean, so when it is off
the checklist counting below is never evaluated.
if currentBoard.allowsChecklistCountBadgeOnCard
if checklists.length
h3.card-details-item-title
i.fa.fa-check-square-o
| {{checklistFinishedCount}}/{{checklistItemCount}}
+checklists(cardId = _id card = this)
if currentBoard.allowsSubtasks
hr
@@ -693,6 +706,8 @@ template(name="cardDetails")
h3.card-details-item-title
i.fa.fa-paperclip
| {{_ 'attachments'}}
if currentBoard.allowsAttachmentCountOnCard
| ({{attachments.length}})
if Meteor.settings.public.attachmentsUploadMaxSize
| {{_ 'max-upload-filesize'}} {{Meteor.settings.public.attachmentsUploadMaxSize}}
br
+20 -1
View File
@@ -51,6 +51,7 @@ import Lists from '/models/lists';
import CardComments from '/models/cardComments';
import { ALLOWED_COLORS } from '/config/const';
import { uniqBy } from '/imports/lib/collectionHelpers';
import { memberTargetBoardId } from '/models/lib/linkedCardMembers';
import { UserAvatar } from '../users/userAvatar';
import { Filter } from '/client/lib/filter';
import { BoardSwimlaneListCardDialog } from '/client/lib/dialogWithBoardSwimlaneListCard';
@@ -1657,7 +1658,25 @@ Template.cardLocationsPopup.events({
});
const filterMembers = (filterTerm) => {
let currBoard = Utils.getCurrentBoard();
// #5676: for a linked card the members live on the REAL card it points at,
// which may be on another board (that is what getMembers()/toggleMember() act
// on). Offer that board's members instead of the viewing board's, so the
// picker is consistent with where membership is actually stored. Falls back to
// the current board for normal cards or when the real card isn't loaded yet.
const card = getCurrentCardFromContext();
let currBoard = null;
if (card) {
const boardId = memberTargetBoardId(card, id => ReactiveCache.getCard(id));
if (boardId) {
currBoard = ReactiveCache.getBoard(boardId);
}
}
if (!currBoard) {
currBoard = Utils.getCurrentBoard();
}
if (!currBoard) {
return [];
}
let members = currBoard.activeMembers();
if (filterTerm) {
+9
View File
@@ -215,6 +215,15 @@ template(name="minicard")
i.fa.fa-globe
span.badge-text.check-list-text {{subtasksFinishedCount}}/{{allSubtasksCount}}
//{{subtasksFinishedCount}}/{{subtasksCount}} does not work because when a subtaks is archived, the count goes down
//- #6431: compact checklist item-count badge (finished/total). The outer
guard is a cheap boolean, so when the setting is off the checklist
counting below never runs.
if showChecklistCountBadge
if checklists.length
.badge(class="{{#if checklistFinished}}is-finished{{/if}}" title="{{_ 'checklists'}}")
span.badge-icon
i.fa.fa-check-square-o
span.badge-text.check-list-text {{checklistFinishedCount}}/{{checklistItemCount}}
if currentBoard.allowsCardSortingByNumber
if currentBoard.allowsCardSortingByNumberOnMinicard
.badge
+8
View File
@@ -144,6 +144,14 @@ Template.minicard.helpers({
const board = this.board();
return getMinicardFlag(board, 'allowsSubtasksOnMinicard', 'allowsSubtasks', true);
},
// #6431: compact checklist item-count badge (finished/total) on the minicard.
// Opt-in, OFF by default. Only a cheap boolean read here; the actual checklist
// counting (checklistFinishedCount/checklistItemCount) is gated behind this in
// the template, so a board with the badge off spends no resources counting.
showChecklistCountBadge() {
const board = this.board();
return !!(board && board.allowsChecklistCountBadgeOnMinicard);
},
hiddenMinicardLabelText() {
const currentUser = ReactiveCache.getCurrentUser();
+16 -1
View File
@@ -9,6 +9,7 @@ import Swimlanes from '/models/swimlanes';
import { Filter } from '/client/lib/filter';
import { MultiSelection } from '/client/lib/multiSelection';
import { Utils } from '/client/lib/utils';
import { isLinkableCardTarget } from '/models/lib/linkedCardTarget';
import autosize from 'autosize';
// SubsManager removed for Meteor 3 migration
@@ -706,7 +707,10 @@ Template.linkCardPopup.helpers({
archived: false,
linkedId: { $nin: ownCardsIds },
_id: { $nin: ownCardsIds },
type: { $nin: ['template-card'] },
// #5808: never offer an existing linked card/board as a link target —
// linking to one builds a chain of linkedId pointers that renders the
// card inaccessible. Only real cards may be linked.
type: { $nin: ['template-card', 'cardType-linkedCard', 'cardType-linkedBoard'] },
};
if (tpl.selectedBoardId.get()) selector.boardId = tpl.selectedBoardId.get();
if (tpl.selectedSwimlaneId.get()) selector.swimlaneId = tpl.selectedSwimlaneId.get();
@@ -790,6 +794,17 @@ Template.linkCardPopup.events({
Popup.back();
return;
}
// #5808: refuse to link to a linked card/board or to a card that links back
// to this board — those build a chain/cycle of linkedId pointers that renders
// the cards inaccessible. The <select> already filters these out, but its
// options can be stale, so re-check the resolved target here.
const targetCard = ReactiveCache.getCard(linkedId);
const ownCardsIds = tpl.board.cards().map(card => card.getRealId());
if (!isLinkableCardTarget(targetCard, ownCardsIds)) {
alert(TAPi18n.__('error-linked-card-not-allowed'));
Popup.back();
return;
}
const nextCardNumber = await tpl.board.getNextCardNumber();
const sortIndex = tpl.getSortIndex();
const _id = Cards.insert({
@@ -4,6 +4,7 @@ import Actions from '/models/actions';
import Rules from '/models/rules';
import Triggers from '/models/triggers';
import { Utils } from '/client/lib/utils';
import { canSelectBoardInRules } from '/models/lib/rulesBoardSelector';
Template.boardActions.onCreated(function () {
this.subscribe('boards');
@@ -11,19 +12,30 @@ Template.boardActions.onCreated(function () {
Template.boardActions.helpers({
boards() {
const ret = ReactiveCache.getBoards(
{
archived: false,
'members.userId': Meteor.userId(),
_id: {
$ne: ReactiveCache.getCurrentUser().getTemplatesBoardId(),
},
},
// #5698: don't restrict to boards where the user is a DIRECT member — that
// hid every board reached through an Organization / Team / email-domain
// share (the reporter's whole board dropdown was empty, current board
// included). Filter the already access-scoped client cache with the same
// visibility rule as Boards.userBoards() so org/team/domain boards show too.
const user = ReactiveCache.getCurrentUser();
if (!user) return [];
const ctx = {
userId: user._id,
orgIds: typeof user.orgIds === 'function' ? user.orgIds() : [],
teamIds: typeof user.teamIds === 'function' ? user.teamIds() : [],
emailDomains:
typeof user.emailDomains === 'function' ? user.emailDomains() : [],
};
const templatesBoardId = user.getTemplatesBoardId();
const boards = ReactiveCache.getBoards(
{ archived: false },
{
sort: { sort: 1 /* boards default sorting */ },
},
);
return ret;
return boards.filter(board =>
canSelectBoardInRules(board, ctx, templatesBoardId),
);
},
loadingBoardsLabel() {
+12 -1
View File
@@ -6,6 +6,7 @@ import AccessibilitySettings from '/models/accessibilitySettings';
import AccountSettings from '/models/accountSettings';
import Announcements from '/models/announcements';
import Settings from '/models/settings';
import { resolveDefaultAuthenticationMethod } from '/models/lib/authenticationMethod';
import TableVisibilityModeSettings from '/models/tableVisibilityModeSettings';
// import {
// cronMigrationProgress,
@@ -803,7 +804,17 @@ Template.setting.events({
$('input[name=hideBoardMemberList]:checked').val() === 'true';
const displayAuthenticationMethod =
$('input[name=displayAuthenticationMethod]:checked').val() === 'true';
const defaultAuthenticationMethod = $('#defaultAuthenticationMethod').val();
// #5879: the <select> options are populated by an async Meteor.call, so its
// value can still be '' / null when Save is clicked. Saving that empty value
// over the required `defaultAuthenticationMethod` string silently failed
// validation, so the Layout save looked like it hung / did nothing. Fall back
// to the currently stored method so a real value is never overwritten by ''.
const currentDefaultAuthenticationMethod =
ReactiveCache.getCurrentSetting()?.defaultAuthenticationMethod;
const defaultAuthenticationMethod = resolveDefaultAuthenticationMethod(
$('#defaultAuthenticationMethod').val(),
currentDefaultAuthenticationMethod,
);
const spinnerName = ($('#spinnerName').val() || '').trim();
try {
+8
View File
@@ -82,6 +82,14 @@ body.grey-icons-enabled .boardSubtaskSettingsPopup .materialCheckBox.is-checked
grid-template-columns: 1fr 1fr 2fr;
gap: 10px;
margin-bottom: 10px;
/* Keep the "Show on Card / Show on Minicard / Description" titles visible
while the rows below scroll (the popup scrolls in .pop-over .content-wrapper). */
position: sticky;
top: 0;
z-index: 2;
background: #fff;
padding: 5px 0;
border-bottom: 2px solid #ddd;
}
.card-settings-row {
+25 -39
View File
@@ -315,21 +315,12 @@ template(name="boardCardSettingsPopup")
a.flex.js-field-has-creator(title="{{_ 'creator'}}" class="{{#if allowsCreator}}is-checked{{/if}}")
i.fa(class="{{#if allowsCreator}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
.card-settings-column
span
i.fa.fa-user
| {{_ 'creator'}}
.card-settings-row
.card-settings-column
span
.card-settings-column
a.flex.js-field-has-creator-on-minicard(title="{{_ 'creator-on-minicard'}}" class="{{#if allowsCreatorOnMinicard}}is-checked{{/if}}")
a.flex.js-field-has-creator-on-minicard(title="{{_ 'creator'}}" class="{{#if allowsCreatorOnMinicard}}is-checked{{/if}}")
i.fa(class="{{#if allowsCreatorOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
i.fa.fa-user
| {{_ 'creator-on-minicard'}}
| {{_ 'creator'}}
.card-settings-row
.card-settings-column
a.flex.js-field-has-assignee(title="{{_ 'assignee'}}" class="{{#if allowsAssignee}}is-checked{{/if}}")
@@ -369,27 +360,19 @@ template(name="boardCardSettingsPopup")
a.flex.js-field-has-card-sorting-by-number(title="{{_ 'card-sorting-by-number'}}" class="{{#if allowsCardSortingByNumber}}is-checked{{/if}}")
i.fa(class="{{#if allowsCardSortingByNumber}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
a.flex.js-field-has-card-sorting-by-number-on-minicard(title="{{_ 'card-sorting-by-number'}}" class="{{#if allowsCardSortingByNumberOnMinicard}}is-checked{{/if}}")
i.fa(class="{{#if allowsCardSortingByNumberOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
i.fa.fa-sort-numeric-asc
| {{_ 'card-sorting-by-number'}}
.card-settings-row
.card-settings-column
span
.card-settings-column
a.flex.js-field-has-card-sorting-by-number-on-minicard(title="{{_ 'card-sorting-by-number-on-minicard'}}" class="{{#if allowsCardSortingByNumberOnMinicard}}is-checked{{/if}}")
i.fa(class="{{#if allowsCardSortingByNumberOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
i.fa.fa-sort-numeric-asc
| {{_ 'card-sorting-by-number-on-minicard'}}
.card-settings-row
.card-settings-column
a.flex.js-field-has-card-show-lists(title="{{_ 'card-show-lists'}}" class="{{#if allowsShowLists}}is-checked{{/if}}")
i.fa(class="{{#if allowsShowLists}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
a.flex.js-field-has-card-show-lists-on-minicard(title="{{_ 'card-show-lists'}}" class="{{#if allowsShowListsOnMinicard}}is-checked{{/if}}")
i.fa(class="{{#if allowsShowListsOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
i.fa.fa-list
@@ -405,16 +388,6 @@ template(name="boardCardSettingsPopup")
span
i.fa.fa-tag
| {{_ 'labels'}}
.card-settings-row
.card-settings-column
span
.card-settings-column
a.flex.js-field-has-card-show-lists-on-minicard(title="{{_ 'card-show-lists-on-minicard'}}" class="{{#if allowsShowListsOnMinicard}}is-checked{{/if}}")
i.fa(class="{{#if allowsShowListsOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
i.fa.fa-list
| {{_ 'card-show-lists-on-minicard'}}
.card-settings-row
.card-settings-column
a.flex.js-field-has-card-number(title="{{_ 'card'}} {{_ 'number'}}" class="{{#if allowsCardNumber}}is-checked{{/if}}")
@@ -462,6 +435,17 @@ template(name="boardCardSettingsPopup")
span
i.fa.fa-check
| {{_ 'checklists'}}
.card-settings-row
.card-settings-column
a.flex.js-field-has-checklist-count(title="{{_ 'checklist-count'}}" class="{{#if allowsChecklistCountBadgeOnCard}}is-checked{{/if}}")
i.fa(class="{{#if allowsChecklistCountBadgeOnCard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
a.flex.js-field-has-checklist-count-on-minicard(title="{{_ 'checklist-count'}}" class="{{#if allowsChecklistCountBadgeOnMinicard}}is-checked{{/if}}")
i.fa(class="{{#if allowsChecklistCountBadgeOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
i.fa.fa-check-square-o
| {{_ 'checklist-count'}}
.card-settings-row
.card-settings-column
a.flex.js-field-has-subtasks(title="{{_ 'subtasks'}}" class="{{#if allowsSubtasks}}is-checked{{/if}}")
@@ -486,24 +470,26 @@ template(name="boardCardSettingsPopup")
| {{_ 'attachments'}}
.card-settings-row
.card-settings-column
span
a.flex.js-field-has-attachment-count(title="{{_ 'attachment-count'}}" class="{{#if allowsAttachmentCountOnCard}}is-checked{{/if}}")
i.fa(class="{{#if allowsAttachmentCountOnCard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
a.flex.js-field-has-badge-attachment-on-minicard(title="{{_ 'badge-attachment-on-minicard'}}" class="{{#if allowsBadgeAttachmentOnMinicard}}is-checked{{/if}}")
a.flex.js-field-has-badge-attachment-on-minicard(title="{{_ 'attachment-count'}}" class="{{#if allowsBadgeAttachmentOnMinicard}}is-checked{{/if}}")
i.fa(class="{{#if allowsBadgeAttachmentOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
i.fa.fa-paperclip
| {{_ 'badge-attachment-on-minicard'}}
| {{_ 'attachment-count'}}
.card-settings-row
.card-settings-column
span
a.flex.js-field-has-cover-attachment-on-card(title="{{_ 'cover-image'}}" class="{{#if allowsCoverAttachmentOnCard}}is-checked{{/if}}")
i.fa(class="{{#if allowsCoverAttachmentOnCard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
a.flex.js-field-has-cover-attachment-on-minicard(title="{{_ 'cover-attachment-on-minicard'}}" class="{{#if allowsCoverAttachmentOnMinicard}}is-checked{{/if}}")
a.flex.js-field-has-cover-attachment-on-minicard(title="{{_ 'cover-image'}}" class="{{#if allowsCoverAttachmentOnMinicard}}is-checked{{/if}}")
i.fa(class="{{#if allowsCoverAttachmentOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
.card-settings-column
span
i.fa.fa-picture-o
| {{_ 'cover-attachment-on-minicard'}}
| {{_ 'cover-image'}}
//div.check-div
//
a.flex.js-field-has-comments(class="{{#if allowsComments}}is-checked{{/if}}")
+42
View File
@@ -1496,6 +1496,28 @@ Template.boardCardSettingsPopup.helpers({
const currentBoard = ReactiveCache.getBoard(boardId);
return getMinicardSetting(currentBoard, 'allowsChecklistsOnMinicard', 'allowsChecklists', true);
},
// #6431: compact checklist count badge on minicard, opt-in and OFF by default.
allowsChecklistCountBadgeOnMinicard() {
const boardId = Session.get('currentBoard');
const currentBoard = ReactiveCache.getBoard(boardId);
return currentBoard ? currentBoard.allowsChecklistCountBadgeOnMinicard : false;
},
// #6431 follow-up: new opt-in (OFF by default) card-side options.
allowsChecklistCountBadgeOnCard() {
const boardId = Session.get('currentBoard');
const currentBoard = ReactiveCache.getBoard(boardId);
return currentBoard ? currentBoard.allowsChecklistCountBadgeOnCard : false;
},
allowsAttachmentCountOnCard() {
const boardId = Session.get('currentBoard');
const currentBoard = ReactiveCache.getBoard(boardId);
return currentBoard ? currentBoard.allowsAttachmentCountOnCard : false;
},
allowsCoverAttachmentOnCard() {
const boardId = Session.get('currentBoard');
const currentBoard = ReactiveCache.getBoard(boardId);
return currentBoard ? currentBoard.allowsCoverAttachmentOnCard : false;
},
allowsAttachments() {
const boardId = Session.get('currentBoard');
const currentBoard = ReactiveCache.getBoard(boardId);
@@ -1790,6 +1812,26 @@ Template.boardCardSettingsPopup.events({
const newValue = !tpl.currentBoard.allowsChecklistsOnMinicard;
Boards.update(tpl.currentBoard._id, { $set: { allowsChecklistsOnMinicard: newValue } });
},
'click .js-field-has-checklist-count-on-minicard'(evt, tpl) {
evt.preventDefault();
const newValue = !tpl.currentBoard.allowsChecklistCountBadgeOnMinicard;
Boards.update(tpl.currentBoard._id, { $set: { allowsChecklistCountBadgeOnMinicard: newValue } });
},
'click .js-field-has-checklist-count'(evt, tpl) {
evt.preventDefault();
const newValue = !tpl.currentBoard.allowsChecklistCountBadgeOnCard;
Boards.update(tpl.currentBoard._id, { $set: { allowsChecklistCountBadgeOnCard: newValue } });
},
'click .js-field-has-attachment-count'(evt, tpl) {
evt.preventDefault();
const newValue = !tpl.currentBoard.allowsAttachmentCountOnCard;
Boards.update(tpl.currentBoard._id, { $set: { allowsAttachmentCountOnCard: newValue } });
},
'click .js-field-has-cover-attachment-on-card'(evt, tpl) {
evt.preventDefault();
const newValue = !tpl.currentBoard.allowsCoverAttachmentOnCard;
Boards.update(tpl.currentBoard._id, { $set: { allowsCoverAttachmentOnCard: newValue } });
},
'click .js-field-has-attachments'(evt, tpl) {
evt.preventDefault();
const newValue = !tpl.currentBoard.allowsAttachments;
+2
View File
@@ -1,3 +1,5 @@
// i18n (TAPi18n) tests, run on the client as the old tests/main.js did.
import '/imports/i18n/i18n.test.js';
import './Utils.tests';
import './filter.dependencies.tests';
import './dueDateColor.tests';
+86 -1
View File
@@ -1,9 +1,28 @@
import { TAPi18n } from '/imports/i18n';
import { FlowRouter } from 'meteor/ostrio:flow-router-extra';
// Readiness-aware, reactive translation — mirrors the `{{_}}` Blaze helper
// (imports/i18n/blaze.js). A bare TAPi18n.__() returns the raw key on the initial
// (English) render because the language bundle loads asynchronously, and it never
// re-runs once ready. Depending on TAPi18n.current / TAPi18n.ready makes the
// account-form labels/placeholders re-render as soon as i18n is loaded and on every
// language change.
function tr(key) {
TAPi18n.current.get();
TAPi18n.ready.get();
if (!TAPi18n.i18n || !TAPi18n.ready.get()) {
return key;
}
return TAPi18n.__(key);
}
const passwordField = AccountsTemplates.removeField('password');
passwordField.autocomplete = 'current-password';
passwordField.template = 'passwordInput';
// Translate the field label/placeholder via WeKan i18n — see the note below the
// addFields() call. Set before re-adding the field so it is present when useraccounts
// registers it.
passwordField.displayName = () => tr('password');
const emailField = AccountsTemplates.removeField('email');
// Don't add current_password to global fields - it should only be used for change password
@@ -75,7 +94,7 @@ AccountsTemplates.addFields([
{
_id: 'password_again',
type: 'password',
displayName: 'Password (again)',
displayName: () => tr('password-again'),
required: true,
minLength: 6,
autocomplete: 'new-password',
@@ -91,6 +110,57 @@ AccountsTemplates.addFields([
},
]);
// The sign-in / register form field labels and placeholders were rendered through
// accounts-t9n (`T9n.get`), whose per-language coverage is incomplete, and
// useraccounts' `getPlaceholder()` never invokes a function placeholder (unlike
// `getDisplayName()`) — so several placeholders (Username, Email, Password
// (again)) and the Email / Password (again) labels showed untranslated English.
// Translate the account-form fields through WeKan's own i18n (TAPi18n) instead,
// which has complete data/<lang>.i18n.json coverage.
//
// Password fields (password, password_again) use WeKan's passwordInput template,
// which renders {{displayName}} for both its label and its placeholder. Their
// field-level displayName functions (set above / in addFields) are invoked both by
// getDisplayName() and by Blaze, so they translate regardless of when useraccounts
// wires up per-template helpers. Username / email use the atTextInput override below.
if (Meteor.isClient) {
const { Template } = require('meteor/templating');
const { T9n } = require('meteor/communitypackages:core');
// Fields WeKan translates itself (complete data/<lang>.i18n.json coverage), keyed
// by field id. Other account-form text inputs — notably the sign-in combined
// "username_and_email" field and current_password — keep their built-in
// accounts-t9n translation, because WeKan has no key for them and accounts-t9n
// already ships one (e.g. "usernameOrEmail").
const WEKAN_FIELD_KEY = { username: 'username', email: 'email' };
function fieldText(field, original) {
TAPi18n.current.get();
TAPi18n.ready.get();
const key = WEKAN_FIELD_KEY[field._id];
if (key && TAPi18n.i18n && TAPi18n.ready.get()) {
const translated = TAPi18n.__(key);
if (translated !== key) {
return translated;
}
}
// Fall back to useraccounts' own accounts-t9n translation. The field's
// displayName/placeholder is an accounts-t9n key (e.g. "usernameOrEmail").
return T9n.get(original, false);
}
// The unstyled package registers these helpers on Template.atTextInput at load
// time, so this app-startup override wins.
Template.atTextInput.helpers({
displayName() {
return fieldText(this, this.getDisplayName());
},
placeholder() {
if (!AccountsTemplates.options.showPlaceholders) {
return undefined;
}
return fieldText(this, this.getPlaceholder());
},
});
}
AccountsTemplates.configure({
defaultLayout: 'userFormsLayout',
defaultContentRegion: 'content',
@@ -230,4 +300,19 @@ if (Meteor.isServer) {
Accounts.sendResetPasswordEmail,
(code, message) => new Meteor.Error(code, message),
);
// #5672: "Internal Server Error When Signing Up Despite Successful Account
// Creation". useraccounts' ATCreateUserServer creates the account and then
// calls Accounts.sendVerificationEmail(); when SMTP is not configured that
// send throws AFTER the user is inserted, so the createUser method returns a
// raw HTTP 500 even though the account exists and can sign in. The
// verification email is best-effort at sign-up, so swallow + log a transport
// failure (registration then completes and redirects to sign-in). An
// "already verified" error is re-thrown so ATResendVerificationEmail still
// reports it. Unit-tested in tests/verificationEmail.test.cjs.
const { wrapSendVerificationEmail } = require('/server/lib/verificationEmail');
Accounts.sendVerificationEmail = wrapSendVerificationEmail(
Accounts.sendVerificationEmail,
message => console.warn(message),
);
}
+2 -2
View File
@@ -10,7 +10,7 @@ This is without container (without Docker or Snap).
Right click and download files 1-4:
1. [wekan-9.73-win64.zip](https://github.com/wekan/wekan/releases/download/v9.73/wekan-9.73-win64.zip) or newest available at https://github.com/wekan/wekan/releases/
1. [wekan-9.78-win64.zip](https://github.com/wekan/wekan/releases/download/v9.78/wekan-9.78-win64.zip) or newest available at https://github.com/wekan/wekan/releases/
2. [node.exe](https://nodejs.org/dist/latest-v24.x/win-x64/node.exe)
@@ -22,7 +22,7 @@ Right click and download files 1-4:
6. Double click `mongodb-windows-x86_64-7.0.34-signed.msi` . In installer, uncheck downloading MongoDB compass.
7. Unzip `wekan-9.73-win64.zip` , inside it is directory `bundle`, to it copy other files:
7. Unzip `wekan-9.78-win64.zip` , inside it is directory `bundle`, to it copy other files:
```
bundle (directory)
+16
View File
@@ -0,0 +1,16 @@
# Reset previous attempts
sudo flatpak override --reset com.visualstudio.code
# Block EVERYTHING except the display and the wekan folder
sudo flatpak override com.visualstudio.code \
--nofilesystem=home \
--nofilesystem=host \
--nofilesystem=xdg-run/gvfs \
--nofilesystem=xdg-run/gvfsd \
--filesystem=~/repos/wekan:rw \
--filesystem=~/repos/log:rw \
--filesystem=~/repos/w/wekan.fi:rw \
--device=all \
--socket=wayland \
--socket=x11 \
--share=network
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "CSV anda(Nilai yang dipisahkan koma)/TSV (Nilai yang dipisahkan tab) tidak termasuk informasi yang tepat dalam format yang benar",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Daftar ini tidak ada",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Nama pengguna ini tidak ada",
"error-user-notAllowSelf": "Anda tidak bisa mengundang diri sendiri",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Gambar sampul untuk kartu kecil",
"badge-attachment-on-minicard": "Menghitung lampiran pada kartu kecil",
"card-sorting-by-number-on-minicard": "Kartu disaring dengan nomor pada kartu kecil",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "rintisan dengan prefix",
"prefix-with-parent": "Induk dnegan prefix",
"subtext-with-full-path": "Subtext dengan rintisan lengkap",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Jou CSV (Comma Separated Values)/TSV (Tab Separated Values) sluit nie die korrekte inligting in die korrekte formaat in nie",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Hierdie lys bestaan ​​nie",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Hierdie gebruiker bestaan ​​nie",
"error-user-notAllowSelf": "Jy kan nie jouself nooi nie",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Omslagprent op minikaart",
"badge-attachment-on-minicard": "Telling van aanhegsels op minikaart",
"card-sorting-by-number-on-minicard": "Kaart sorteer volgens nommer op minikaart",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Voorvoegsel met volle pad",
"prefix-with-parent": "Voorvoegsel met ouer",
"subtext-with-full-path": "Subteks met volle pad",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Jou CSV (Comma Separated Values)/TSV (Tab Separated Values) sluit nie die korrekte inligting in die korrekte formaat in nie",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Hierdie lys bestaan ​​nie",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Hierdie gebruiker bestaan ​​nie",
"error-user-notAllowSelf": "Jy kan nie jouself nooi nie",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Omslagprent op minikaart",
"badge-attachment-on-minicard": "Telling van aanhegsels op minikaart",
"card-sorting-by-number-on-minicard": "Kaart sorteer volgens nommer op minikaart",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Voorvoegsel met volle pad",
"prefix-with-parent": "Voorvoegsel met ouer",
"subtext-with-full-path": "Subteks met volle pad",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "این لیست موجود نیست",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "این کاربر وجود ندارد",
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "صورة الغلاف على البطاقة الصغيرة",
"badge-attachment-on-minicard": "عدد المرفقات على البطاقة الصغيرة",
"card-sorting-by-number-on-minicard": "رز البطاقات حسب الرقم على البطاقة الصغيرة",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "پیشوند با مسیر کامل",
"prefix-with-parent": "پیشوند با خانواده",
"subtext-with-full-path": "زیرنویس با مسیر کامل",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "این لیست موجود نیست",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "این کاربر وجود ندارد",
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "صورة الغلاف على البطاقة الصغيرة",
"badge-attachment-on-minicard": "عدد المرفقات على البطاقة الصغيرة",
"card-sorting-by-number-on-minicard": "رز البطاقات حسب الرقم على البطاقة الصغيرة",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "پیشوند با مسیر کامل",
"prefix-with-parent": "پیشوند با خانواده",
"subtext-with-full-path": "زیرنویس با مسیر کامل",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "این لیست موجود نیست",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "این کاربر وجود ندارد",
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "صورة الغلاف على البطاقة الصغيرة",
"badge-attachment-on-minicard": "عدد المرفقات على البطاقة الصغيرة",
"card-sorting-by-number-on-minicard": "رز البطاقات حسب الرقم على البطاقة الصغيرة",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "پیشوند با مسیر کامل",
"prefix-with-parent": "پیشوند با خانواده",
"subtext-with-full-path": "زیرنویس با مسیر کامل",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "این لیست موجود نیست",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "این کاربر وجود ندارد",
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "صورة الغلاف على البطاقة الصغيرة",
"badge-attachment-on-minicard": "عدد المرفقات على البطاقة الصغيرة",
"card-sorting-by-number-on-minicard": "رز البطاقات حسب الرقم على البطاقة الصغيرة",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "پیشوند با مسیر کامل",
"prefix-with-parent": "پیشوند با خانواده",
"subtext-with-full-path": "زیرنویس با مسیر کامل",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Sizin CSV(Vergüllə Ayrılmış Dəyərlər)/TSV (Vergüllə Ayrılmış Dəyərlər) düzgün formatda düzgün məlumatları ehtiva etmir",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Bu siyahı mövcud deyil",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Bu istifadəçi mövcud deyil",
"error-user-notAllowSelf": "Özünüzü dəvət edə bilməzsiniz",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Minikartda örtük şəkli",
"badge-attachment-on-minicard": "Minikartdakı qoşmaların sayı",
"card-sorting-by-number-on-minicard": "Minikartda nömrəyə görə kartın çeşidlənməsi",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Tam yolu olan prefiks",
"prefix-with-parent": "Valideyn ilə prefiks",
"subtext-with-full-path": "Tam yolu olan alt mətn",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Sizin CSV(Vergüllə Ayrılmış Dəyərlər)/TSV (Vergüllə Ayrılmış Dəyərlər) düzgün formatda düzgün məlumatları ehtiva etmir",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Bu siyahı mövcud deyil",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Bu istifadəçi mövcud deyil",
"error-user-notAllowSelf": "Özünüzü dəvət edə bilməzsiniz",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Minikartda örtük şəkli",
"badge-attachment-on-minicard": "Minikartdakı qoşmaların sayı",
"card-sorting-by-number-on-minicard": "Minikartda nömrəyə görə kartın çeşidlənməsi",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Tam yolu olan prefiks",
"prefix-with-parent": "Valideyn ilə prefiks",
"subtext-with-full-path": "Tam yolu olan alt mətn",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Sizin CSV(Vergüllə Ayrılmış Dəyərlər)/TSV (Vergüllə Ayrılmış Dəyərlər) düzgün formatda düzgün məlumatları ehtiva etmir",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Bu siyahı mövcud deyil",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Bu istifadəçi mövcud deyil",
"error-user-notAllowSelf": "Özünüzü dəvət edə bilməzsiniz",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Minikartda örtük şəkli",
"badge-attachment-on-minicard": "Minikartdakı qoşmaların sayı",
"card-sorting-by-number-on-minicard": "Minikartda nömrəyə görə kartın çeşidlənməsi",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Tam yolu olan prefiks",
"prefix-with-parent": "Valideyn ilə prefiks",
"subtext-with-full-path": "Tam yolu olan alt mətn",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Ваш CSV(Вредности раздвојене зарезом)/TSV (Вредности раздвојене табулатором) не укључује исправну информацију у предвиђеном облику",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Този списък не съществува",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Този потребител не съществува",
"error-user-notAllowSelf": "Не можете да поканите себе си",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Мотив из предметне грађе",
"badge-attachment-on-minicard": "Број поред спајалице",
"card-sorting-by-number-on-minicard": "Бројчана ознака за редослед",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Представка с пълен път",
"prefix-with-parent": "Представка с източник",
"subtext-with-full-path": "Под-текст с пълен път",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Cette liste n'existe pas",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Préfixer avec le chemin complet",
"prefix-with-parent": "Préfixer avec le parent",
"subtext-with-full-path": "Sous-titre avec le chemin complet",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "El teu CSV no inclou la informació en el format correcte.",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La llista no existeix",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "L'usuari no existeix",
"error-user-notAllowSelf": "No et pots convidar a la teva matriu",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix amb camí complet",
"prefix-with-parent": "Prefix amb el pare",
"subtext-with-full-path": "Subtext amb camí complet",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "El teu CSV no inclou la informació en el format correcte.",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La llista no existeix",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "L'usuari no existeix",
"error-user-notAllowSelf": "No et pots convidar a la teva matriu",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix amb camí complet",
"prefix-with-parent": "Prefix amb el pare",
"subtext-with-full-path": "Subtext amb camí complet",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "El teu CSV no inclou la informació en el format correcte.",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La llista no existeix",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "L'usuari no existeix",
"error-user-notAllowSelf": "No et pots convidar a la teva matriu",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix amb camí complet",
"prefix-with-parent": "Prefix amb el pare",
"subtext-with-full-path": "Subtext amb camí complet",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "您的 CSV(逗号分隔值)/TSV(制表符分隔值)未包含格式正确的正确信息",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "该列表不存在",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "该用户不存在",
"error-user-notAllowSelf": "您不能邀请自己",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "迷你卡上的封面图片",
"badge-attachment-on-minicard": "迷你卡上的附件计数",
"card-sorting-by-number-on-minicard": "按迷你卡上的编号对卡片进行分类",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "带完整路径的前缀",
"prefix-with-parent": "带有父级的前缀",
"subtext-with-full-path": "带有完整路径的副文本",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Váš CSV (Comma Separated Values)/TSV (Tab Separated Values) neobsahuje správné informace ve správném formátu.",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Tento sloupec ;neexistuje",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Tento uživatel neexistuje",
"error-user-notAllowSelf": "Nemůžeš pozvat sám sebe",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Titulní obrázek na minikartě",
"badge-attachment-on-minicard": "Počet příloh na minikartě",
"card-sorting-by-number-on-minicard": "Řazení karet podle čísla na minikartě",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix s celou cestou",
"prefix-with-parent": "Prefix s předkem",
"subtext-with-full-path": "Podtext s celou cestou",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Váš CSV (Comma Separated Values)/TSV (Tab Separated Values) neobsahuje správné informace ve správném formátu.",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Tento sloupec ;neexistuje",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Tento uživatel neexistuje",
"error-user-notAllowSelf": "Nemůžeš pozvat sám sebe",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Titulní obrázek na minikartě",
"badge-attachment-on-minicard": "Počet příloh na minikartě",
"card-sorting-by-number-on-minicard": "Řazení karet podle čísla na minikartě",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix s celou cestou",
"prefix-with-parent": "Prefix s předkem",
"subtext-with-full-path": "Podtext s celou cestou",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Nid yw eich CSV(Comma Separated Values)/TSV (Tab Separated Values) yn cynnwys y wybodaeth gywir yn y fformat cywir",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Nid yw'r rhestr hon yn bodoli",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Nid yw'r defnyddiwr hwn yn bodoli",
"error-user-notAllowSelf": "Ni allwch wahodd eich hun",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Llun clawr ar minicard",
"badge-attachment-on-minicard": "Cyfrif yr atodiadau ar miniard",
"card-sorting-by-number-on-minicard": "Didoli cardiau yn ôl rhif ar minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Rhagddodiad gyda llwybr llawn",
"prefix-with-parent": "Rhagddodiad gyda rhiant",
"subtext-with-full-path": "Is-destun gyda llwybr llawn",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Nid yw eich CSV(Comma Separated Values)/TSV (Tab Separated Values) yn cynnwys y wybodaeth gywir yn y fformat cywir",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Nid yw'r rhestr hon yn bodoli",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Nid yw'r defnyddiwr hwn yn bodoli",
"error-user-notAllowSelf": "Ni allwch wahodd eich hun",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Llun clawr ar minicard",
"badge-attachment-on-minicard": "Cyfrif yr atodiadau ar miniard",
"card-sorting-by-number-on-minicard": "Didoli cardiau yn ôl rhif ar minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Rhagddodiad gyda llwybr llawn",
"prefix-with-parent": "Rhagddodiad gyda rhiant",
"subtext-with-full-path": "Is-destun gyda llwybr llawn",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Din CSV (Comma Separated Values)/TSV (Tab Separated Values) indeholder ikke gyldig information i korrekt format",
"error-import-empty-board": "Denne eksport indeholder intet tavleindhold (ingen svømmebaner, lister eller kort). Den kan være oprettet af en ældre WeKan-version med en kendt eksportfejl. Eksporter tavlen igen med den aktuelle version, og importer den nye fil.",
"error-list-doesNotExist": "Listen findes ikke",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Brugeren findes ikke",
"error-user-notAllowSelf": "Du kan ikke invitere dig selv",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Omslagsbild på minikort",
"badge-attachment-on-minicard": "Antal bilagor på minikort",
"card-sorting-by-number-on-minicard": "Sortering av kort efter nummer på minikort",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Præfiks med fuld sti",
"prefix-with-parent": "Præfiks med overordnede",
"subtext-with-full-path": "Undertekst med fuld sti",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Deine CSV(Kommatgetrennte Werte)/TSV (Tab getrennte Werte) enthält keine korrekten Informationen im geforderten Format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Diese Liste existiert nicht",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover Bild auf Minikarte",
"badge-attachment-on-minicard": "Anzahl der Anhänge auf Minikarte",
"card-sorting-by-number-on-minicard": "Kartensortierung nach Nummer auf Minikarte",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Vollständiger Pfad über Titel",
"prefix-with-parent": "Über Titel",
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Deine CSV(Kommatgetrennte Werte)/TSV (Tab getrennte Werte) enthält keine korrekten Informationen im geforderten Format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Diese Liste existiert nicht",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover Bild auf Minikarte",
"badge-attachment-on-minicard": "Anzahl der Anhänge auf Minikarte",
"card-sorting-by-number-on-minicard": "Kartensortierung nach Nummer auf Minikarte",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Vollständiger Pfad über Titel",
"prefix-with-parent": "Über Titel",
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Deine CSV(Kommatgetrennte Werte)/TSV (Tab getrennte Werte) enthält keine korrekten Informationen im geforderten Format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Diese Liste existiert nicht",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover Bild auf Minikarte",
"badge-attachment-on-minicard": "Anzahl der Anhänge auf Minikarte",
"card-sorting-by-number-on-minicard": "Kartensortierung nach Nummer auf Minikarte",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Vollständiger Pfad über Titel",
"prefix-with-parent": "Über Titel",
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Deine CSV(Kommatgetrennte Werte)/TSV (Tab getrennte Werte) enthält keine korrekten Informationen im geforderten Format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Diese Liste existiert nicht",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover Bild auf Minikarte",
"badge-attachment-on-minicard": "Anzahl der Anhänge auf Minikarte",
"card-sorting-by-number-on-minicard": "Kartensortierung nach Nummer auf Minikarte",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Vollständiger Pfad über Titel",
"prefix-with-parent": "Über Titel",
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Il tuo file CSV (Comma Separated Values) / TSV (Tab Separated Values) non contiene le giuste informazioni nel formato corretto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Η λίστα δεν υπάρχει",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Ο χρήστης δεν υπάρχει",
"error-user-notAllowSelf": "Δε μπορείτε να αυτοπροσκληθείτε",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Immagine di copertina su minicard",
"badge-attachment-on-minicard": "Conteggio degli allegati sulla minicard",
"card-sorting-by-number-on-minicard": "La scheda viene ordinata per numero sulla minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefisso con percorso completo",
"prefix-with-parent": "Prefisso con genitore",
"subtext-with-full-path": "Sottotesto con percorso completo",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Il tuo file CSV (Comma Separated Values) / TSV (Tab Separated Values) non contiene le giuste informazioni nel formato corretto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Η λίστα δεν υπάρχει",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Ο χρήστης δεν υπάρχει",
"error-user-notAllowSelf": "Δε μπορείτε να αυτοπροσκληθείτε",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Immagine di copertina su minicard",
"badge-attachment-on-minicard": "Conteggio degli allegati sulla minicard",
"card-sorting-by-number-on-minicard": "La scheda viene ordinata per numero sulla minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefisso con percorso completo",
"prefix-with-parent": "Prefisso con genitore",
"subtext-with-full-path": "Sottotesto con percorso completo",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "This list does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Tio listo ne ekzistas",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Tio uzanto ne ekzistas",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Esta lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Este usuario no existe",
"error-user-notAllowSelf": "No podés invitarte a vos mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No se puede invitar a sí mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "La lista no existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Seda nimekirja ei ole olemas",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Seda kasutajat ei ole olemas",
"error-user-notAllowSelf": "Te ei saa ennast kutsuda",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Täieliku teekonna eesliide",
"prefix-with-parent": "Esileht koos vanemaga",
"subtext-with-full-path": "Täieliku teekonnaga alltekst",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Zure CSV (komaz bereizitako balioak)/TSV (tabulazio bereizitako balioak) ez du informazio egokia formatu egokian sartzen",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Zerrenda hau ez da existitzen",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Erabiltzaile hau ez da existitzen",
"error-user-notAllowSelf": "Ezin duzu zure burua gonbidatu",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "minitxartelaren azalaren irudia",
"badge-attachment-on-minicard": "Eranskinen kopurua minitxartelean",
"card-sorting-by-number-on-minicard": "Txartelak zenbakien arabera ordenatzea minitxartelean",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefijo con ruta completa",
"prefix-with-parent": "Prefijo con el padre",
"subtext-with-full-path": "Subtexto con ruta completa",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "این لیست موجود نیست",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "این کاربر وجود ندارد",
"error-user-notAllowSelf": "عدم امکان دعوت خود",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "عکس کاور بر روی مینی کارت",
"badge-attachment-on-minicard": "شمارنده ضمائم بر روی مینی کارت",
"card-sorting-by-number-on-minicard": "مرتب سازی کارت با شماره بر روی مینی کارت",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "پیشوند با مسیر کامل",
"prefix-with-parent": "پیشوند با خانواده",
"subtext-with-full-path": "زیرنویس با مسیر کامل",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "این لیست موجود نیست",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "این کاربر وجود ندارد",
"error-user-notAllowSelf": "عدم امکان دعوت خود",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "عکس کاور بر روی مینی کارت",
"badge-attachment-on-minicard": "شمارنده ضمائم بر روی مینی کارت",
"card-sorting-by-number-on-minicard": "مرتب سازی کارت با شماره بر روی مینی کارت",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "پیشوند با مسیر کامل",
"prefix-with-parent": "پیشوند با خانواده",
"subtext-with-full-path": "زیرنویس با مسیر کامل",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Sinun CSV(pilkulla erotetut arvot)/TSV(tabilla erotetut arvot) ei sisällä oikeita tietoja oikeassa muodossa",
"error-import-empty-board": "Tämä vienti ei sisällä taulun sisältöä (ei uimaratoja, listoja tai kortteja). Se on saatettu luoda vanhemmalla WeKan-versiolla, jossa oli tunnettu vientivirhe. Vie taulu uudelleen nykyisellä versiolla ja tuo uusi tiedosto.",
"error-list-doesNotExist": "Tätä listaa ei ole olemassa",
"error-linked-card-not-allowed": "Voit linkittää vain tavalliseen korttiin. Linkittäminen toiseen linkitettyyn korttiin tai korttiin, joka linkittää takaisin tälle taululle, ei ole sallittua, koska se tekisi korteista käyttökelvottomia.",
"error-user-disabled": "Tämä käyttäjätili on poistettu käytöstä",
"error-user-doesNotExist": "Tätä käyttäjää ei ole olemassa",
"error-user-notAllowSelf": "Et voi kutsua itseäsi",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Kansikuva minikortilla",
"badge-attachment-on-minicard": "Liitteiden määrä minikortilla",
"card-sorting-by-number-on-minicard": "Korttien lajittelu minikortin numeroiden mukaan",
"checklist-count-on-minicard": "Tarkistuslista kohteiden määrä (0/0) minikortilla",
"checklist-count": "Tarkistuslista kohteiden määrä (0/0)",
"attachment-count": "Liitteiden määrä",
"cover-image": "Kansikuva",
"prefix-with-full-path": "Etuliite koko polulla",
"prefix-with-parent": "Etuliite ylätehtävällä",
"subtext-with-full-path": "Aliteksti koko polulla",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Cette liste n'existe pas",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Préfixer avec le chemin complet",
"prefix-with-parent": "Préfixer avec le parent",
"subtext-with-full-path": "Sous-titre avec le chemin complet",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Cette liste n'existe pas",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Préfixer avec le chemin complet",
"prefix-with-parent": "Préfixer avec le parent",
"subtext-with-full-path": "Sous-titre avec le chemin complet",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Cette liste n'existe pas",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Préfixer avec le chemin complet",
"prefix-with-parent": "Préfixer avec le parent",
"subtext-with-full-path": "Sous-titre avec le chemin complet",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Jo CSV (Comma Separated Values)/TSV (Tab Separated Values) befettet net de juste ynformaasje yn it juste formaat",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Dizze list bestiet net",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Dizze brûker bestiet net",
"error-user-notAllowSelf": "Jo kinne net útnoegje dysels",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover ôfbylding op minicard",
"badge-attachment-on-minicard": "Telling fan taheaksels op minicard",
"card-sorting-by-number-on-minicard": "Kaart sortearje op nûmer op minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix mei folslein paad",
"prefix-with-parent": "Prefix mei âlder",
"subtext-with-full-path": "Subtekst mei folslein paad",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Jo CSV (Comma Separated Values)/TSV (Tab Separated Values) befettet net de juste ynformaasje yn it juste formaat",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Dizze list bestiet net",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Dizze brûker bestiet net",
"error-user-notAllowSelf": "Jo kinne net útnoegje dysels",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover ôfbylding op minicard",
"badge-attachment-on-minicard": "Telling fan taheaksels op minicard",
"card-sorting-by-number-on-minicard": "Kaart sortearje op nûmer op minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix mei folslein paad",
"prefix-with-parent": "Prefix mei âlder",
"subtext-with-full-path": "Subtekst mei folslein paad",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "O CSV(Comma Separated Values)/TSV (Tab Separated Values) não inclui a informação adequada no formato correto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Esta lista non existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Este usuario non existe",
"error-user-notAllowSelf": "Non é posíbel convidarse a un mesmo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagem de capa no mini cartão",
"badge-attachment-on-minicard": "Contador de anexos no mini cartão",
"card-sorting-by-number-on-minicard": "Número de ordenação do cartão no mini cartão",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefixar com o caminho completo",
"prefix-with-parent": "Prefixar com o pai",
"subtext-with-full-path": "Sub-texto com o caminho completo",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "O CSV(Comma Separated Values)/TSV (Tab Separated Values) não inclui a informação adequada no formato correto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Esta lista non existe",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Este usuario non existe",
"error-user-notAllowSelf": "Non é posíbel convidarse a un mesmo",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Imagem de capa no mini cartão",
"badge-attachment-on-minicard": "Contador de anexos no mini cartão",
"card-sorting-by-number-on-minicard": "Número de ordenação do cartão no mini cartão",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefixar com o caminho completo",
"prefix-with-parent": "Prefixar com o pai",
"subtext-with-full-path": "Sub-texto com o caminho completo",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "તમારા CSV(કોમા સેપરેટેડ વેલ્યુઝ)/TSV (ટૅબ સેપરેટેડ વેલ્યુઝ)માં યોગ્ય ફોર્મેટમાં યોગ્ય માહિતી શામેલ નથી",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "આ સૂચિ અસ્તિત્વમાં નથી",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "આ વપરાશકર્તા અસ્તિત્વમાં નથી",
"error-user-notAllowSelf": "તમે તમારી જાતને આમંત્રિત કરી શકતા નથી",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "મિનીકાર્ડ પર કવર છબી",
"badge-attachment-on-minicard": "મિનીકાર્ડ પર જોડાણોની ગણતરી",
"card-sorting-by-number-on-minicard": "મિનીકાર્ડ પર નંબર દ્વારા કાર્ડનું વર્ગીકરણ",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "સંપૂર્ણ પાથ સાથે ઉપસર્ગ",
"prefix-with-parent": "પિતૃ સાથે ઉપસર્ગ",
"subtext-with-full-path": "સંપૂર્ણ પાથ સાથે સબટેક્સ્ટ",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "קובץ ה־CSV(ערכים מופרדים בפסיקים)/TSV(ערכים מופרדים בטאבים) לא מכילים את המידע הנכון בצורה הנכונה",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "רשימה זו לא קיימת",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "משתמש זה לא קיים",
"error-user-notAllowSelf": "אינך יכול להזמין את עצמך",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "תמונת כותרת על כרטיסון",
"badge-attachment-on-minicard": "כמות הצרופות בכרטיסון",
"card-sorting-by-number-on-minicard": "מיון כרטיסים לפי מספר בכרטיסון",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "קידומת עם נתיב מלא",
"prefix-with-parent": "קידומת עם הורה",
"subtext-with-full-path": "טקסט סמוי עם נתיב מלא",
+12 -7
View File
@@ -125,8 +125,8 @@
"list-width-personal-note": "הרוחב הזה הוא רק בשבילך.",
"personal-list-width": "רוחבי רשימות אישיות",
"personal-list-width-description": "When on, each user keeps their own list widths. When off, list widths are shared with everyone on the board.",
"fixed-list-width": "Same width for all lists",
"click-to-enable-fixed-list-width": "Same width for all lists disabled. Click to enable.",
"fixed-list-width": "אותו רוחב לכל הרשימות",
"click-to-enable-fixed-list-width": "אותו רוחב לכל הרשימות הושבת. יש ללחוץ כדי להפעיל.",
"click-to-disable-fixed-list-width": "Same width for all lists enabled. Click to disable.",
"fixed-list-width-note": "When on, all lists have the same width, and resizing one list resizes all lists. This setting is only for you.",
"keyboard-shortcuts-enabled": "קיצורי מקלדת פעילים. לחיצה תשבית אותם.",
@@ -508,6 +508,7 @@
"error-csv-schema": "קובץ ה־CSV(ערכים מופרדים בפסיקים)/TSV(ערכים מופרדים בטאבים) לא מכילים את המידע הנכון בצורה הנכונה",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "רשימה זו לא קיימת",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "חשבון המשתמש הזה מושבת",
"error-user-doesNotExist": "משתמש זה לא קיים",
"error-user-notAllowSelf": "אינך יכול להזמין את עצמך",
@@ -844,13 +845,13 @@
"attachment-transfer-limits-description": "Configure maximum file size limits for uploads and downloads. API transfer buffering has separate server-side safety caps.",
"attachment-transfer-limits-saved": "Attachment transfer limits saved.",
"attachment-transfer-limits-save-failed": "Failed to save attachment transfer limits",
"attachment-transfer-limits-invalid-value": "Please enter a valid positive limit value",
"attachment-upload-limit-label": "Attachments upload max file size",
"attachment-transfer-limits-invalid-value": "נא למלא ערך גבול חיובי תקף",
"attachment-upload-limit-label": "גודל קובץ מרבי להעלאת צרופות",
"avatars-upload-blocked-label": "תמונות ייצוגיות",
"avatars-upload-blocked-description": "Block users from uploading new avatars (useful when avatars are synced from another source). Avatars are enabled by default.",
"attachment-download-limit-label": "Attachments download max file size",
"api-upload-limit-label": "API upload max file size",
"api-download-limit-label": "API download max file size",
"api-upload-limit-label": "גודל קובץ מרבי להעלאה דרך API",
"api-download-limit-label": "גודל קובץ מרבי להורדה דרך API",
"attachment-limit-mode-unlimited": "לא מוגבל",
"attachment-limit-mode-max-size": "גודל קובץ מרבי",
"attachment-limit-mode-blocked": "חסום",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "תמונת כותרת על כרטיסון",
"badge-attachment-on-minicard": "כמות הצרופות בכרטיסון",
"card-sorting-by-number-on-minicard": "מיון כרטיסים לפי מספר בכרטיסון",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "קידומת עם נתיב מלא",
"prefix-with-parent": "קידומת עם הורה",
"subtext-with-full-path": "טקסט סמוי עם נתיב מלא",
@@ -1636,7 +1641,7 @@
"default-save-storage": "Default Save Storage",
"default-save-storage-description": "Choose the storage backend where newly uploaded attachments are saved.",
"default-save-storage-saved": "Default save storage saved",
"default-save-storage-save-failed": "Failed to save default storage",
"default-save-storage-save-failed": "שמירת אחסון ברירת המחדל נכשלה",
"move-progress-file": "קובץ",
"move-progress-pause": "השהיה",
"move-progress-resume": "Resume",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "आपके CSV(कॉमा सेपरेटेड वैल्यू)/TSV (टैब सेपरेटेड वैल्यू) में सही फ़ॉर्मैट में उचित जानकारी शामिल नहीं है",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "यह सूची does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "यह user does not exist",
"error-user-notAllowSelf": "તમે તમારી જાતને આમંત્રિત કરી શકતા નથી",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "मिनकार्ड पर कवर छवि",
"badge-attachment-on-minicard": "मिनीकार्ड पर अटैचमेंट की गिनती",
"card-sorting-by-number-on-minicard": "मिनीकार्ड पर नंबर के आधार पर कार्ड सॉर्टिंग",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix साथ में full path",
"prefix-with-parent": "Prefix साथ में parent",
"subtext-with-full-path": "Subtext साथ में full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "आपकी CSV (कोमा सेपरेटेड वैल्यू)/TSV (टैब सेपरेटेड वैल्यू) में सही प्रारूप में उचित जानकारी शामिल नहीं है",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "यह सूची does not exist",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "यह user does not exist",
"error-user-notAllowSelf": "તમે તમારી જાતને આમંત્રિત કરી શકતા નથી",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "मिनीकार्ड पर कवर छवि",
"badge-attachment-on-minicard": "मिनीकार्ड पर अटैचमेंट की गिनती",
"card-sorting-by-number-on-minicard": "मिनीकार्ड पर संख्या के अनुसार कार्ड क्रमबद्ध करें",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix साथ में full path",
"prefix-with-parent": "Prefix साथ में parent",
"subtext-with-full-path": "Subtext साथ में full path",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Ваш CSV(Вредности раздвојене зарезом)/TSV (Вредности раздвојене табулатором) не укључује исправну информацију у предвиђеном облику",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Ова деоница не постоји",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Сарадник не постоји",
"error-user-notAllowSelf": "Не можете сами себе да позовете",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Мотив из предметне грађе",
"badge-attachment-on-minicard": "Број поред спајалице",
"card-sorting-by-number-on-minicard": "Бројчана ознака за редослед",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Испиши пуну путању као уводни слог",
"prefix-with-parent": "Испиши порекло као уводни слог",
"subtext-with-full-path": "Испиши пуну путању испод ситним словима",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Ez a lista nem létezik",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Ez a felhasználó nem létezik",
"error-user-notAllowSelf": "Nem hívhatod meg saját magadat",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Előtag teljes útvonallal",
"prefix-with-parent": "Előtag szülővel",
"subtext-with-full-path": "Szövegrészlet teljes útvonallal",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Ձեր CSV (Ստորակետերով բաժանված արժեքներ)/TSV (ներդիրներով առանձնացված արժեքներ) չի ներառում համապատասխան տեղեկատվությունը ճիշտ ձևաչափով",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Այս ցանկը գոյություն չունի",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Այս օգտվողը գոյություն չունի",
"error-user-notAllowSelf": "Դուք չեք կարող ձեզ հրավիրել",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Շապիկի պատկեր մինի քարտի վրա",
"badge-attachment-on-minicard": "Մինի քարտի վրա հավելվածների քանակը",
"card-sorting-by-number-on-minicard": "Քարտի տեսակավորում ըստ թվերի մինի քարտի վրա",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Նախածանց ամբողջական ճանապարհով",
"prefix-with-parent": "Նախածանց ծնողի հետ",
"subtext-with-full-path": "Ենթատեքստ՝ ամբողջական ճանապարհով",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "CSV anda(Nilai yang dipisahkan koma)/TSV (Nilai yang dipisahkan tab) tidak termasuk informasi yang tepat dalam format yang benar",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Daftar ini tidak ada",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Nama pengguna ini tidak ada",
"error-user-notAllowSelf": "Anda tidak bisa mengundang diri sendiri",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Gambar sampul untuk kartu kecil",
"badge-attachment-on-minicard": "Menghitung lampiran pada kartu kecil",
"card-sorting-by-number-on-minicard": "Kartu disaring dengan nomor pada kartu kecil",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "rintisan dengan prefix",
"prefix-with-parent": "Induk dnegan prefix",
"subtext-with-full-path": "Subtext dengan rintisan lengkap",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "CSV gị (ụkpụrụ ndị kewara rịkọm)/TSV (Tab Separated Values) anaghị agụnye ozi kwesịrị ekwesị n'ụdị ziri ezi.",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Ndepụta a adịghị",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Onye ọrụ a adịghị",
"error-user-notAllowSelf": "Ị nweghị ike ịkpọ onwe gị",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Ihe mkpuchi mkpuchi na minikaadị",
"badge-attachment-on-minicard": "Ọnụọgụ nke mgbakwunye na minikaadị",
"card-sorting-by-number-on-minicard": "Ịhazi kaadị site na nọmba na minikaadị",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefix nwere ụzọ zuru oke",
"prefix-with-parent": "Prefix na nne na nna",
"subtext-with-full-path": "Subtext nwere ụzọ zuru oke",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "Il tuo file CSV (Comma Separated Values) / TSV (Tab Separated Values) non contiene le giuste informazioni nel formato corretto",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "Questa lista non esiste",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "Questo utente non esiste",
"error-user-notAllowSelf": "Non puoi invitare te stesso",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "Immagine di copertina su minicard",
"badge-attachment-on-minicard": "Conteggio degli allegati sulla minicard",
"card-sorting-by-number-on-minicard": "La scheda viene ordinata per numero sulla minicard",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "Prefisso con percorso completo",
"prefix-with-parent": "Prefisso con genitore",
"subtext-with-full-path": "Sottotesto con percorso completo",
+5
View File
@@ -508,6 +508,7 @@
"error-csv-schema": "CSV(カンマ区切り)/TSV(タブ区切り)の書式が不正です",
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
"error-list-doesNotExist": "このリストは存在しません",
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
"error-user-disabled": "This user account is disabled",
"error-user-doesNotExist": "ユーザーが存在しません",
"error-user-notAllowSelf": "自分を招待することはできません。",
@@ -974,6 +975,10 @@
"cover-attachment-on-minicard": "ミニカードの表紙画像",
"badge-attachment-on-minicard": "ミニカードの添付ファイル数",
"card-sorting-by-number-on-minicard": "ミニカードの番号順でソートする",
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
"checklist-count": "Checklist item count (0/0)",
"attachment-count": "Count of attachments",
"cover-image": "Cover image",
"prefix-with-full-path": "タイトルの前に親をフル表示",
"prefix-with-parent": "タイトルの前に親を表示",
"subtext-with-full-path": "タイトルの後ろに親をフル表示",
Loaded 100 of 242 files, more files were not shown because too many files have changed in this diff. Show more