mirror of
https://github.com/wekan/wekan.git
synced 2025-04-20 12:07:11 -04:00
Compare commits
45 commits
Author | SHA1 | Date | |
---|---|---|---|
|
23bac73559 | ||
|
2de9b94b01 | ||
|
05d1736f5f | ||
|
db5346fc5c | ||
|
f09f5bd737 | ||
|
d96a1a5c9e | ||
|
ad3cc9c087 | ||
|
d0c7bf65a4 | ||
|
bb6ac70f63 | ||
|
c38b9da7d6 | ||
|
19153ca489 | ||
|
8e7a5e8cb5 | ||
|
1407059937 | ||
|
a2911bc9c3 | ||
|
f99b735746 | ||
|
4510ddda15 | ||
|
028ec46f46 | ||
|
c0e4e01deb | ||
|
cfcf682134 | ||
|
27bd9817d7 | ||
|
6d982cdfd9 | ||
|
827ee615c1 | ||
|
f5f0ba721e | ||
|
1344f85986 | ||
|
e7462ada12 | ||
|
11199b6225 | ||
|
345aece0f2 | ||
|
912c84422b | ||
|
b402676079 | ||
|
908a5fc60d | ||
|
38e57d3635 | ||
|
14167b19b9 | ||
|
fc548b426d | ||
|
71acd9603e | ||
|
341f655ab7 | ||
|
0c5323c106 | ||
|
7f871fdf30 | ||
|
6347b40a02 | ||
|
bce84a432a | ||
|
b6fc4deb63 | ||
|
6b48f9e259 | ||
|
44b7666426 | ||
|
ef70ed76a2 | ||
|
a1a1b3d1ee | ||
|
0326757399 |
33 changed files with 4327 additions and 8664 deletions
6
.github/workflows/docker-publish.yml
vendored
6
.github/workflows/docker-publish.yml
vendored
|
@ -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@9780b0c442fbb1117ed29e0efdff1e18412f7567
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772
|
||||
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@369eb591f429131d6889c46b94e711f089e6ca96
|
||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804
|
||||
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@ca877d9245402d1537745e0e356eab47c3520991
|
||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
|
61
CHANGELOG.md
61
CHANGELOG.md
|
@ -15,8 +15,69 @@ Fixing other platforms In Progress.
|
|||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# Upcoming WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- Updated Browser compatibility matrix, adding Iris browser at RISC OS Direct, and fixing links.
|
||||
[Part1](https://github.com/wekan/wekan/commit/db5346fc5c7407160f381c0fcf4a87204206ed55),
|
||||
[Part2](https://github.com/wekan/wekan/commit/05d1736f5f21e93e83b2e25029c6cab6c5106398).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.84 2025-03-23 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Time on minicard for Start/End/Due Date](https://github.com/wekan/wekan/pull/5712).
|
||||
Thanks to Rayene123.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Added developer docs about Login code](https://github.com/wekan/wekan/commit/c0e4e01deb936653df69b4fd21598ac27cd349a0).
|
||||
Thanks to xet7.
|
||||
- Updated dependencies.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5718),
|
||||
[Part 2](https://github.com/wekan/wekan/commit/bb6ac70f63b6f3568b7c943417c698615936a956).
|
||||
Thanks to developers of dependencies.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fixed typo at Shortcuts, now became visible translations of assignees visibility 1-9 shortcuts](https://github.com/wekan/wekan/commit/4510ddda1507bc775b9523d3673adba48d7a8385).
|
||||
Thanks to xet7.
|
||||
- [Fixed building OpenAPI docs](https://github.com/wekan/wekan/commit/a2911bc9c3bd94ef583388931d2cd354cc8657e3).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.83 2025-03-08 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Adding Development information to readme](https://github.com/wekan/wekan/pull/5702).
|
||||
Thanks to adam-fu.
|
||||
- Updated GitHub actions.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5703),
|
||||
[Part 2](https://github.com/wekan/wekan/pull/5704).
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Removed siteurl from manifest to fix browser console error about not matching URL](https://github.com/wekan/wekan/commit/b402676079517e463ed291285f69c04126a00975).
|
||||
Thanks to xet7.
|
||||
- [Exception while invoking method 'copyCard' TypeError: Cannot read property 'name' of undefined](https://github.com/wekan/wekan/pull/5711).
|
||||
Thanks to Firas-Git.
|
||||
- [Comment out error message of non-existing Custom Field](https://github.com/wekan/wekan/commit/908a5fc60d5d574a36d4bfd496d3a16fd267ae75).
|
||||
Thanks to xet7.
|
||||
- [Reverted Docker changes of WeKan v7.68 to get WeKan Docker version working](https://github.com/wekan/wekan/commit/e7462ada12ec8edfd08d6c3b3a97a034211d51eb).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.82 2025-02-24 WeKan ® release
|
||||
|
||||
v7.82 Docker version is broken: https://github.com/wekan/wekan/issues/5697 . Snap Candidate works.
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Add possibility to use a token in place of ipaddress to access metrics route](https://github.com/wekan/wekan/pull/5682).
|
||||
|
|
228
Dockerfile
228
Dockerfile
|
@ -1,76 +1,31 @@
|
|||
FROM scratch AS downloads
|
||||
|
||||
# Download NodeJS bundle
|
||||
ADD https://static.meteor.com/dev-bundle-node-os/v14.21.4/node-v14.21.4-linux-x64.tar.gz node.tar.gz
|
||||
|
||||
# Download Meteor bundle
|
||||
ADD https://static.meteor.com/packages-bootstrap/2.16/meteor-bootstrap-os.linux.x86_64.tar.gz meteor.tar.gz
|
||||
|
||||
FROM ubuntu:24.04 AS build
|
||||
|
||||
# Install node from official archive
|
||||
RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \
|
||||
tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner
|
||||
|
||||
# Install meteor from official archive
|
||||
RUN --mount=type=bind,from=downloads,source=meteor.tar.gz,target=meteor.tar.gz \
|
||||
tar xzf meteor.tar.gz -C $HOME --no-same-owner
|
||||
|
||||
# Update the npm version
|
||||
RUN npm install -g npm@6.14.17
|
||||
|
||||
# Install several build dependencies
|
||||
RUN apt update && \
|
||||
apt install --yes --no-install-suggests --no-install-recommends ssh git g++ curl ca-certificates && \
|
||||
rm -r /var/lib/apt/lists
|
||||
|
||||
# Change to temporary working directory
|
||||
WORKDIR /workdir
|
||||
|
||||
# Copy package.json and package-lock.json to install application dependencies
|
||||
COPY package.json .
|
||||
COPY package-lock.json .
|
||||
|
||||
# Install build dependencies
|
||||
RUN $HOME/.meteor/meteor npm install --production
|
||||
|
||||
# Copy meteor application configurations
|
||||
COPY .meteor .meteor
|
||||
|
||||
# Copy application sources
|
||||
COPY packages packages
|
||||
COPY imports imports
|
||||
COPY config config
|
||||
COPY models models
|
||||
COPY public public
|
||||
COPY server server
|
||||
COPY client client
|
||||
|
||||
# Build the application
|
||||
RUN $HOME/.meteor/meteor build --directory /build --allow-superuser
|
||||
|
||||
# Enter server bundle directory
|
||||
WORKDIR /build/bundle/programs/server
|
||||
|
||||
# Install server dependencies
|
||||
RUN $HOME/.meteor/meteor npm install --production
|
||||
|
||||
# Enter installation directory of fibers
|
||||
WORKDIR /build/bundle/programs/server/node_modules/fibers
|
||||
|
||||
# Build fibers integrations
|
||||
RUN node build.js
|
||||
|
||||
FROM ubuntu:24.04 AS wekan
|
||||
|
||||
# Add metadata to image
|
||||
FROM ubuntu:24.04
|
||||
LABEL maintainer="wekan"
|
||||
LABEL org.opencontainers.image.ref.name="ubuntu"
|
||||
LABEL org.opencontainers.image.version="24.04"
|
||||
LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
|
||||
# Set default environment variables
|
||||
ENV WITH_API=true \
|
||||
# 2022-04-25:
|
||||
# - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling,
|
||||
# so changing to 21.10. https://github.com/wekan/wekan/issues/4488
|
||||
|
||||
# 2021-09-18:
|
||||
# - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825
|
||||
# to Quay to avoid Docker Hub rate limits.
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ curl libarchive-tools build-essential git ca-certificates python3"
|
||||
|
||||
ENV \
|
||||
DEBUG=false \
|
||||
NODE_VERSION=v14.21.4 \
|
||||
METEOR_RELEASE=METEOR@2.14 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
NPM_VERSION=6.14.17 \
|
||||
FIBERS_VERSION=4.0.1 \
|
||||
ARCHITECTURE=linux-x64 \
|
||||
SRC_PATH=./ \
|
||||
WITH_API=true \
|
||||
RESULTS_PER_PAGE="" \
|
||||
DEFAULT_BOARD_ID="" \
|
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
|
||||
|
@ -203,36 +158,119 @@ ENV WITH_API=true \
|
|||
WRITABLE_PATH=/data \
|
||||
S3=""
|
||||
|
||||
# Install node and application sources from build stage
|
||||
RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \
|
||||
--mount=type=bind,from=build,source=/build,target=/build \
|
||||
# Install NodeJS
|
||||
tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner && \
|
||||
# Add the wekan user
|
||||
useradd --uid 999 --user-group --system wekan && \
|
||||
# Copy wekan bundle
|
||||
cp -r /build/bundle /wekan && \
|
||||
# Remove the web.browser.legacy platform
|
||||
rm -r /wekan/programs/web.browser.legacy && \
|
||||
# Change ownership of wekan directory
|
||||
chown wekan:wekan -R /wekan && \
|
||||
# Create the data directory
|
||||
mkdir /data && \
|
||||
# Change ownership of data directory
|
||||
chown wekan:root -R /data
|
||||
# NODE_OPTIONS="--max_old_space_size=4096"
|
||||
|
||||
#---------------------------------------------
|
||||
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
# https://github.com/wekan/wekan/wiki/autologin
|
||||
#- OIDC_REDIRECTION_ENABLED=true
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
# Copy the app to the image
|
||||
COPY ${SRC_PATH} /home/wekan/app
|
||||
|
||||
# Install OS
|
||||
RUN <<EOR
|
||||
set -o xtrace
|
||||
|
||||
# Add non-root user wekan
|
||||
useradd --user-group --system --home-dir /home/wekan wekan
|
||||
# OS dependencies
|
||||
apt-get update --assume-yes
|
||||
apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS}
|
||||
|
||||
# Meteor installer doesn't work with the default tar binary, so using bsdtar while installing.
|
||||
# https://github.com/coreos/bugs/issues/1095#issuecomment-350574389
|
||||
cp $(which tar) $(which tar)~
|
||||
ln -sf $(which bsdtar) $(which tar)
|
||||
|
||||
# Install NodeJS
|
||||
cd /tmp
|
||||
|
||||
# Download nodejs
|
||||
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz"
|
||||
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt"
|
||||
|
||||
# Verify nodejs authenticity
|
||||
grep "node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz" "SHASUMS256.txt" | shasum -a 256 -c -
|
||||
rm -f "SHASUMS256.txt"
|
||||
|
||||
# Install Node
|
||||
tar xzf "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" -C /usr/local --strip-components=1 --no-same-owner
|
||||
rm "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" "SHASUMS256.txt"
|
||||
ln -s "/usr/local/bin/node" "/usr/local/bin/nodejs"
|
||||
mkdir -p "/opt/nodejs/lib/node_modules/fibers/.node-gyp" "/root/.node-gyp/${NODE_VERSION} /home/wekan/.config"
|
||||
|
||||
# Install node dependencies
|
||||
npm install -g npm@${NPM_VERSION} --production
|
||||
chown --recursive wekan:wekan /home/wekan/.config
|
||||
|
||||
# Install Meteor
|
||||
cd /home/wekan
|
||||
chown --recursive wekan:wekan /home/wekan
|
||||
echo "Starting meteor ${METEOR_RELEASE} installation... \n"
|
||||
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh
|
||||
mv /root/.meteor /home/wekan/
|
||||
chown --recursive wekan:wekan /home/wekan/.meteor
|
||||
|
||||
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js
|
||||
cd /home/wekan/.meteor
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor -- help
|
||||
|
||||
# Build app (Production)
|
||||
cd /home/wekan/app
|
||||
mkdir -p /home/wekan/.npm
|
||||
chown --recursive wekan:wekan /home/wekan/.npm
|
||||
chmod u+w *.json
|
||||
gosu wekan:wekan meteor npm install --production
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build
|
||||
cd /home/wekan/app_build/bundle/programs/server/
|
||||
chmod u+w *.json
|
||||
gosu wekan:wekan meteor npm install --production
|
||||
cd node_modules/fibers
|
||||
node build.js
|
||||
cd ../..
|
||||
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
|
||||
rm -rf /home/wekan/app_build/bundle/programs/web.browser.legacy
|
||||
mv /home/wekan/app_build/bundle /build
|
||||
|
||||
# Put back the original tar
|
||||
mv $(which tar)~ $(which tar)
|
||||
|
||||
# Cleanup
|
||||
apt-get remove --purge --assume-yes ${BUILD_DEPS}
|
||||
npm uninstall -g api2html
|
||||
apt-get autoremove --assume-yes
|
||||
apt-get clean --assume-yes
|
||||
rm -Rf /tmp/*
|
||||
rm -Rf /var/lib/apt/lists/*
|
||||
rm -Rf /var/cache/apt
|
||||
rm -Rf /var/lib/apt/lists
|
||||
rm -Rf /home/wekan/app_build
|
||||
rm -Rf /home/wekan/app
|
||||
rm -Rf /home/wekan/.meteor
|
||||
|
||||
mkdir /data
|
||||
chown wekan --recursive /data
|
||||
EOR
|
||||
|
||||
# Change to the wekan user
|
||||
USER wekan
|
||||
|
||||
# Set the port to listen on
|
||||
ENV PORT=8080
|
||||
EXPOSE ${PORT}
|
||||
EXPOSE $PORT
|
||||
|
||||
# Define the stop signal for node
|
||||
STOPSIGNAL SIGINT
|
||||
STOPSIGNAL SIGKILL
|
||||
WORKDIR /home/wekan/app
|
||||
|
||||
# Declare a volume on /data
|
||||
VOLUME /data
|
||||
|
||||
# Set startup command
|
||||
CMD ["node", "/wekan/main.js"]
|
||||
#---------------------------------------------------------------------
|
||||
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
|
||||
# Add more Node heap:
|
||||
# NODE_OPTIONS="--max_old_space_size=4096"
|
||||
# Add more stack:
|
||||
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
|
||||
#---------------------------------------------------------------------
|
||||
#
|
||||
# CMD ["node", "/build/main.js"]
|
||||
# CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"]
|
||||
# CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /build/main.js"]
|
||||
CMD ["bash", "-c", "ulimit -s 65500; exec node /build/main.js"]
|
||||
|
|
|
@ -107,6 +107,14 @@ that by providing one-click installation on various platforms.
|
|||
We also welcome sponsors for features and bugfixes.
|
||||
By working directly with WeKan ® you get the benefit of active maintenance and new features added by growing WeKan ® developer community.
|
||||
|
||||
## Getting Started with Development
|
||||
|
||||
The default branch uses [Meteor 2 with Node.js 14](https://wekan.github.io/install/).
|
||||
|
||||
To contribute, [create a fork](https://github.com/wekan/wekan/wiki/Emoji#2-create-fork-of-httpsgithubcomwekanwekan-at-github-web-page) and run `./rebuild-wekan.sh` (or `./rebuild-wekan.bat` on Windows) as detailed [here](https://github.com/wekan/wekan/wiki/Emoji#3-select-option-1-to-install-dependencies-and-then-enter). Once you're ready, please test your code and [submit a pull request (PR)](https://github.com/wekan/wekan/wiki/Emoji#7-test).
|
||||
|
||||
Please refer to the [developer documentation](https://github.com/wekan/wekan/wiki/Developer-Documentation) for more information.
|
||||
|
||||
## Screenshot
|
||||
|
||||
[More screenshots at Features page](https://github.com/wekan/wekan/wiki/Features)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.82.0"
|
||||
appVersion: "v7.84.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
|
|
@ -11,7 +11,7 @@ import { DatePicker } from '/client/lib/datepicker';
|
|||
}
|
||||
|
||||
_storeDate(date) {
|
||||
this.card.setReceived(date);
|
||||
this.card.setReceived(moment(date).format('YYYY-MM-DD HH:mm'));
|
||||
}
|
||||
|
||||
_deleteDate() {
|
||||
|
@ -37,7 +37,7 @@ import { DatePicker } from '/client/lib/datepicker';
|
|||
}
|
||||
|
||||
_storeDate(date) {
|
||||
this.card.setStart(date);
|
||||
this.card.setStart(moment(date).format('YYYY-MM-DD HH:mm'));
|
||||
}
|
||||
|
||||
_deleteDate() {
|
||||
|
@ -60,7 +60,7 @@ import { DatePicker } from '/client/lib/datepicker';
|
|||
}
|
||||
|
||||
_storeDate(date) {
|
||||
this.card.setDue(date);
|
||||
this.card.setDue(moment(date).format('YYYY-MM-DD HH:mm'));
|
||||
}
|
||||
|
||||
_deleteDate() {
|
||||
|
@ -83,7 +83,7 @@ import { DatePicker } from '/client/lib/datepicker';
|
|||
}
|
||||
|
||||
_storeDate(date) {
|
||||
this.card.setEnd(date);
|
||||
this.card.setEnd(moment(date).format('YYYY-MM-DD HH:mm'));
|
||||
}
|
||||
|
||||
_deleteDate() {
|
||||
|
@ -322,19 +322,19 @@ CardCustomFieldDate.register('cardCustomFieldDate');
|
|||
|
||||
(class extends CardStartDate {
|
||||
showDate() {
|
||||
return this.date.get().format('L');
|
||||
return this.date.get().format('YYYY-MM-DD HH:mm');
|
||||
}
|
||||
}.register('minicardStartDate'));
|
||||
|
||||
(class extends CardDueDate {
|
||||
showDate() {
|
||||
return this.date.get().format('L');
|
||||
return this.date.get().format('YYYY-MM-DD HH:mm');
|
||||
}
|
||||
}.register('minicardDueDate'));
|
||||
|
||||
(class extends CardEndDate {
|
||||
showDate() {
|
||||
return this.date.get().format('L');
|
||||
return this.date.get().format('YYYY-MM-DD HH:mm');
|
||||
}
|
||||
}.register('minicardEndDate'));
|
||||
|
||||
|
|
|
@ -366,7 +366,7 @@ Template.keyboardShortcuts.helpers({
|
|||
},
|
||||
{
|
||||
keys: ['ctrl + alt + number keys 1-9'],
|
||||
action: 'toggle-asignees'
|
||||
action: 'toggle-assignees'
|
||||
},
|
||||
],
|
||||
});
|
||||
|
|
|
@ -10,6 +10,7 @@ There edit Browser-compatibility-matrix.md and attach it with .txt extension or
|
|||
Browser | [PWA](PWA) | Mobile | Desktop | OS
|
||||
------- | ----| ------ | ------- | -------
|
||||
Safari | iOS Yes | iOS Newest | Newest | iOS, macOS
|
||||
Iris | No | No | Newest | [Iris browser news](https://www.riscosopen.org/forum/forums/1/topics/19545), Download [RISC OS Direct](https://www.riscosdev.com/direct/) for Raspberry Pi etc. [Other versions of RISC OS for many ARM CPU devices](https://www.riscosopen.org/content/downloads) do not have Iris browser yet, but there could be some way to transfer Iris browser files from RISC OS Direct.
|
||||
|
||||
## Firefox based
|
||||
|
||||
|
@ -17,10 +18,8 @@ Any telemetry at any Firefox based browser can be additionally most locked down
|
|||
|
||||
Browser | [PWA](PWA) | Mobile | Desktop | OS
|
||||
------- | ----| ------ | ------- | -------
|
||||
[Mypal](https://releases.wekan.team/mypal/) | No | No | Newest | For 32bit ReactOS/WinXP/Win7/etc [issue](https://github.com/wekan/wekan/issues/3132), Other 32bit browsers probably not
|
||||
Firefox | Android Yes | Android Newest | Newest | Win/Mac/Linux/BSD/RasPi. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762).
|
||||
Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) (based on Ubuntu 16.04) on PinePhone, OnePlus 3, [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/) (not RasPi4 yet). Works best with bluetooth or USB mouse and keyboard. [Repo](https://gitlab.com/ubports/development/core/morph-browser)
|
||||
[OpenStore App](https://open-store.io/app/wekan.wekanteam) | Yes | Yes | Yes | Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), [Ubuntu Touch](https://ubports.com) app at [OpenStore](https://open-store.io/app/wekan.wekanteam) using Morph browser with Wekan demo & development server https://boards.wekan.team . Tested on [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/). PWA URL is configured here https://github.com/wekan/wekan-openstore/blob/master/wekan.desktop#L3
|
||||
[Mypal](https://github.com/reactosapps/apps/releases/download/0.01/mypal-27.9.4.win32.installer.exe) | No | No | Newest | For 32bit ReactOS/WinXP/Win7/etc [issue](https://github.com/wekan/wekan/issues/3132)
|
||||
Firefox | No | Newest | Newest | iOS/Android/Win/Mac/Linux/BSD/RasPi. At iOS uses Safari engine, elsewhere Firefox engine. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762).
|
||||
[Waterfox](https://www.waterfox.net) | No | No | Yes | Win/Mac/Linux, more private than Firefox, no tracking. [Repo](https://github.com/BrowserWorks/Waterfox)
|
||||
[Floorp](https://floorp.app) | No | No | Yes | [Win/Mac/Linux](https://github.com/Floorp-Projects/Floorp/releases), more private than Firefox, [Repo](https://github.com/Floorp-Projects/Floorp)
|
||||
[Mercury](https://thorium.rocks/mercury) | No | No | Yes | [Win/Linux](https://github.com/Alex313031/Mercury/releases), more private than Firefox, [Repo](https://github.com/Alex313031/Mercury)
|
||||
|
@ -38,6 +37,8 @@ Brave | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi
|
|||
Vivaldi | Android Yes | Android Newest | Newest | Win/Mac/Linux
|
||||
Opera | Android Yes | Android Newest | Newest | Win/Mac/Linux
|
||||
Credge, Chromium Edge | Android Yes | Android | Newest | Win/Mac/Linux/Mobile
|
||||
Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) based on Ubuntu 16.04 and 20.04 at all Ubuntu Touch devices, [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/) (not RasPi4 yet). [Repo](https://gitlab.com/ubports/development/core/morph-browser)
|
||||
[OpenStore App](https://open-store.io/app/wekan.wekanteam) | Yes | Yes | Yes | [Ubuntu Touch](https://ubports.com) app at [OpenStore](https://open-store.io/app/wekan.wekanteam) using Morph browser with Wekan demo & development server https://boards.wekan.team . App source code for Ubuntu 16.04 at https://github.com/wekan/wekan-openstore and Ubuntu 20.04 at https://github.com/wekan/wekan-openstore2
|
||||
[Microsoft Store App](https://www.microsoft.com/fi-fi/p/wekan/9p2mrxvd087r#activetab=pivot:overviewtab) | Yes | Yes | Yes | At Microsoft Store of Windows 10/11 desktop, made with [PWABuilder](https://www.pwabuilder.com/). Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), changed app from EdgeHTML to Credge based with Wekan demo & development server https://boards.wekan.team
|
||||
[Android Play Store App](https://play.google.com/store/apps/details?id=team.wekan.boards.twa) | Yes | Yes | Yes | Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), made with [PWABuilder](https://www.pwabuilder.com/), uses Android Chrome browser with Wekan demo & development server https://boards.wekan.team
|
||||
[Thorium](https://thorium.rocks) | No | Yes | Yes | [Win/Win7/Mac/Linux/Android/RasPi](https://thorium.rocks), speed optimized
|
||||
|
@ -60,7 +61,7 @@ Internet Explorer | No | No | No | No | No
|
|||
- Apache 2.0 or MIT license
|
||||
- Repo: https://github.com/versotile-org/verso
|
||||
|
||||
## Ladybird based, not tested yet:
|
||||
## Ladybird based, not yet compatible with WeKan
|
||||
|
||||
- BSD-2-Clause license
|
||||
- Website: https://ladybird.org
|
||||
|
@ -76,7 +77,7 @@ Benefits:
|
|||
|
||||
## Desktop app with Meteor
|
||||
|
||||
https://forums.meteor.com/t/desktop-electron-meteor-app-with-todesktop/60904
|
||||
- https://forums.meteor.com/t/desktop-electron-meteor-app-with-todesktop/60904
|
||||
|
||||
## Optional Payments
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
- 2024-08 Design discussion here: https://github.com/wekan/wekan/discussions/5507
|
||||
- Original WeKan Design:
|
||||
- Uses WeKan style confirm popups `Popup.afterConfirm(` , translations etc. Please look at existing code to keep same style.
|
||||
- Kanban, the good parts. Like was done when figuring out best design for Swimlanes https://github.com/wekan/wekan/issues/955
|
||||
- Intuitive, easy to figure out, prevent messing up something https://github.com/wekan/wekan/wiki/Monkey-Proof-Software
|
||||
- Polished UI/UX
|
||||
|
|
|
@ -6,6 +6,7 @@ Please read the meteor style guide before making any significant contribution.
|
|||
|
||||
# Stories about how Wekan works, and developing Wekan
|
||||
|
||||
- [Login code](https://github.com/wekan/wekan/issues/5714)
|
||||
- https://www.mongodb.com/docs/drivers/node/v3.7/fundamentals/promises/
|
||||
- [Do not use code formatters like Prettier and ESLint](https://github.com/wekan/wekan/pull/4633#issuecomment-1214214591)
|
||||
- [How realtime board updates work](https://github.com/wekan/wekan/issues/3788#issuecomment-834649553)
|
||||
|
|
23
docs/Features/Multiline.md
Normal file
23
docs/Features/Multiline.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
## Multiple lines to Checklist
|
||||
|
||||
1. Click Add new Checklist
|
||||
2. Click Add new Checklist Item
|
||||
3. Toggle `One line of text = one checklist item`
|
||||
4. Paste multiple lines of text
|
||||
5. Click Save
|
||||
|
||||
<img src="https://wekan.github.io/multiline/multiline1.png" width="60%" alt="Multiple lines to Checklist" />
|
||||
|
||||
## Card ☰ Menu / Copy Checklist Template to Many Cards
|
||||
|
||||
<img src="https://wekan.github.io/multiline/multiline2.png" width="60%" alt="Checklist Template to Many Cards 1" />
|
||||
|
||||
## Edit titles and descriptions of Many Cards
|
||||
```
|
||||
[ {"title": "First card title", "description":"First card description"},
|
||||
{"title":"Second card title","description":"Second card description"},
|
||||
{"title":"Last card title","description":"Last card description"} ]
|
||||
```
|
||||
|
||||
<img src="https://wekan.github.io/multiline/multiline3.png" width="60%" alt="Checklist Template to Many Cards 2" />
|
||||
|
|
@ -46,4 +46,22 @@ Wekan clientside code is at `wekan/client/components/main/layouts.*`
|
|||
|
||||
Wekan serverside code is at:
|
||||
- `wekan/server/authentication.js` at bottom
|
||||
- `wekan/packages/meteor-accounts-saml/*`
|
||||
- `wekan/packages/meteor-accounts-saml/*`
|
||||
|
||||
## Gitea
|
||||
|
||||
- https://github.com/crewjam/saml
|
||||
- https://github.com/go-gitea/gitea/pull/29403
|
||||
- https://docs.gitea.com/enterprise/features/saml-auth
|
||||
|
||||
## Laravel
|
||||
|
||||
- https://github.com/24Slides/laravel-saml2
|
||||
|
||||
## ruby-saml/omniauth/RoR: Sign in as anyone: Bypassing SAML SSO authentication with parser differentials
|
||||
|
||||
- https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials/
|
||||
- https://news.ycombinator.com/item?id=43349634
|
||||
- https://github.com/github/securitylab
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ This is without container (without Docker or Snap).
|
|||
|
||||
Right click and download files 1-4:
|
||||
|
||||
1. [wekan-7.82-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64-windows.zip)
|
||||
1. [wekan-7.84-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.84/wekan-7.84-amd64-windows.zip)
|
||||
|
||||
2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe)
|
||||
|
||||
|
@ -22,7 +22,7 @@ Right click and download files 1-4:
|
|||
|
||||
6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
|
||||
7. Unzip `wekan-7.82-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
7. Unzip `wekan-7.84-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
|
||||
```
|
||||
bundle (directory)
|
||||
|
|
|
@ -129,6 +129,7 @@
|
|||
|
||||
# <a name="Features"></a>Features
|
||||
|
||||
* [Multiline](Multiline)
|
||||
* [Linked Cards](Linked-Cards)
|
||||
* [Drag Drop](https://github.com/wekan/wekan/wiki/Drag-Drop) on Mobile and Desktop
|
||||
* [Rclone: Store attachments to cloud storage like S3, MinIO, etc](Rclone)
|
||||
|
|
|
@ -411,10 +411,10 @@
|
|||
"user-can-not-export-card-to-pdf": "User can not export card to PDF",
|
||||
"exportBoardPopup-title": "Export board",
|
||||
"exportCardPopup-title": "Export card",
|
||||
"sort": "Sort",
|
||||
"sorted": "Sorted",
|
||||
"remove-sort": "Remove sort",
|
||||
"sort-desc": "Click to Sort List",
|
||||
"sort": "رتب",
|
||||
"sorted": "مرتبة",
|
||||
"remove-sort": "إزالة الفرز\n ",
|
||||
"sort-desc": "انقر لفرز القائمة\n ",
|
||||
"list-sort-by": "Sort the List By:",
|
||||
"list-label-modifiedAt": "Last Access Time",
|
||||
"list-label-title": "Name of the List",
|
||||
|
@ -1207,7 +1207,7 @@
|
|||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"originOrder": "النظام الأصلي\n ",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
|
|
|
@ -319,7 +319,7 @@
|
|||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"copy-text-to-clipboard": "Copy text to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchElementPopup-title": "Search",
|
||||
"searchElementPopup-title": "Klask",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyManyCardsPopup-title": "Copy Template to Many Cards",
|
||||
"copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
|
@ -572,7 +572,7 @@
|
|||
"rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions",
|
||||
"rescue-card-description-dialogue": "Overwrite current card description with your changes?",
|
||||
"save": "Save",
|
||||
"search": "Search",
|
||||
"search": "Klask",
|
||||
"rules": "Rules",
|
||||
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
|
||||
"search-example": "Write text you search and press Enter",
|
||||
|
|
|
@ -300,7 +300,7 @@
|
|||
"color-white": "white",
|
||||
"color-yellow": "flava",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comments": "Komentoj",
|
||||
"comment": "Komento",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
|
@ -1253,7 +1253,7 @@
|
|||
"newTranslationPopup-title": "New custom translation string",
|
||||
"editTranslationPopup-title": "Edit custom translation string",
|
||||
"settingsTranslationPopup-title": "Delete this custom translation string?",
|
||||
"translation": "Translation",
|
||||
"translation": "Traduko",
|
||||
"text": "Teksto",
|
||||
"translation-text": "Translation text",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
|
|
|
@ -16,9 +16,9 @@
|
|||
"act-uncheckedItem": "desmarcado el elemento __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-completeChecklist": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-uncompleteChecklist": "no completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-addComment": "comentario en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-editComment": "comentario editado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-deleteComment": "comentario eliminado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-addComment": "ha comentado en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-editComment": "ha editado la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-deleteComment": "ha borrado el comentario en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-createBoard": "creó el tablero __board__",
|
||||
"act-createSwimlane": "creó el carril de flujo __swimlane__ en el tablero __board__",
|
||||
"act-createCard": "creada la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
|
@ -49,7 +49,7 @@
|
|||
"activity-archived": "%s se ha archivado",
|
||||
"activity-attached": "adjuntado(s) %s a %s",
|
||||
"activity-created": "ha creado %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-changedListTitle": "lista renombrada como %s",
|
||||
"activity-customfield-created": "creó el campo personalizado %s",
|
||||
"activity-excluded": "ha excluido %s de %s",
|
||||
"activity-imported": "ha importado %s en %s desde %s",
|
||||
|
@ -86,27 +86,27 @@
|
|||
"add-card": "Añadir una tarjeta",
|
||||
"add-card-to-top-of-list": "Subir la tarjeta al principio de la lista",
|
||||
"add-card-to-bottom-of-list": "Bajar la tarjeta al final de la lista",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
"swimlane-height-error-message": "Swimlane height must be a positive integer",
|
||||
"setListWidthPopup-title": "Ajustar anchuras",
|
||||
"set-list-width": "Ajustar anchuras",
|
||||
"set-list-width-value": "Establecer anchos mín. y máx. (píxeles)",
|
||||
"list-width-error-message": "Las anchuras de las listas deben ser enteros mayores de 100",
|
||||
"keyboard-shortcuts-enabled": "Atajos de teclado habilitados. Haz clic para deshabilitarlos.",
|
||||
"keyboard-shortcuts-disabled": "Atajos de teclado deshabilitados. Haz clic para habilitarlos.",
|
||||
"setSwimlaneHeightPopup-title": "Ajustar la altura del carril",
|
||||
"set-swimlane-height": "Ajustar la altura del carril",
|
||||
"set-swimlane-height-value": "Altura de carril (píxeles)",
|
||||
"swimlane-height-error-message": "La altura de carril debe ser un entero positivo",
|
||||
"add-swimlane": "Añadir un carril de flujo",
|
||||
"add-subtask": "Añadir subtarea",
|
||||
"add-checklist": "Añadir una lista de verificación",
|
||||
"add-checklist-item": "Añadir un elemento a la lista de verificación",
|
||||
"close-add-checklist-item": "Close add an item to checklist form",
|
||||
"close-edit-checklist-item": "Close edit an item to checklist form",
|
||||
"close-add-checklist-item": "Cerrar el formulario para añadir un elemento a la lista de verificación",
|
||||
"close-edit-checklist-item": "Cerrar el formulario de edición de un elemento de la lista de verificación",
|
||||
"convertChecklistItemToCardPopup-title": "Convertir en tarjeta",
|
||||
"add-cover": "Add cover image to minicard",
|
||||
"add-cover": "Añadir imagen de portada a la minitarjeta",
|
||||
"add-label": "Añadir una etiqueta",
|
||||
"add-list": "Añadir una lista",
|
||||
"add-after-list": "Add After List",
|
||||
"add-after-list": "Añadir después de la lista",
|
||||
"add-members": "Añadir miembros",
|
||||
"added": "Añadida el",
|
||||
"addMemberPopup-title": "Miembros",
|
||||
|
@ -120,7 +120,7 @@
|
|||
"and-n-other-card": "y __count__ tarjeta más",
|
||||
"and-n-other-card_plural": "y otras __count__ tarjetas",
|
||||
"apply": "Aplicar",
|
||||
"app-is-offline": "Cargando, espera por favor. Refrescar esta página causará pérdida de datos. Si la carga no funciona, por favor comprueba que el servidor no se ha parado.",
|
||||
"app-is-offline": "Cargando, espera por favor. Refrescar esta página causará la pérdida de datos. Si la carga no funciona, por favor comprueba que el servidor no se ha parado.",
|
||||
"app-try-reconnect": "Intente reconectar.",
|
||||
"archive": "Archivar",
|
||||
"archive-all": "Archivar todo",
|
||||
|
@ -149,10 +149,10 @@
|
|||
"avatar-too-big": "El avatar es demasiado grande (__size__ máx)",
|
||||
"back": "Atrás",
|
||||
"board-change-color": "Cambiar el color",
|
||||
"board-change-background-image": "Change Background Image",
|
||||
"board-background-image-url": "Background Image URL",
|
||||
"add-background-image": "Add Background Image",
|
||||
"remove-background-image": "Remove Background Image",
|
||||
"board-change-background-image": "Cambiar imagen de fondo",
|
||||
"board-background-image-url": "URL de la imagen de fondo",
|
||||
"add-background-image": "Añadir imagen de fondo",
|
||||
"remove-background-image": "Quitar imagen de fondo",
|
||||
"show-at-all-boards-page" : "Mostrar todos los tableros",
|
||||
"board-info-on-my-boards" : "Configuración de todos los tableros",
|
||||
"boardInfoOnMyBoardsPopup-title" : "Configuración de todos los tableros",
|
||||
|
@ -163,11 +163,11 @@
|
|||
"board-not-found": "Tablero no encontrado",
|
||||
"board-private-info": "Este tablero será <strong>privado</strong>.",
|
||||
"board-public-info": "Este tablero será <strong>público</strong>.",
|
||||
"board-drag-drop-reorder-or-click-open": "Mueve y posiciona para reordenar los iconos de los tableros. Click en el icono del tablero para abrirlo",
|
||||
"board-drag-drop-reorder-or-click-open": "Arrastra y suelta para reordenar los iconos del tablero. Click en el icono del tablero para abrirlo",
|
||||
"boardChangeColorPopup-title": "Cambiar el fondo del tablero",
|
||||
"boardChangeBackgroundImagePopup-title": "Change Background Image",
|
||||
"boardChangeBackgroundImagePopup-title": "Cambiar imagen de fondo",
|
||||
"allBoardsChangeColorPopup-title": "Cambiar el color",
|
||||
"allBoardsChangeBackgroundImagePopup-title": "Change Background Image",
|
||||
"allBoardsChangeBackgroundImagePopup-title": "Cambiar imagen de fondo",
|
||||
"boardChangeTitlePopup-title": "Renombrar el tablero",
|
||||
"boardChangeVisibilityPopup-title": "Cambiar visibilidad",
|
||||
"boardChangeWatchPopup-title": "Cambiar vigilancia",
|
||||
|
@ -217,10 +217,10 @@
|
|||
"vote-against": "contrarios",
|
||||
"deleteVotePopup-title": "¿Borrar voto?",
|
||||
"vote-delete-pop": "El Borrado es permanente. Perderá todas las acciones asociadas con este voto.",
|
||||
"cardStartPlanningPokerPopup-title": "Comenzar una Planning Poker",
|
||||
"card-edit-planning-poker": "Editar la planificación del Poker",
|
||||
"editPokerEndDatePopup-title": "Cambiar la fecha final para la planificación del Poker",
|
||||
"poker-question": "Planificación del Poker",
|
||||
"cardStartPlanningPokerPopup-title": "Comenzar un Planning Poker",
|
||||
"card-edit-planning-poker": "Editar el Planning Poker",
|
||||
"editPokerEndDatePopup-title": "Cambiar la fecha final de voto del Planning Poker",
|
||||
"poker-question": "Planning Poker",
|
||||
"poker-one": "1",
|
||||
"poker-two": "2",
|
||||
"poker-three": "3",
|
||||
|
@ -236,8 +236,8 @@
|
|||
"poker-result-who": "¿Quien?",
|
||||
"poker-replay": "Reproducir",
|
||||
"set-estimation": "Fijar estimación",
|
||||
"deletePokerPopup-title": "¿Borrar el póquer de planificación?",
|
||||
"poker-delete-pop": "El borrado es permanente. Perderás todas las acciones asociadas a este póker de planificación.",
|
||||
"deletePokerPopup-title": "¿Borrar el Planning Poker?",
|
||||
"poker-delete-pop": "El borrado es permanente. Perderás todas las acciones asociadas a este Planning Poker.",
|
||||
"cardDeletePopup-title": "¿Eliminar la tarjeta?",
|
||||
"cardArchivePopup-title": "¿Archivar tarjeta?",
|
||||
"cardDetailsActionsPopup-title": "Acciones de la tarjeta",
|
||||
|
@ -266,9 +266,9 @@
|
|||
"checklists": "Lista de verificación",
|
||||
"click-to-star": "Haz clic para destacar este tablero.",
|
||||
"click-to-unstar": "Haz clic para dejar de destacar este tablero.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"click-to-enable-auto-width": "Ancho de lista automático deshabilitado. Haz clic para habilitarlo.",
|
||||
"click-to-disable-auto-width": "Ancho de lista automático habilitado. Haz clic para deshabilitarlo.",
|
||||
"auto-list-width": "Ancho de lista automático",
|
||||
"clipboard": "el portapapeles o con arrastrar y soltar",
|
||||
"close": "Cerrar",
|
||||
"close-board": "Cerrar el tablero",
|
||||
|
@ -300,7 +300,7 @@
|
|||
"color-white": "blanco",
|
||||
"color-yellow": "amarilla",
|
||||
"unset-color": "Desmarcar",
|
||||
"comments": "Comments",
|
||||
"comments": "Comentarios",
|
||||
"comment": "Comentar",
|
||||
"comment-placeholder": "Escribir comentario",
|
||||
"comment-only": "Sólo comentarios",
|
||||
|
@ -313,7 +313,7 @@
|
|||
"worker-desc": "Solo puede mover tarjetas, asignarse a la tarjeta y comentar.",
|
||||
"computer": "el ordenador",
|
||||
"confirm-subtask-delete-popup": "¿Seguro que quieres eliminar la subtarea?",
|
||||
"confirm-checklist-delete-popup": "¿Está seguro de que quiere eliminar la lista de tareas?",
|
||||
"confirm-checklist-delete-popup": "¿Está seguro de querer eliminar la lista de tareas?",
|
||||
"subtaskDeletePopup-title": "¿Borrar subtarea?",
|
||||
"checklistDeletePopup-title": "¿Borrar la lista de tareas?",
|
||||
"copy-card-link-to-clipboard": "Copiar el enlace de la tarjeta al portapapeles",
|
||||
|
@ -338,7 +338,7 @@
|
|||
"custom-field-date": "Fecha",
|
||||
"custom-field-dropdown": "Lista desplegable",
|
||||
"custom-field-dropdown-none": "(nada)",
|
||||
"custom-field-dropdown-options": "Opciones de la lista",
|
||||
"custom-field-dropdown-options": "Opciones de listas",
|
||||
"custom-field-dropdown-options-placeholder": "Pulsa Intro para añadir más opciones",
|
||||
"custom-field-dropdown-unknown": "(desconocido)",
|
||||
"custom-field-number": "Número",
|
||||
|
@ -383,7 +383,7 @@
|
|||
"email-sent": "Correo enviado",
|
||||
"email-verifyEmail-subject": "Verifica tu dirección de correo en __siteName__",
|
||||
"email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de correo electrónico, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.",
|
||||
"enable-vertical-scrollbars": "Enable vertical scrollbars",
|
||||
"enable-vertical-scrollbars": "Habilitar barras de desplazamiento verticales",
|
||||
"enable-wip-limit": "Habilitar el límite del trabajo en proceso",
|
||||
"error-board-doesNotExist": "El tablero no existe",
|
||||
"error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso",
|
||||
|
@ -414,7 +414,7 @@
|
|||
"sort": "Ordenar",
|
||||
"sorted": "Ordenado",
|
||||
"remove-sort": "Eliminar el ordenamiento",
|
||||
"sort-desc": "Click para ordenar la lista",
|
||||
"sort-desc": "Clic para ordenar la lista",
|
||||
"list-sort-by": "Ordenar la lista por:",
|
||||
"list-label-modifiedAt": "Hora de último acceso",
|
||||
"list-label-title": "Nombre de la lista",
|
||||
|
@ -451,7 +451,7 @@
|
|||
"advanced-filter-description": "El filtrado avanzado permite escribir una cadena que contiene los siguientes operadores: == != <= >= && || ( ) Se utiliza un espacio como separador entre los operadores. Se pueden filtrar todos los campos personalizados escribiendo sus nombres y valores. Por ejemplo: Campo1 == Valor1. Nota: Si los campos o valores contienen espacios, deben encapsularse entre comillas simples. Por ejemplo: 'Campo 1' == 'Valor 1'. Para omitir los caracteres de control único (' \\\\/), se usa \\\\. Por ejemplo: Campo1 = I\\\\'m. También se pueden combinar múltiples condiciones. Por ejemplo: C1 == V1 || C1 == V2. Normalmente todos los operadores se interpretan de izquierda a derecha. Se puede cambiar el orden colocando paréntesis. Por ejemplo: C1 == V1 && ( C2 == V2 || C2 == V3 ). También se puede buscar en campos de texto usando expresiones regulares: C1 == /Tes.*/i",
|
||||
"fullname": "Nombre completo",
|
||||
"header-logo-title": "Volver a tu página de tableros",
|
||||
"show-activities": "Show Activities",
|
||||
"show-activities": "Mostrar actividades",
|
||||
"headerBarCreateBoardPopup-title": "Crear tablero",
|
||||
"home": "Inicio",
|
||||
"import": "Importar",
|
||||
|
@ -500,7 +500,7 @@
|
|||
"list-move-cards": "Mover todas las tarjetas de esta lista",
|
||||
"list-select-cards": "Seleccionar todas las tarjetas de esta lista",
|
||||
"set-color-list": "Cambiar el color",
|
||||
"listActionPopup-title": "Acciones de la lista",
|
||||
"listActionPopup-title": "Acciones de listas",
|
||||
"settingsUserPopup-title": "Preferencias de usuario",
|
||||
"settingsTeamPopup-title": "Configuración del Equipo",
|
||||
"settingsOrgPopup-title": "Configuración de la Organización",
|
||||
|
@ -510,7 +510,7 @@
|
|||
"listImportCardsTsvPopup-title": "Importar CSV/TSV",
|
||||
"listMorePopup-title": "Más",
|
||||
"link-list": "Enlazar a esta lista",
|
||||
"list-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar la lista. Esta acción no puede deshacerse.",
|
||||
"list-delete-pop": "Se eliminarán todas las acciones del historial de actividades y no se podrá volver a abrir la lista. Esta acción no puede deshacerse.",
|
||||
"list-delete-suggest-archive": "Puedes mover una lista al Archivo para quitarla del tablero y preservar la actividad.",
|
||||
"lists": "Listas",
|
||||
"swimlanes": "Carriles",
|
||||
|
@ -540,7 +540,7 @@
|
|||
"normal": "Normal",
|
||||
"normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.",
|
||||
"not-accepted-yet": "La invitación no ha sido aceptada aún",
|
||||
"notify-participate": "Receive updates to any cards you participate as creator or member",
|
||||
"notify-participate": "Recibir actualizaciones de cualquier tarjeta en la que participes como creador o miembro",
|
||||
"notify-watch": "Recibir actuaizaciones de cualquier tablero, lista o tarjeta que estés vigilando",
|
||||
"optional": "opcional",
|
||||
"or": "o",
|
||||
|
@ -558,7 +558,7 @@
|
|||
"public": "Público",
|
||||
"public-desc": "Este tablero es público. Es visible para cualquiera a través del enlace, y se mostrará en los buscadores como Google. Sólo las personas añadidas al tablero pueden editarlo.",
|
||||
"quick-access-description": "Destaca un tablero para añadir un acceso directo en esta barra.",
|
||||
"remove-cover": "Remove cover image from minicard",
|
||||
"remove-cover": "Quitar imagen de portada de la minitarjeta",
|
||||
"remove-from-board": "Desvincular del tablero",
|
||||
"remove-label": "Eliminar la etiqueta",
|
||||
"listDeletePopup-title": "¿Eliminar la lista?",
|
||||
|
@ -580,14 +580,14 @@
|
|||
"select-board": "Seleccionar tablero",
|
||||
"set-wip-limit-value": "Cambiar el límite para el número máximo de tareas en esta lista.",
|
||||
"setWipLimitPopup-title": "Establecer el límite del trabajo en proceso",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-add-self": "Añadirte a ti mismo a la tarjeta actual",
|
||||
"shortcut-assign-self": "Asignarte a ti mismo a la tarjeta actual",
|
||||
"shortcut-autocomplete-emoji": "Autocompletar emoji",
|
||||
"shortcut-autocomplete-members": "Autocompletar miembros",
|
||||
"shortcut-clear-filters": "Limpiar todos los filtros",
|
||||
"shortcut-close-dialog": "Cerrar el cuadro de diálogo",
|
||||
"shortcut-filter-my-cards": "Filtrar mis tarjetas",
|
||||
"shortcut-filter-my-assigned-cards": "Filter my assigned cards",
|
||||
"shortcut-filter-my-assigned-cards": "Filtrar mis tarjetas asignadas",
|
||||
"shortcut-show-shortcuts": "Mostrar esta lista de atajos",
|
||||
"shortcut-toggle-filterbar": "Conmutar la barra lateral del filtro",
|
||||
"shortcut-toggle-searchbar": "Conmutar la barra lateral de búsqueda",
|
||||
|
@ -604,13 +604,13 @@
|
|||
"this-board": "este tablero",
|
||||
"this-card": "esta tarjeta",
|
||||
"spent-time-hours": "Tiempo consumido (horas)",
|
||||
"overtime-hours": "Tiempo excesivo (horas)",
|
||||
"overtime-hours": "Horas extras",
|
||||
"overtime": "Tiempo excesivo",
|
||||
"has-overtime-cards": "Hay tarjetas con el tiempo excedido",
|
||||
"has-spenttime-cards": "Se ha excedido el tiempo de las tarjetas",
|
||||
"time": "Hora",
|
||||
"title": "Título",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-assignees": "Alternar asignados 1-9 para la tarjeta (por orden de adición al tablero).",
|
||||
"toggle-labels": "Alterna las etiquetas 1-9 para la tarjeta. La selección múltiple añade las etiquetas 1-9",
|
||||
"remove-labels-multiselect": "La selección múltiple elimina las etiquetas 1-9",
|
||||
"tracking": "Siguiendo",
|
||||
|
@ -624,12 +624,12 @@
|
|||
"uploaded-avatar": "Avatar cargado",
|
||||
"custom-top-left-corner-logo-image-url": "Personalizar la URL del logotipo en la esquina superior izquierda",
|
||||
"custom-top-left-corner-logo-link-url": "Personalizar el enlace del logotipo de la esquina superior izquierda",
|
||||
"custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
|
||||
"custom-top-left-corner-logo-height": "Altura personalizada del logo de la esquina superior izquierda. Por defecto: 27",
|
||||
"custom-login-logo-image-url": "Custom Login Logo Image URL",
|
||||
"custom-login-logo-link-url": "Custom Login Logo Link URL",
|
||||
"custom-help-link-url": "Custom Help Link URL",
|
||||
"custom-help-link-url": "Enlace URL de ayuda personalizada",
|
||||
"text-below-custom-login-logo": "Text below Custom Login Logo",
|
||||
"automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
|
||||
"automatic-linked-url-schemes": "Esquemas de URL personalizados que deberían ser clicables automáticamente. Un esquema de URL por línea.",
|
||||
"username": "Nombre de usuario",
|
||||
"import-usernames": "Importar Usuarios",
|
||||
"view-it": "Verla",
|
||||
|
@ -656,7 +656,7 @@
|
|||
"disable-forgot-password": "Disable Forgot Password",
|
||||
"invite": "Invitar",
|
||||
"invite-people": "Invitar a personas",
|
||||
"to-boards": "A el(los) tablero(s)",
|
||||
"to-boards": "Al (A los) tablero(s)",
|
||||
"email-addresses": "Direcciones de correo electrónico",
|
||||
"smtp-host-description": "Dirección del servidor SMTP para gestionar tus correos",
|
||||
"smtp-port-description": "Puerto usado por el servidor SMTP para mandar correos",
|
||||
|
@ -731,7 +731,7 @@
|
|||
"setListColorPopup-title": "Elegir un color",
|
||||
"assigned-by": "Asignado por",
|
||||
"requested-by": "Solicitado por",
|
||||
"card-sorting-by-number": "Card sorting by number",
|
||||
"card-sorting-by-number": "Orden de tarjetas por número",
|
||||
"board-delete-notice": "Se eliminarán todas las listas, tarjetas y acciones asociadas a este tablero. Esta acción no puede deshacerse.",
|
||||
"delete-board-confirm-popup": "Se eliminarán todas las listas, tarjetas, etiquetas y actividades, y no podrás recuperar los contenidos del tablero. Esta acción no puede deshacerse.",
|
||||
"boardDeletePopup-title": "¿Eliminar el tablero?",
|
||||
|
@ -742,7 +742,7 @@
|
|||
"queue": "Cola",
|
||||
"subtask-settings": "Preferencias de las subtareas",
|
||||
"card-settings": "Preferencias de la tarjeta",
|
||||
"minicard-settings": "Minicard Settings",
|
||||
"minicard-settings": "Configuración de minitarjeta",
|
||||
"boardSubtaskSettingsPopup-title": "Preferencias de las subtareas del tablero",
|
||||
"boardCardSettingsPopup-title": "Preferencias de la tarjeta",
|
||||
"boardMinicardSettingsPopup-title": "Minicard Settings",
|
||||
|
@ -750,9 +750,9 @@
|
|||
"deposit-subtasks-list": "Lista de destino para subtareas depositadas aquí:",
|
||||
"show-parent-in-minicard": "Mostrar el padre en una minitarjeta:",
|
||||
"description-on-minicard": "Description on minicard",
|
||||
"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",
|
||||
"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",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
@ -786,7 +786,7 @@
|
|||
"r-added-to": "Añadido a",
|
||||
"r-removed-from": "eliminado de",
|
||||
"r-the-board": "el tablero",
|
||||
"r-list": "la lista",
|
||||
"r-list": "lista",
|
||||
"set-filter": "Filtrar",
|
||||
"r-moved-to": "Movido a",
|
||||
"r-moved-from": "Movido desde",
|
||||
|
@ -861,12 +861,12 @@
|
|||
"r-d-remove-checklist": "Eliminar lista de verificación",
|
||||
"r-by": "por",
|
||||
"r-add-checklist": "Añadir una lista de verificación",
|
||||
"r-with-items": "con items",
|
||||
"r-with-items": "con elementos",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Agregar el carril",
|
||||
"r-swimlane-name": "nombre del carril",
|
||||
"r-board-note": "Nota: deje un campo vacío para que coincida con todos los valores posibles",
|
||||
"r-checklist-note": "Nota: los ítems de la lista tienen que escribirse como valores separados por coma.",
|
||||
"r-checklist-note": "Nota: los elementos de la lista tienen que escribirse como valores separados por coma.",
|
||||
"r-when-a-card-is-moved": "Cuando una tarjeta es movida a otra lista",
|
||||
"r-set": "Cambiar",
|
||||
"r-update": "Actualizar",
|
||||
|
@ -877,7 +877,7 @@
|
|||
"r-df-received-at": "recibido",
|
||||
"r-to-current-datetime": "a la fecha/hora actual",
|
||||
"r-remove-value-from": "Eliminar el valor de",
|
||||
"r-link-card": "Link card to",
|
||||
"r-link-card": "Enlazar tarjeta a",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
"cas": "CAS",
|
||||
|
@ -890,7 +890,7 @@
|
|||
"hide-board-member-list": "Hide board member list on All Boards",
|
||||
"add-custom-html-after-body-start": "Añade HTML personalizado después de <body>",
|
||||
"add-custom-html-before-body-end": "Añade HTML personalizado después de </body>",
|
||||
"error-undefined": "Algo no está bien",
|
||||
"error-undefined": "Algo ha salido mal",
|
||||
"error-ldap-login": "Ocurrió un error al intentar acceder",
|
||||
"display-authentication-method": "Mostrar el método de autenticación",
|
||||
"oidc-button-text": "Customize the OIDC button text",
|
||||
|
@ -916,15 +916,15 @@
|
|||
"almostdue": "está próxima la hora de vencimiento actual %s",
|
||||
"pastdue": "se sobrepasó la hora de vencimiento actual%s",
|
||||
"duenow": "la hora de vencimiento actual %s es hoy",
|
||||
"act-newDue": "__list__/__card__ tiene una 1ra notificación de vencimiento [__board__]",
|
||||
"act-newDue": "__list__/__card__ tiene una primera notificación de vencimiento [__board__]",
|
||||
"act-withDue": "__list__/__card__ notificaciones de vencimiento [__board__]",
|
||||
"act-almostdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ está próximo",
|
||||
"act-pastdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ se sobrepasó",
|
||||
"act-duenow": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ es ahora",
|
||||
"act-atUserComment": "Se te mencionó en [__board__] __list__/__card__",
|
||||
"delete-user-confirm-popup": "¿Seguro que quieres eliminar esta cuenta? Esta acción no puede deshacerse.",
|
||||
"delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.",
|
||||
"delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.",
|
||||
"delete-user-confirm-popup": "¿Estás seguro de querer eliminar esta cuenta? Esta acción no puede deshacerse.",
|
||||
"delete-team-confirm-popup": "¿Estás seguro de querer eliminar este equipo? Esta acción no puede deshacerse",
|
||||
"delete-org-confirm-popup": "¿Estás seguro de querer eliminar esta organización? Esta acción no puede deshacerse.",
|
||||
"accounts-allowUserDelete": "Permitir a los usuarios eliminar su cuenta",
|
||||
"hide-minicard-label-text": "Ocultar el texto de la etiqueta de la minitarjeta",
|
||||
"show-desktop-drag-handles": "Mostrar los controles de arrastre del escritorio",
|
||||
|
@ -966,7 +966,7 @@
|
|||
"delete-linked-card-before-this-card": "No puede borrar esta tarjeta antes de borrar la tarjeta enlazada que tiene",
|
||||
"delete-linked-cards-before-this-list": "No puede borrar esta lista antes de borrar las tarjetas enlazadas que apuntan a tarjetas en esta lista",
|
||||
"hide-checked-items": "Ocultar elementos marcados",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"hide-finished-checklist": "Esconder la lista de tareas finalizada",
|
||||
"task": "Tarea",
|
||||
"create-task": "Crear Tarea",
|
||||
"ok": "Vale",
|
||||
|
@ -974,7 +974,7 @@
|
|||
"teams": "Equipos",
|
||||
"displayName": "Mostrar Nombre",
|
||||
"shortName": "Nombre Corto",
|
||||
"autoAddUsersWithDomainName": "Automatically add users with the domain name",
|
||||
"autoAddUsersWithDomainName": "Añadir automáticamente usuarios con el nombre del dominio",
|
||||
"website": "Sitio web",
|
||||
"person": "Persona",
|
||||
"my-cards": "Mis Tarjetas",
|
||||
|
@ -998,13 +998,13 @@
|
|||
"dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
|
||||
"broken-cards": "Tarjetas Rotas",
|
||||
"board-title-not-found": "Tablero '%s' no encontrado.",
|
||||
"swimlane-title-not-found": "Swimlane '%s' not found.",
|
||||
"swimlane-title-not-found": "Carril '%s' no encontrado.",
|
||||
"list-title-not-found": "Lista '%s' no encontrada.",
|
||||
"label-not-found": "Etiqueta '%s' no encontrada.",
|
||||
"label-color-not-found": "Label color %s not found.",
|
||||
"user-username-not-found": "Usuario '%s' no encontrado.",
|
||||
"comment-not-found": "Card with comment containing text '%s' not found.",
|
||||
"org-name-not-found": "Organization '%s' not found.",
|
||||
"org-name-not-found": "Organización '%s' no encontrada.",
|
||||
"team-name-not-found": "Team '%s' not found.",
|
||||
"globalSearch-title": "Buscar todas las tarjetas",
|
||||
"no-cards-found": "Ninguna tarjeta encontrada",
|
||||
|
@ -1013,9 +1013,9 @@
|
|||
"n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found",
|
||||
"operator-board": "tablero",
|
||||
"operator-board-abbrev": "b",
|
||||
"operator-swimlane": "swimlane",
|
||||
"operator-swimlane": "carril",
|
||||
"operator-swimlane-abbrev": "s",
|
||||
"operator-list": "la lista",
|
||||
"operator-list": "lista",
|
||||
"operator-list-abbrev": "l",
|
||||
"operator-label": "etiqueta",
|
||||
"operator-label-abbrev": "#",
|
||||
|
@ -1041,7 +1041,7 @@
|
|||
"predicate-open": "abierto",
|
||||
"predicate-ended": "finalizó",
|
||||
"predicate-all": "todo",
|
||||
"predicate-overdue": "overdue",
|
||||
"predicate-overdue": "atrasado",
|
||||
"predicate-week": "semana",
|
||||
"predicate-month": "mes",
|
||||
"predicate-quarter": "cuarto",
|
||||
|
@ -1064,45 +1064,45 @@
|
|||
"operator-number-expected": "operator __operator__ expected a number, got '__value__'",
|
||||
"operator-sort-invalid": "sort of '%s' is invalid",
|
||||
"operator-status-invalid": "'%s' no es un estado válido",
|
||||
"operator-has-invalid": "%s is not a valid existence check",
|
||||
"operator-has-invalid": "%s no es una comprobación de existencia válida",
|
||||
"operator-limit-invalid": "%s no es un límite válido. El límite ha de ser un entero positivo.",
|
||||
"operator-debug-invalid": "%s is not a valid debug predicate",
|
||||
"next-page": "Página Siguiente",
|
||||
"previous-page": "Página Anterior",
|
||||
"heading-notes": "Notas",
|
||||
"globalSearch-instructions-heading": "Buscar instrucciones.",
|
||||
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
|
||||
"globalSearch-instructions-heading": "Instrucciones de búsqueda",
|
||||
"globalSearch-instructions-description": "Se pueden usar operadores para refinar la búsqueda. Los operadores se especifican escribiendo el nombre del operador y su valor separado por dos puntos. Por ejemplo, especificar `lista:Bloqueada` limitaría la búsqueda a tarjetas que conengan una lista llamada *Bloqueada*. Si el valor contiene espacios o caracteres especiales, debe escribirse entre comillas (por ejemplo: `__operator_list__:\"To Review\"`).",
|
||||
"globalSearch-instructions-operators": "Operadores disponibles:",
|
||||
"globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*",
|
||||
"globalSearch-instructions-operator-board": "`__operator_board__:<title>` - tarjetas en tableros que coincidan con *<title>*",
|
||||
"globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*",
|
||||
"globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*",
|
||||
"globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.",
|
||||
"globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - tarjetas con comentarios que contengan *<text>*.",
|
||||
"globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>",
|
||||
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`",
|
||||
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - abreviatura para `__operator_label__:<color>` o `__operator_label__:<name>`",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*",
|
||||
"globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`",
|
||||
"globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - abreviatura para `user:<username>`",
|
||||
"globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*",
|
||||
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*",
|
||||
"globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator",
|
||||
"globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - tarjetas donde *<username>* es el creador de la tarjeta",
|
||||
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*",
|
||||
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*",
|
||||
"globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
|
||||
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - las tarjetas pertenecientes al tablero asignadas al equipo *<name>*",
|
||||
"globalSearch-instructions-operator-due": "`__operator_due__:<n>` - tarjetas que vencen dentro de *<n>* days. `__operator_due__:__predicate_overdue__ lista todas las tarjetas que han vencido.",
|
||||
"globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less",
|
||||
"globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less",
|
||||
"globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:",
|
||||
"globalSearch-instructions-operator-status": "`__operator_status__:<status>` - donde *<status>* puede ser uno de los siguientes:",
|
||||
"globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
|
||||
"globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
|
||||
"globalSearch-instructions-status-all": "`__predicate_all__` - todas las tarjetas archivadas o no archivadas",
|
||||
"globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
|
||||
"globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
|
||||
"globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
|
||||
"globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
|
||||
"globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.",
|
||||
"globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.",
|
||||
"globalSearch-instructions-notes-1": "Múltiple operadores pueden ser seleccionados.",
|
||||
"globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.",
|
||||
"globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.",
|
||||
"globalSearch-instructions-status-private": "`__predicate_private__` - solo tarjetas de tableros privados",
|
||||
"globalSearch-instructions-operator-has": "`__operator_has__:<field>` - donde *<field>* puede ser `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` o `__predicate_member__`. Colocando un `-` delante de *<field>* busca la ausencia del valor en ese campo (por ejemplo, `has:-due` busca tarjetas sin fecha de vencimiento).",
|
||||
"globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - donde *<sort-name>* puede ser `__predicate_due__`, `__predicate_created__` o `__predicate_modified__`. Para ordenar descendentemente, coloca un `-` delante del tipo de orden.",
|
||||
"globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - donde *<n>* es un entero positivo que expresa el número de tarjetas que se mostrarán por página.",
|
||||
"globalSearch-instructions-notes-1": "Se pueden especificar múltiples operadores.",
|
||||
"globalSearch-instructions-notes-2": "Múltiples condiciones de operadores parecidos se tratan internamente con el operador lógico OR. Es decir, la búsqueda devolverá las tarjetas que coincidan con alguna de las condiciones:\n`__operator_list__:Disponible __operator_list__:Bloqueada` devolverá tarjetas contenidas en cualquier lista nombrada *Bloqueada* o *Disponible*.",
|
||||
"globalSearch-instructions-notes-3": "Múltiples condiciones de operadores distintos se tratan internamente con el operador lógico AND. Es decir, la búsqueda devolverá las tarjetas que coincidan con TODAS las condiciones:\n`__operator_list__:Disponible __operator_label__:rojo` devuelve sólo las tarjetas en la lista *Disponible* con una etiqueta *roja*.",
|
||||
"globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.",
|
||||
"globalSearch-instructions-notes-4": "La búsqueda de texto distingue entre mayúsculas y minúsculas.",
|
||||
"globalSearch-instructions-notes-4": "Las búsquedas de texto no distinguen entre mayúsculas y minúsculas.",
|
||||
"globalSearch-instructions-notes-5": "Por defecto no se buscan las tarjetas archivadas.",
|
||||
"link-to-search": "Enlazar a esta búsqueda",
|
||||
"excel-font": "Arial",
|
||||
|
@ -1111,32 +1111,32 @@
|
|||
"label-names": "Nombres de las etiquetas",
|
||||
"archived-at": "archivado el",
|
||||
"sort-cards": "Ordenar tarjetas",
|
||||
"sort-is-on": "Sort is on",
|
||||
"sort-is-on": "Ordenamiento activado",
|
||||
"cardsSortPopup-title": "Ordenar tarjetas",
|
||||
"due-date": "Fecha de Vencimiento",
|
||||
"server-error": "Error del Servidor",
|
||||
"server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`",
|
||||
"server-error-troubleshooting": "Por favor, envíe el error generado por el servidor.\nPara la instalación con snap, ejecute: `sudo snap logs wekan.wekan`\nPara la instalación con docker, ejecute: `sudo docker logs wekan-app`",
|
||||
"title-alphabetically": "Título (Alfabéticamente)",
|
||||
"created-at-newest-first": "Creación (Nuevos Primero)",
|
||||
"created-at-oldest-first": "Creación (Antiguos Primero)",
|
||||
"links-heading": "Enlaces",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"hide-activities-of-all-boards": "No mostrar las actividades del tablero en todos los tableros",
|
||||
"now-activities-of-all-boards-are-hidden": "Todas las actividades de todos los tableros están ahora ocultas",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
"custom-field-stringtemplate": "Plantilla de cadenas",
|
||||
"custom-field-stringtemplate-format": "Format (use %{value} as placeholder)",
|
||||
"custom-field-stringtemplate-separator": "Separator (use   or for a space)",
|
||||
"custom-field-stringtemplate-item-placeholder": "Pulsa intro para añadir más elementos",
|
||||
"creator": "Creador",
|
||||
"creator-on-minicard": "Creator on minicard",
|
||||
"creator-on-minicard": "Creador en minitarjeta",
|
||||
"filesReportTitle": "Informe sobre los archivos",
|
||||
"reports": "Informes",
|
||||
"rulesReportTitle": "Informe sobre las Reglas",
|
||||
"boardsReportTitle": "Informe sobre los Tableros",
|
||||
"cardsReportTitle": "Informe sobre las Tarjetas",
|
||||
"copy-swimlane": "Copy Swimlane",
|
||||
"copySwimlanePopup-title": "Copy Swimlane",
|
||||
"copySwimlanePopup-title": "Copiar carril",
|
||||
"display-card-creator": "Mostrar Creador de la Tarjeta",
|
||||
"wait-spinner": "Wait Spinner",
|
||||
"Bounce": "Bounce Wait Spinner",
|
||||
|
@ -1150,7 +1150,7 @@
|
|||
"maximize-card": "Maximizar Tarjeta",
|
||||
"minimize-card": "Minimizar Tarjeta",
|
||||
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
|
||||
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it",
|
||||
"delete-team-warning-message": "No se puede eliminar este equipo, hay al menos un usuario que pertenece a este equipo.",
|
||||
"subject": "Asunto",
|
||||
"details": "Detalles",
|
||||
"carbon-copy": "Carbon Copy (Cc:)",
|
||||
|
@ -1175,9 +1175,9 @@
|
|||
"remove-btn": "Eliminar",
|
||||
"filter-card-title-label": "Filtrar por el título de la tarjeta",
|
||||
"invite-people-success": "Invitation to register sent with success",
|
||||
"invite-people-error": "Error while sending invitation to register",
|
||||
"invite-people-error": "Error al enviar la invitación para registrarse",
|
||||
"can-invite-if-same-mailDomainName": "Email domain name",
|
||||
"to-create-teams-contact-admin": "To create teams, please contact the administrator.",
|
||||
"to-create-teams-contact-admin": "Para crear equipos, por favor contacte con el administrador.",
|
||||
"Node_heap_total_heap_size": "Node heap: total heap size",
|
||||
"Node_heap_total_heap_size_executable": "Node heap: total heap size executable",
|
||||
"Node_heap_total_physical_size": "Node heap: total physical size",
|
||||
|
@ -1195,7 +1195,7 @@
|
|||
"Node_memory_usage_external": "Node memory usage: external",
|
||||
"add-organizations": "Añadir organizaciones",
|
||||
"add-organizations-label": "Added organizations are displayed below:",
|
||||
"remove-organization-from-board": "Are you sure you want to remove this organization from this board ?",
|
||||
"remove-organization-from-board": "¿Estás seguro de querer quitar esta organización del tablero?",
|
||||
"to-create-organizations-contact-admin": "Para crear organizaciones, póngase en contacto con el administrador.",
|
||||
"custom-legal-notice-link-url": "URL personalizada de la página de aviso legal",
|
||||
"acceptance_of_our_legalNotice": "Al continuar, usted acepta nuestra",
|
||||
|
@ -1204,25 +1204,25 @@
|
|||
"checklistActionsPopup-title": "Acciones de la Lista de Tareas",
|
||||
"moveChecklist": "Mover Lista de Tareas",
|
||||
"moveChecklistPopup-title": "Mover Lista de Tareas",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"newlineBecomesNewChecklistItem": "Cada línea de texto se convierte en un nuevo elemento de la lista de verificación",
|
||||
"newLineNewItem": "Una línea de texto = un elemento de la lista de verificación",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Cada línea de texto se convierte en un nuevo elemento de la lista de verificación, orden original",
|
||||
"originOrder": "orden original",
|
||||
"copyChecklist": "Copiar Lista de Tareas",
|
||||
"copyChecklistPopup-title": "Copiar Lista de Tareas",
|
||||
"card-show-lists": "Mostrar Listas de Tarjetas",
|
||||
"subtaskActionsPopup-title": "Acciones de la Subtarea",
|
||||
"attachmentActionsPopup-title": "Acciones de Adhesión",
|
||||
"attachment-move-storage-fs": "Mover el archivo adjunto al sistema de archivos",
|
||||
"attachment-move-storage-gridfs": "Move attachment to GridFS",
|
||||
"attachment-move-storage-gridfs": "Mover adjunto a GridFS",
|
||||
"attachment-move-storage-s3": "Move attachment to S3",
|
||||
"attachment-move": "Mover el Adjunto",
|
||||
"move-all-attachments-to-fs": "Mover todos los archivos adjuntos al sistema de archivos",
|
||||
"move-all-attachments-to-gridfs": "Move all attachments to GridFS",
|
||||
"move-all-attachments-to-gridfs": "Mover todos los adjuntos a GridFS",
|
||||
"move-all-attachments-to-s3": "Move all attachments to S3",
|
||||
"move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem",
|
||||
"move-all-attachments-of-board-to-fs": "Mover todos los adjuntos del tablero al sistema de archivos",
|
||||
"move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS",
|
||||
"move-all-attachments-of-board-to-s3": "Move all attachments of board to S3",
|
||||
"move-all-attachments-of-board-to-s3": "Mover todos los adjuntos del tablero a S3",
|
||||
"path": "Ruta",
|
||||
"version-name": "Nombre de la versión",
|
||||
"size": "Tamaño",
|
||||
|
@ -1234,7 +1234,7 @@
|
|||
"remaining_time": "Tiempo restante",
|
||||
"speed": "Velocidad",
|
||||
"progress": "Progreso",
|
||||
"password-again": "Password (again)",
|
||||
"password-again": "Contraseña (repetir)",
|
||||
"if-you-already-have-an-account": "If you already have an account",
|
||||
"register": "Register",
|
||||
"forgot-password": "Forgot password",
|
||||
|
@ -1246,27 +1246,27 @@
|
|||
"max-avatar-filesize": "Máximo tamaño de archivo de avatar en bytes:",
|
||||
"allowed-avatar-filetypes": "Tipos de archivo permitidos para el avatar:",
|
||||
"invalid-file": "Si el nombre de archivo no es válido, la carga o el cambio de nombre es cancelado.",
|
||||
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
|
||||
"drag-board": "Drag board",
|
||||
"translation-number": "The number of custom translation strings is:",
|
||||
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
|
||||
"newTranslationPopup-title": "New custom translation string",
|
||||
"editTranslationPopup-title": "Edit custom translation string",
|
||||
"settingsTranslationPopup-title": "Delete this custom translation string?",
|
||||
"translation": "Translation",
|
||||
"preview-pdf-not-supported": "Tu dispositivo no permite previsualizar PDF. Intenta descargarlo.",
|
||||
"drag-board": "Arrastrar tablero",
|
||||
"translation-number": "El número de cadenas de traducción personalizadas es:",
|
||||
"delete-translation-confirm-popup": "¿Estás seguro de querer eliminar esta cadena de traducción personalizada? Esta acción no puede deshacerse.",
|
||||
"newTranslationPopup-title": "Nueva cadena de traducción personalizada",
|
||||
"editTranslationPopup-title": "Editar cadena de traducción personalizada",
|
||||
"settingsTranslationPopup-title": "¿Borrar esta cadena de traducción personalizada?",
|
||||
"translation": "Traducción",
|
||||
"text": "Texto",
|
||||
"translation-text": "Translation text",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"translation-text": "Texto de traducción",
|
||||
"show-subtasks-field": "Mostrar campo de subtareas",
|
||||
"show-week-of-year": "Mostrar semana del año (ISO 8601)",
|
||||
"convert-to-markdown": "Convertir en Markdown",
|
||||
"import-board-zip": "Añadir archivo .zip que contenga los archivos JSON del tablero y los nombres de las subcarpetas con adjuntos del tablero",
|
||||
"collapse": "Contraer",
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
"uncollapse": "Expandir",
|
||||
"hideCheckedChecklistItems": "Ocultar elementos marcados de la lista de verificación",
|
||||
"hideAllChecklistItems": "Ocultar todos los elementos de la lista de verificación",
|
||||
"support": "Soporte",
|
||||
"supportPopup-title": "Soporte",
|
||||
"accessibility-page-enabled": "Página de accesibilidad habilitada",
|
||||
"accessibility-title": "Temas de accesibilidad",
|
||||
"accessibility-content": "Contenido de accesibilidad"
|
||||
}
|
||||
|
|
|
@ -90,8 +90,8 @@
|
|||
"set-list-width": "Ezarri zabalerak",
|
||||
"set-list-width-value": "Ezarri gutxieneko eta gehieneko zabalerak (pixel)",
|
||||
"list-width-error-message": "Zerrenden zabalerak 100 baino handiagoak izan behar dira",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"keyboard-shortcuts-enabled": "Laster-teklak gaituta. Egin klik desgaitzeko.",
|
||||
"keyboard-shortcuts-disabled": "Laster-teklak desgaituta. Egin klik gaitzeko.",
|
||||
"setSwimlaneHeightPopup-title": "Errailaren altuera ezarri",
|
||||
"set-swimlane-height": "Errailaren altuera ezarri",
|
||||
"set-swimlane-height-value": "Errailaren altuera (pixelak)",
|
||||
|
@ -266,9 +266,9 @@
|
|||
"checklists": "Kontrol-zerrendak",
|
||||
"click-to-star": "Egin klik arbel honi izarra jartzeko",
|
||||
"click-to-unstar": "Egin klik arbel honi izarra kentzeko",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"click-to-enable-auto-width": "Zerrenda zabalera automatikoa desgaituta dago. Egin klik gaitzeko.",
|
||||
"click-to-disable-auto-width": "Zerrenda zabalera automatikoa gaituta dago. Egin klik desgaitzeko.",
|
||||
"auto-list-width": "Zerrenda zabalera automatikoa",
|
||||
"clipboard": "Kopiatu eta itsatsi edo arrastatu eta jaregin",
|
||||
"close": "Itxi",
|
||||
"close-board": "Itxi arbela",
|
||||
|
@ -383,7 +383,7 @@
|
|||
"email-sent": "E-posta bidali da",
|
||||
"email-verifyEmail-subject": "Egiaztatu __siteName__ guneko zure e-posta helbidea.",
|
||||
"email-verifyEmail-text": "Kaixo __user__,\n\nZure e-posta kontua egiaztatzeko, egin klik beheko loturan.\n\n__url__\n\nEskerrik asko.",
|
||||
"enable-vertical-scrollbars": "Enable vertical scrollbars",
|
||||
"enable-vertical-scrollbars": "Gaitu korritze barra bertikalak",
|
||||
"enable-wip-limit": "WIP muga gaitu",
|
||||
"error-board-doesNotExist": "Arbel hau ez da existitzen",
|
||||
"error-board-notAdmin": "Arbel honetako kudeatzailea izan behar zara hori egin ahal izateko",
|
||||
|
@ -1257,7 +1257,7 @@
|
|||
"text": "Testua",
|
||||
"translation-text": "itzulpenaren testua",
|
||||
"show-subtasks-field": "azpi-zereginen eremua bezala",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Erakutsi rrteko aste zenbakia (ISO 8601)",
|
||||
"convert-to-markdown": "Bihurtu markdown-era",
|
||||
"import-board-zip": "Gehitu taula JSON fitxategiak dituen .zip fitxategia eta eranskinak dituzten taularen izenen azpidirektorioak",
|
||||
"collapse": "Tolestu",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"accept": "Accept",
|
||||
"accept": "Terima",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
|
@ -49,7 +49,7 @@
|
|||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-changedListTitle": "Namakan semula senarai kepada %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
|
@ -86,9 +86,9 @@
|
|||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"setListWidthPopup-title": "Tetapkan Lebar",
|
||||
"set-list-width": "Tetapkan Lebar",
|
||||
"set-list-width-value": "Tetapkan lebar minimum dan maksimum (piksel)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
|
@ -105,20 +105,20 @@
|
|||
"convertChecklistItemToCardPopup-title": "Convert to Card",
|
||||
"add-cover": "Add cover image to minicard",
|
||||
"add-label": "Add Label",
|
||||
"add-list": "Add List",
|
||||
"add-list": "Tambah Senarai",
|
||||
"add-after-list": "Add After List",
|
||||
"add-members": "Add Members",
|
||||
"added": "Added",
|
||||
"addMemberPopup-title": "Members",
|
||||
"memberPopup-title": "Member Settings",
|
||||
"admin": "Admin",
|
||||
"add-members": "Tambah Ahli",
|
||||
"added": "Ditambah",
|
||||
"addMemberPopup-title": "Ahli-ahli",
|
||||
"memberPopup-title": "Tetapan Ahli",
|
||||
"admin": "Pentadbir",
|
||||
"admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
|
||||
"admin-announcement": "Announcement",
|
||||
"admin-announcement": "Pengumuman",
|
||||
"admin-announcement-active": "Active System-Wide Announcement",
|
||||
"admin-announcement-title": "Announcement from Administrator",
|
||||
"all-boards": "All Boards",
|
||||
"and-n-other-card": "And __count__ other card",
|
||||
"and-n-other-card_plural": "And __count__ other cards",
|
||||
"admin-announcement-title": "Pengumuman dari Pentadbir",
|
||||
"all-boards": "Semua Papan",
|
||||
"and-n-other-card": "Dan __count__ kad lain",
|
||||
"and-n-other-card_plural": "Dan __count__ kad-kad lain",
|
||||
"apply": "Apply",
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"app-try-reconnect": "Try to reconnect.",
|
||||
|
@ -451,7 +451,7 @@
|
|||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"show-activities": "Show Activities",
|
||||
"show-activities": "Tunjukkan Aktiviti",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
|
@ -972,20 +972,20 @@
|
|||
"ok": "OK",
|
||||
"organizations": "Organizations",
|
||||
"teams": "Teams",
|
||||
"displayName": "Display Name",
|
||||
"shortName": "Short Name",
|
||||
"displayName": "Nama Paparan",
|
||||
"shortName": "Nama Ringkas",
|
||||
"autoAddUsersWithDomainName": "Automatically add users with the domain name",
|
||||
"website": "Website",
|
||||
"website": "Laman Sesawang",
|
||||
"person": "Person",
|
||||
"my-cards": "My Cards",
|
||||
"card": "Card",
|
||||
"list": "List",
|
||||
"board": "Board",
|
||||
"my-cards": "Kad Saya",
|
||||
"card": "Kad",
|
||||
"list": "Senarai",
|
||||
"board": "Papan",
|
||||
"context-separator": "/",
|
||||
"myCardsViewChange-title": "My Cards View",
|
||||
"myCardsViewChangePopup-title": "My Cards View",
|
||||
"myCardsViewChange-choice-boards": "Boards",
|
||||
"myCardsViewChange-choice-table": "Table",
|
||||
"myCardsViewChange-choice-boards": "Papan",
|
||||
"myCardsViewChange-choice-table": "Jadual",
|
||||
"myCardsSortChange-title": "My Cards Sort",
|
||||
"myCardsSortChangePopup-title": "My Cards Sort",
|
||||
"myCardsSortChange-choice-board": "By Board",
|
||||
|
@ -993,8 +993,8 @@
|
|||
"dueCards-title": "Due Cards",
|
||||
"dueCardsViewChange-title": "Due Cards View",
|
||||
"dueCardsViewChangePopup-title": "Due Cards View",
|
||||
"dueCardsViewChange-choice-me": "Me",
|
||||
"dueCardsViewChange-choice-all": "All Users",
|
||||
"dueCardsViewChange-choice-me": "Saya",
|
||||
"dueCardsViewChange-choice-all": "Semua Pengguna",
|
||||
"dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
|
||||
"broken-cards": "Broken Cards",
|
||||
"board-title-not-found": "Board '%s' not found.",
|
||||
|
@ -1004,27 +1004,27 @@
|
|||
"label-color-not-found": "Label color %s not found.",
|
||||
"user-username-not-found": "Username '%s' not found.",
|
||||
"comment-not-found": "Card with comment containing text '%s' not found.",
|
||||
"org-name-not-found": "Organization '%s' not found.",
|
||||
"team-name-not-found": "Team '%s' not found.",
|
||||
"globalSearch-title": "Search All Boards",
|
||||
"no-cards-found": "No Cards Found",
|
||||
"one-card-found": "One Card Found",
|
||||
"n-cards-found": "%s Cards Found",
|
||||
"org-name-not-found": "Organisasi '%s' tidak ditemui.",
|
||||
"team-name-not-found": "Pasukan '%s' tidak ditemui.",
|
||||
"globalSearch-title": "Cari di Semua Papan",
|
||||
"no-cards-found": "Tiada Kad Ditemui",
|
||||
"one-card-found": "Satu Kad Ditemui",
|
||||
"n-cards-found": "%s Kad Ditemui",
|
||||
"n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found",
|
||||
"operator-board": "board",
|
||||
"operator-board-abbrev": "b",
|
||||
"operator-board": "papan",
|
||||
"operator-board-abbrev": "p",
|
||||
"operator-swimlane": "swimlane",
|
||||
"operator-swimlane-abbrev": "s",
|
||||
"operator-list": "list",
|
||||
"operator-list-abbrev": "l",
|
||||
"operator-list": "senarai",
|
||||
"operator-list-abbrev": "s",
|
||||
"operator-label": "label",
|
||||
"operator-label-abbrev": "#",
|
||||
"operator-user": "user",
|
||||
"operator-user": "pengguna",
|
||||
"operator-user-abbrev": "@",
|
||||
"operator-member": "member",
|
||||
"operator-member-abbrev": "m",
|
||||
"operator-assignee": "assignee",
|
||||
"operator-assignee-abbrev": "a",
|
||||
"operator-member": "ahli",
|
||||
"operator-member-abbrev": "a",
|
||||
"operator-assignee": "pemberi tugas",
|
||||
"operator-assignee-abbrev": "pt",
|
||||
"operator-creator": "creator",
|
||||
"operator-status": "status",
|
||||
"operator-due": "due",
|
||||
|
@ -1033,31 +1033,31 @@
|
|||
"operator-sort": "sort",
|
||||
"operator-comment": "comment",
|
||||
"operator-has": "has",
|
||||
"operator-limit": "limit",
|
||||
"operator-limit": "had",
|
||||
"operator-debug": "debug",
|
||||
"operator-org": "org",
|
||||
"operator-team": "team",
|
||||
"predicate-archived": "archived",
|
||||
"predicate-open": "open",
|
||||
"predicate-ended": "ended",
|
||||
"predicate-all": "all",
|
||||
"predicate-all": "semua",
|
||||
"predicate-overdue": "overdue",
|
||||
"predicate-week": "week",
|
||||
"predicate-month": "month",
|
||||
"predicate-quarter": "quarter",
|
||||
"predicate-year": "year",
|
||||
"predicate-week": "minggu",
|
||||
"predicate-month": "bulan",
|
||||
"predicate-quarter": "suku",
|
||||
"predicate-year": "tahun",
|
||||
"predicate-due": "due",
|
||||
"predicate-modified": "modified",
|
||||
"predicate-created": "created",
|
||||
"predicate-attachment": "attachment",
|
||||
"predicate-description": "description",
|
||||
"predicate-description": "huraian",
|
||||
"predicate-checklist": "checklist",
|
||||
"predicate-start": "start",
|
||||
"predicate-end": "end",
|
||||
"predicate-start": "mula",
|
||||
"predicate-end": "akhir",
|
||||
"predicate-assignee": "assignee",
|
||||
"predicate-member": "member",
|
||||
"predicate-public": "public",
|
||||
"predicate-private": "private",
|
||||
"predicate-public": "umum",
|
||||
"predicate-private": "peribadi",
|
||||
"predicate-selector": "selector",
|
||||
"predicate-projection": "projection",
|
||||
"operator-unknown-error": "%s is not an operator",
|
||||
|
@ -1067,10 +1067,10 @@
|
|||
"operator-has-invalid": "%s is not a valid existence check",
|
||||
"operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
|
||||
"operator-debug-invalid": "%s is not a valid debug predicate",
|
||||
"next-page": "Next Page",
|
||||
"previous-page": "Previous Page",
|
||||
"heading-notes": "Notes",
|
||||
"globalSearch-instructions-heading": "Search Instructions",
|
||||
"next-page": "Halaman Seterusnya",
|
||||
"previous-page": "Halaman Sebelumnya",
|
||||
"heading-notes": "Nota-nota",
|
||||
"globalSearch-instructions-heading": "Cari arahan",
|
||||
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
|
||||
"globalSearch-instructions-operators": "Available operators:",
|
||||
"globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*",
|
||||
|
@ -1106,7 +1106,7 @@
|
|||
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
|
||||
"link-to-search": "Link to this search",
|
||||
"excel-font": "Arial",
|
||||
"number": "Number",
|
||||
"number": "Nombor",
|
||||
"label-colors": "Label Colors",
|
||||
"label-names": "Label Names",
|
||||
"archived-at": "archived at",
|
||||
|
@ -1128,8 +1128,8 @@
|
|||
"custom-field-stringtemplate-format": "Format (use %{value} as placeholder)",
|
||||
"custom-field-stringtemplate-separator": "Separator (use   or for a space)",
|
||||
"custom-field-stringtemplate-item-placeholder": "Press enter to add more items",
|
||||
"creator": "Creator",
|
||||
"creator-on-minicard": "Creator on minicard",
|
||||
"creator": "Pencipta",
|
||||
"creator-on-minicard": "Pencipta pada kad mini",
|
||||
"filesReportTitle": "Files Report",
|
||||
"reports": "Reports",
|
||||
"rulesReportTitle": "Rules Report",
|
||||
|
@ -1152,27 +1152,27 @@
|
|||
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
|
||||
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it",
|
||||
"subject": "Subject",
|
||||
"details": "Details",
|
||||
"details": "Maklumat",
|
||||
"carbon-copy": "Carbon Copy (Cc:)",
|
||||
"ticket": "Ticket",
|
||||
"tickets": "Tickets",
|
||||
"ticket-number": "Ticket Number",
|
||||
"open": "Open",
|
||||
"ticket": "Tiket",
|
||||
"tickets": "Tiket-tiket",
|
||||
"ticket-number": "Nombor Tiket",
|
||||
"open": "Dibuka",
|
||||
"pending": "Pending",
|
||||
"closed": "Closed",
|
||||
"resolved": "Resolved",
|
||||
"cancelled": "Cancelled",
|
||||
"history": "History",
|
||||
"closed": "Ditutup",
|
||||
"resolved": "Selesai",
|
||||
"cancelled": "Batalkan",
|
||||
"history": "Sejarah",
|
||||
"request": "Request",
|
||||
"requests": "Requests",
|
||||
"help-request": "Help Request",
|
||||
"editCardSortOrderPopup-title": "Change Sorting",
|
||||
"cardDetailsPopup-title": "Card Details",
|
||||
"add-teams": "Add teams",
|
||||
"cardDetailsPopup-title": "Maklumat Kad",
|
||||
"add-teams": "Tambahkan Kumpulan",
|
||||
"add-teams-label": "Added teams are displayed below:",
|
||||
"remove-team-from-table": "Are you sure you want to remove this team from the board ?",
|
||||
"confirm-btn": "Confirm",
|
||||
"remove-btn": "Remove",
|
||||
"confirm-btn": "Sahkan",
|
||||
"remove-btn": "Hapus",
|
||||
"filter-card-title-label": "Filter by card title",
|
||||
"invite-people-success": "Invitation to register sent with success",
|
||||
"invite-people-error": "Error while sending invitation to register",
|
||||
|
@ -1200,14 +1200,14 @@
|
|||
"custom-legal-notice-link-url": "Custom legal notice page URL",
|
||||
"acceptance_of_our_legalNotice": "By continuing, you accept our",
|
||||
"legalNotice": "legal notice",
|
||||
"copied": "Copied!",
|
||||
"copied": "Disalin!",
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"originOrder": "aturan asal",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
|
@ -1223,21 +1223,21 @@
|
|||
"move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem",
|
||||
"move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS",
|
||||
"move-all-attachments-of-board-to-s3": "Move all attachments of board to S3",
|
||||
"path": "Path",
|
||||
"version-name": "Version-Name",
|
||||
"size": "Size",
|
||||
"storage": "Storage",
|
||||
"action": "Action",
|
||||
"board-title": "Board Title",
|
||||
"attachmentRenamePopup-title": "Rename",
|
||||
"uploading": "Uploading",
|
||||
"remaining_time": "Remaining time",
|
||||
"path": "Haluan",
|
||||
"version-name": "Versi-Nama",
|
||||
"size": "Saiz",
|
||||
"storage": "Simpanan",
|
||||
"action": "Tindakan",
|
||||
"board-title": "Tajuk Papan",
|
||||
"attachmentRenamePopup-title": "Namakan Semula",
|
||||
"uploading": "Memuat Naik",
|
||||
"remaining_time": "Masa yang tersisa",
|
||||
"speed": "Speed",
|
||||
"progress": "Progress",
|
||||
"password-again": "Password (again)",
|
||||
"if-you-already-have-an-account": "If you already have an account",
|
||||
"register": "Register",
|
||||
"forgot-password": "Forgot password",
|
||||
"progress": "Perkembangan",
|
||||
"password-again": "Kata laluan (semula)",
|
||||
"if-you-already-have-an-account": "Jika anda sudah mempunyai akaun",
|
||||
"register": "Daftar",
|
||||
"forgot-password": "Lupa kata laluan",
|
||||
"minicardDetailsActionsPopup-title": "Card Details",
|
||||
"Mongo_sessions_count": "Mongo sessions count",
|
||||
"change-visibility": "Change Visibility",
|
||||
|
@ -1253,9 +1253,9 @@
|
|||
"newTranslationPopup-title": "New custom translation string",
|
||||
"editTranslationPopup-title": "Edit custom translation string",
|
||||
"settingsTranslationPopup-title": "Delete this custom translation string?",
|
||||
"translation": "Translation",
|
||||
"text": "Text",
|
||||
"translation-text": "Translation text",
|
||||
"translation": "Terjemahan",
|
||||
"text": "Teks",
|
||||
"translation-text": "Teks terjemahan",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
|
|
|
@ -383,7 +383,7 @@
|
|||
"email-sent": "Email відправлений",
|
||||
"email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__",
|
||||
"email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.",
|
||||
"enable-vertical-scrollbars": "Enable vertical scrollbars",
|
||||
"enable-vertical-scrollbars": "Увімкнути вертикальні скроллбари",
|
||||
"enable-wip-limit": "Увімкнути ліміт WIP",
|
||||
"error-board-doesNotExist": "Ця дошка не існує",
|
||||
"error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це",
|
||||
|
@ -610,7 +610,7 @@
|
|||
"has-spenttime-cards": "Має картки з витраченим часом",
|
||||
"time": "Час",
|
||||
"title": "Назва",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-assignees": "Перемикання призначень 1-9 для картки (за порядком додавання на дошку)",
|
||||
"toggle-labels": "Перемкнути мітки 1-9 для картки. Мультивибір додає мітки 1-9",
|
||||
"remove-labels-multiselect": "Мультивибір видаляє мітки 1-9",
|
||||
"tracking": "Відстеження",
|
||||
|
@ -1257,7 +1257,7 @@
|
|||
"text": "Текст",
|
||||
"translation-text": "Перекласти текст",
|
||||
"show-subtasks-field": "Показати поле підзавдань",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Показати тиждень року (ISO 8601)",
|
||||
"convert-to-markdown": "Конвертувати в Markdown",
|
||||
"import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями",
|
||||
"collapse": "Згорнути",
|
||||
|
|
|
@ -86,12 +86,12 @@
|
|||
"add-card": "Додати картку",
|
||||
"add-card-to-top-of-list": "Додати картку на початок списку",
|
||||
"add-card-to-bottom-of-list": "Додати картку у кінець списку",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setListWidthPopup-title": "Встановити ширину",
|
||||
"set-list-width": "Встановити ширину",
|
||||
"set-list-width-value": "Встановити мін. та макс. ширину (у пікселях)",
|
||||
"list-width-error-message": "Ширина списку має бути цілим числом, більшим за 100",
|
||||
"keyboard-shortcuts-enabled": "Комбінації клавіш увімкнено. Натисніть, щоб вимкнути.",
|
||||
"keyboard-shortcuts-disabled": "Комбінації клавіш вимкнено. Натисніть, щоб увімкнути.",
|
||||
"setSwimlaneHeightPopup-title": "Встановити довжину доріжки",
|
||||
"set-swimlane-height": "Встановити довжину доріжки",
|
||||
"set-swimlane-height-value": "Висота доріжки (у пікселях)",
|
||||
|
@ -266,9 +266,9 @@
|
|||
"checklists": "Контрольні списки",
|
||||
"click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.",
|
||||
"click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"click-to-enable-auto-width": "Автоматична ширина списку вимкнена. Натисніть, щоб увімкнути.",
|
||||
"click-to-disable-auto-width": "Автоматична ширина списку увімкнена. Натисніть, щоб вимкнути.",
|
||||
"auto-list-width": "Автоматична ширина списку",
|
||||
"clipboard": "Буфер обміну або перетягнути і відпустити",
|
||||
"close": "Закрити",
|
||||
"close-board": "Закрити дошку",
|
||||
|
@ -383,7 +383,7 @@
|
|||
"email-sent": "Email відправлений",
|
||||
"email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__",
|
||||
"email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.",
|
||||
"enable-vertical-scrollbars": "Enable vertical scrollbars",
|
||||
"enable-vertical-scrollbars": "Увімкнути вертикальні скроллбари",
|
||||
"enable-wip-limit": "Увімкнути ліміт WIP",
|
||||
"error-board-doesNotExist": "Ця дошка не існує",
|
||||
"error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це",
|
||||
|
@ -610,7 +610,7 @@
|
|||
"has-spenttime-cards": "Має картки з витраченим часом",
|
||||
"time": "Час",
|
||||
"title": "Назва",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-assignees": "Перемикання призначень 1-9 для картки (за порядком додавання на дошку)",
|
||||
"toggle-labels": "Перемкнути мітки 1-9 для картки. Мультивибір додає мітки 1-9",
|
||||
"remove-labels-multiselect": "Мультивибір видаляє мітки 1-9",
|
||||
"tracking": "Відстеження",
|
||||
|
@ -1257,7 +1257,7 @@
|
|||
"text": "Текст",
|
||||
"translation-text": "Перекласти текст",
|
||||
"show-subtasks-field": "Показати поле підзавдань",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Показати тиждень року (ISO 8601)",
|
||||
"convert-to-markdown": "Конвертувати в Markdown",
|
||||
"import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями",
|
||||
"collapse": "Згорнути",
|
||||
|
@ -1266,7 +1266,7 @@
|
|||
"hideAllChecklistItems": "Приховати всі пункти чек-листа",
|
||||
"support": "Підтримка",
|
||||
"supportPopup-title": "Підтримка",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
"accessibility-page-enabled": "Увімкнено сторінку доступності",
|
||||
"accessibility-title": "Тема доступності",
|
||||
"accessibility-content": "Доступність контенту"
|
||||
}
|
||||
|
|
|
@ -531,20 +531,30 @@ Cards.helpers({
|
|||
mapCustomFieldsToBoard(boardId) {
|
||||
// Map custom fields to new board
|
||||
return this.customFields.map(cf => {
|
||||
const oldCf = ReactiveCache.getCustomField(cf._id);
|
||||
const newCf = ReactiveCache.getCustomField({
|
||||
boardIds: boardId,
|
||||
name: oldCf.name,
|
||||
type: oldCf.type,
|
||||
});
|
||||
if (newCf) {
|
||||
cf._id = newCf._id;
|
||||
} else if (!_.contains(oldCf.boardIds, boardId)) {
|
||||
oldCf.addBoard(boardId);
|
||||
}
|
||||
return cf;
|
||||
const oldCf = ReactiveCache.getCustomField(cf._id);
|
||||
|
||||
// Check if oldCf is undefined or null
|
||||
if (!oldCf) {
|
||||
//console.error(`Custom field with ID ${cf._id} not found.`);
|
||||
return cf; // Skip this field if oldCf is not found
|
||||
}
|
||||
|
||||
const newCf = ReactiveCache.getCustomField({
|
||||
boardIds: boardId,
|
||||
name: oldCf.name,
|
||||
type: oldCf.type,
|
||||
});
|
||||
|
||||
if (newCf) {
|
||||
cf._id = newCf._id;
|
||||
} else if (!_.contains(oldCf.boardIds, boardId)) {
|
||||
oldCf.addBoard(boardId);
|
||||
}
|
||||
|
||||
return cf;
|
||||
});
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
copy(boardId, swimlaneId, listId) {
|
||||
const oldId = this._id;
|
||||
|
|
|
@ -65,6 +65,8 @@ def get_req_body_elems(obj, elems):
|
|||
elif obj.type in ('LogicalExpression', 'BinaryExpression', 'AssignmentExpression'):
|
||||
get_req_body_elems(obj.left, elems)
|
||||
get_req_body_elems(obj.right, elems)
|
||||
elif obj.type == 'ChainExpression':
|
||||
get_req_body_elems(obj.expression, elems)
|
||||
elif obj.type in ('ReturnStatement', 'UnaryExpression'):
|
||||
if obj.argument is not None:
|
||||
get_req_body_elems(obj.argument, elems)
|
||||
|
|
8
package-lock.json
generated
8
package-lock.json
generated
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.82.0",
|
||||
"version": "v7.84.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@babel/runtime": {
|
||||
"version": "7.25.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz",
|
||||
"integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==",
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
|
||||
"integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
|
||||
"requires": {
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.82.0",
|
||||
"version": "v7.84.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"repository": {
|
||||
|
@ -17,7 +17,7 @@
|
|||
"sinon": "^13.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.25.0",
|
||||
"@babel/runtime": "^7.26.10",
|
||||
"@mapbox/node-pre-gyp": "^1.0.10",
|
||||
"@rwap/jquery-ui-touch-punch": "^1.0.11",
|
||||
"@wekanteam/dragscroll": "https://github.com/wekan/dragscroll.git",
|
||||
|
|
11483
public/api/wekan.html
11483
public/api/wekan.html
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
|||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v7.82
|
||||
version: v7.84
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
|
|
524
public/old-site.webmanifest
Normal file
524
public/old-site.webmanifest
Normal file
|
@ -0,0 +1,524 @@
|
|||
{
|
||||
"name": "Wekan",
|
||||
"short_name": "Wekan",
|
||||
"icons": [
|
||||
{
|
||||
"src": "svg-etc/wekan-logo-512.svg",
|
||||
"sizes": "any",
|
||||
"type": "image/svg"
|
||||
},
|
||||
{
|
||||
"src": "android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "Square150x150Logo.scale-100.png",
|
||||
"sizes": "150x150",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "Square44x44Logo.scale-100.png",
|
||||
"sizes": "44x44",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "StoreLogo.scale-100.png",
|
||||
"sizes": "50x50",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "maskable_icon.png",
|
||||
"sizes": "474x474",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "monochrome-icon-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "monochrome"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-100.png",
|
||||
"sizes": "71x71"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-125.png",
|
||||
"sizes": "89x89"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-150.png",
|
||||
"sizes": "107x107"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-200.png",
|
||||
"sizes": "142x142"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-400.png",
|
||||
"sizes": "284x284"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-100.png",
|
||||
"sizes": "150x150"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-125.png",
|
||||
"sizes": "188x188"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-150.png",
|
||||
"sizes": "225x225"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-200.png",
|
||||
"sizes": "300x300"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-400.png",
|
||||
"sizes": "600x600"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-100.png",
|
||||
"sizes": "310x150"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-125.png",
|
||||
"sizes": "388x188"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-150.png",
|
||||
"sizes": "465x225"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-200.png",
|
||||
"sizes": "620x300"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-400.png",
|
||||
"sizes": "1240x600"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-100.png",
|
||||
"sizes": "310x310"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-125.png",
|
||||
"sizes": "388x388"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-150.png",
|
||||
"sizes": "465x465"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-200.png",
|
||||
"sizes": "620x620"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-400.png",
|
||||
"sizes": "1240x1240"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-100.png",
|
||||
"sizes": "44x44"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-125.png",
|
||||
"sizes": "55x55"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-150.png",
|
||||
"sizes": "66x66"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-200.png",
|
||||
"sizes": "88x88"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-400.png",
|
||||
"sizes": "176x176"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-100.png",
|
||||
"sizes": "50x50"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-125.png",
|
||||
"sizes": "63x63"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-150.png",
|
||||
"sizes": "75x75"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-200.png",
|
||||
"sizes": "100x100"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-400.png",
|
||||
"sizes": "200x200"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-100.png",
|
||||
"sizes": "620x300"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-125.png",
|
||||
"sizes": "775x375"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-150.png",
|
||||
"sizes": "930x450"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-200.png",
|
||||
"sizes": "1240x600"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-400.png",
|
||||
"sizes": "2480x1200"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-512-512.png",
|
||||
"sizes": "512x512"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-192-192.png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-144-144.png",
|
||||
"sizes": "144x144"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-96-96.png",
|
||||
"sizes": "96x96"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-72-72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-48-48.png",
|
||||
"sizes": "48x48"
|
||||
},
|
||||
{
|
||||
"src": "ios/16.png",
|
||||
"sizes": "16x16"
|
||||
},
|
||||
{
|
||||
"src": "ios/20.png",
|
||||
"sizes": "20x20"
|
||||
},
|
||||
{
|
||||
"src": "ios/29.png",
|
||||
"sizes": "29x29"
|
||||
},
|
||||
{
|
||||
"src": "ios/32.png",
|
||||
"sizes": "32x32"
|
||||
},
|
||||
{
|
||||
"src": "ios/40.png",
|
||||
"sizes": "40x40"
|
||||
},
|
||||
{
|
||||
"src": "ios/50.png",
|
||||
"sizes": "50x50"
|
||||
},
|
||||
{
|
||||
"src": "ios/57.png",
|
||||
"sizes": "57x57"
|
||||
},
|
||||
{
|
||||
"src": "ios/58.png",
|
||||
"sizes": "58x58"
|
||||
},
|
||||
{
|
||||
"src": "ios/60.png",
|
||||
"sizes": "60x60"
|
||||
},
|
||||
{
|
||||
"src": "ios/64.png",
|
||||
"sizes": "64x64"
|
||||
},
|
||||
{
|
||||
"src": "ios/72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "ios/76.png",
|
||||
"sizes": "76x76"
|
||||
},
|
||||
{
|
||||
"src": "ios/80.png",
|
||||
"sizes": "80x80"
|
||||
},
|
||||
{
|
||||
"src": "ios/87.png",
|
||||
"sizes": "87x87"
|
||||
},
|
||||
{
|
||||
"src": "ios/100.png",
|
||||
"sizes": "100x100"
|
||||
},
|
||||
{
|
||||
"src": "ios/114.png",
|
||||
"sizes": "114x114"
|
||||
},
|
||||
{
|
||||
"src": "ios/120.png",
|
||||
"sizes": "120x120"
|
||||
},
|
||||
{
|
||||
"src": "ios/128.png",
|
||||
"sizes": "128x128"
|
||||
},
|
||||
{
|
||||
"src": "ios/144.png",
|
||||
"sizes": "144x144"
|
||||
},
|
||||
{
|
||||
"src": "ios/152.png",
|
||||
"sizes": "152x152"
|
||||
},
|
||||
{
|
||||
"src": "ios/167.png",
|
||||
"sizes": "167x167"
|
||||
},
|
||||
{
|
||||
"src": "ios/180.png",
|
||||
"sizes": "180x180"
|
||||
},
|
||||
{
|
||||
"src": "ios/192.png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "ios/256.png",
|
||||
"sizes": "256x256"
|
||||
},
|
||||
{
|
||||
"src": "ios/512.png",
|
||||
"sizes": "512x512"
|
||||
},
|
||||
{
|
||||
"src": "ios/1024.png",
|
||||
"sizes": "1024x1024"
|
||||
}
|
||||
],
|
||||
"screenshots": [
|
||||
{
|
||||
"src": "screenshot1.webp",
|
||||
"sizes": "1280x720",
|
||||
"type": "image/webp"
|
||||
},
|
||||
{
|
||||
"src": "screenshot2.webp",
|
||||
"sizes": "1280x720",
|
||||
"type": "image/webp"
|
||||
}
|
||||
],
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#000000",
|
||||
"start_url": "sign-in",
|
||||
"display": "standalone",
|
||||
"orientation": "any",
|
||||
"categories": [
|
||||
"productivity"
|
||||
],
|
||||
"iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96",
|
||||
"description": "Open Source kanban with MIT license",
|
||||
"dir": "auto",
|
||||
"scope": "https://boards.wekan.team",
|
||||
"prefer_related_applications": false,
|
||||
"display_override": [
|
||||
"standalone"
|
||||
]
|
||||
}
|
|
@ -513,10 +513,8 @@
|
|||
"categories": [
|
||||
"productivity"
|
||||
],
|
||||
"iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96",
|
||||
"description": "Open Source kanban with MIT license",
|
||||
"dir": "auto",
|
||||
"scope": "https://boards.wekan.team",
|
||||
"prefer_related_applications": false,
|
||||
"display_override": [
|
||||
"standalone"
|
||||
|
|
|
@ -15,7 +15,8 @@ fi
|
|||
|
||||
if [ ! -d ~/python/esprima-python ]; then
|
||||
sudo apt-get -y install python3-pip python3-swagger-spec-validator python3-wheel python3-setuptools
|
||||
sudo npm install -g api2html
|
||||
# Install older version of api2html that works with Node.js 14
|
||||
sudo npm install -g api2html@0.3.0 || sudo npm install -g swagger-ui-watcher
|
||||
(mkdir -p ~/python && cd ~/python && git clone --depth 1 -b master https://github.com/Kronuz/esprima-python)
|
||||
(cd ~/python/esprima-python && git fetch origin pull/20/head:delete_fix && git checkout delete_fix && sudo python3 setup.py install --record files.txt)
|
||||
#(cd ~/python/esprima-python && git fetch origin pull/20/head:delete_fix && git checkout delete_fix && sudo pip3 install .)
|
||||
|
@ -38,10 +39,11 @@ if [ ! -d public/api ]; then
|
|||
mkdir -p public/api
|
||||
fi
|
||||
|
||||
# 4) Generate docs.
|
||||
#python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml
|
||||
# 4) Generate docs with api2html or fallback to swagger-ui-watcher
|
||||
python3 ./openapi/generate_openapi.py --release v$1 > ./public/api/wekan.yml
|
||||
api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml
|
||||
if ! api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; then
|
||||
swagger-ui-watcher ./public/api/wekan.yml -p 8080
|
||||
fi
|
||||
|
||||
# Copy docs to bundle
|
||||
#cp -pR ./public/api ~/repos/wekan/.build/bundle/programs/web.browser/app/
|
||||
|
|
|
@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
|||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 782,
|
||||
appVersion = 784,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "7.82.0~2025-02-24"),
|
||||
appMarketingVersion = (defaultText = "7.84.0~2025-03-23"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
name: wekan
|
||||
version: '7.82'
|
||||
version: '7.84'
|
||||
base: core20
|
||||
summary: Open Source kanban
|
||||
description: |
|
||||
|
@ -170,9 +170,9 @@ parts:
|
|||
# Cleanup
|
||||
mkdir .build
|
||||
cd .build
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64.zip
|
||||
unzip wekan-7.82-amd64.zip
|
||||
rm wekan-7.82-amd64.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.84/wekan-7.84-amd64.zip
|
||||
unzip wekan-7.84-amd64.zip
|
||||
rm wekan-7.84-amd64.zip
|
||||
cd ..
|
||||
##cd .build/bundle
|
||||
##find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue