Compare commits

..

2 Commits

Author SHA1 Message Date
1d8d115f9f
fix(ci): sign drone config
Some checks failed
continuous-integration/drone/pr Build is failing
2024-05-06 11:05:44 +02:00
825b387259
chore(deps): update golangci/golangci-lint docker tag to v1.58.0 2024-05-06 11:05:43 +02:00
75 changed files with 2000 additions and 4040 deletions

View File

@ -139,7 +139,7 @@ steps:
event: [ push, tag, pull_request ]
- name: api-lint
image: golangci/golangci-lint:v1.57.2
image: golangci/golangci-lint:v1.58.0
pull: always
environment:
GOPROXY: 'https://goproxy.kolaente.de'
@ -1400,6 +1400,6 @@ steps:
- failure
---
kind: signature
hmac: f2753482faf9e2a3d34a9111587a75dfb4519cb77002cc64a51266540fd2478e
hmac: a274f184812e0d0d18596fc02f577302b2ce3b7da0edb19dad8a84eae732a2af
...

View File

@ -156,7 +156,7 @@ mailer:
username: "user"
# SMTP password
password: ""
# Whether to skip verification of the tls certificate on the server
# Wether to skip verification of the tls certificate on the server
skiptlsverify: false
# The default from address when sending emails
fromemail: "mail@vikunja"
@ -306,7 +306,7 @@ auth:
# The provider needs to support the `openid`, `profile` and `email` scopes.<br/>
# **Note:** Some openid providers (like Gitlab) only make the email of the user available through OpenID if they have set it to be publicly visible.
# If the email is not public in those cases, authenticating will fail.
# +**Note 2:** The frontend expects the third party to redirect the user <frontend-url>/auth/openid/<auth key> after authentication. Please make sure to configure the redirect url in your third party auth service accordingly if you're using the default vikunja frontend.
# **Note 2:** The frontend expects the third party to rediect the user <frontend-url>/auth/openid/<auth key> after authentication. Please make sure to configure the redirect url in your third party auth service accordingly if you're using the default vikunja frontend.
# The frontend will automatically provide the API with the redirect url, composed from the current url where it's hosted.
# If you want to use the desktop client with OpenID, make sure to allow redirects to `127.0.0.1`.
# Take a look at the [default config file](https://kolaente.dev/vikunja/vikunja/src/branch/main/config.yml.sample) for more information about how to configure openid authentication.
@ -368,8 +368,8 @@ defaultsettings:
webhooks:
# Whether to enable support for webhooks
enabled: true
# The timeout in seconds until a webhook request fails when no response has been received.
timeoutseconds: 30
# The timout in seconds until a webhook request fails when no response has been received.
timoutseconds: 30
# The URL of [a mole instance](https://github.com/frain-dev/mole) to use to proxy outgoing webhook requests. You should use this and configure appropriately if you're not the only one using your Vikunja instance. More info about why: https://webhooks.fyi/best-practices/webhook-providers#implement-security-on-egress-communication. Must be used in combination with `webhooks.password` (see below).
proxyurl:
# The proxy password to use when authenticating against the proxy.

View File

@ -51,7 +51,7 @@
}
},
"devDependencies": {
"electron": "29.3.3",
"electron": "29.3.2",
"electron-builder": "24.13.3"
},
"dependencies": {

View File

@ -14,8 +14,8 @@ dependencies:
devDependencies:
electron:
specifier: 29.3.3
version: 29.3.3
specifier: 29.3.2
version: 29.3.2
electron-builder:
specifier: 24.13.3
version: 24.13.3(electron-builder-squirrel-windows@24.13.3)
@ -917,8 +917,8 @@ packages:
- supports-color
dev: true
/electron@29.3.3:
resolution: {integrity: sha512-I/USTe9UsQUKb/iuiYnmt074vHxNHCJZWYiU4Xg6lNPKVBsPadAhZcc+g2gYLqC1rA7KT4AvKTmNsY8n7oEUCw==}
/electron@29.3.2:
resolution: {integrity: sha512-pRWsaFtbd78kEHR0lg5aMhZDY6b5JykIEhZRtyTCaJpGFObB2NFIJDzR7mTia0cZp3pPq60n/SS4gRxvSM5WFQ==}
engines: {node: '>= 12.20.55'}
hasBin: true
requiresBuild: true

View File

@ -24,7 +24,7 @@ In other packages, use the `db.NewSession()` method to get a new database sessio
To add a new table to the database, create the struct and [add a migration for it]({{< ref "db-migrations.md" >}}).
To learn more about how to configure your struct to create "good" tables, refer to [the xorm documentation](https://xorm.io/docs/).
To learn more about how to configure your struct to create "good" tables, refer to [the xorm documentaion](https://xorm.io/docs/).
In most cases you will also need to implement the `TableName() string` method on the new struct to make sure the table name matches the rest of the tables - plural.

View File

@ -26,15 +26,6 @@ If you plan to do a bigger change, it is better to open an issue for discussion
The main repo is [`vikunja/vikunja`](https://kolaente.dev/vikunja/vikunja), it contains all code for the api, frontend and desktop applications.
## Where to file issues
You can file issues on [the Gitea repo](https://kolaente.dev/vikunja/vikunja) or [on the GitHub mirror](https://github.com/go-vikunja/vikunja), when you don't want to create an account on the Gitea instance.
Please note that due to a spam problem, we need to manually enable accounts on Gitea after you've registered there.
To get that started, please reach out on another channel with your username.
Another option is [the community forum](https://community.vikunja.io), especially if you want to discuss a feature in more detail.
## API
You'll need at least Go 1.21 to build Vikunja's api.

View File

@ -101,7 +101,7 @@ You should also document the routes with [swagger annotations]({{< ref "swagger-
There is a method available in the `migration` package which takes a fully nested Vikunja structure and creates it with all relations.
This means you start by adding a project, then add projects inside that project, then tasks in the lists and so on.
In general, it is recommended to have one root project with all projects of the other service as child projects.
In general, it is reccommended to have one root project with all projects of the other service as child projects.
The root structure must be present as `[]*models.ProjectWithTasksAndBuckets`. It allows to represent all of Vikunja's hierarchy as a single data structure.

View File

@ -16,7 +16,7 @@ menu:
The following parts are about the kinds of tests in the API package and how to run them.
### Prerequisites
### Prerequesites
To run any kind of test, you need to specify Vikunja's [root path](https://vikunja.io/docs/config-options/#rootpath).
This is required to make sure all test fixtures are correctly loaded.
@ -39,7 +39,7 @@ This definition is a bit blurry, but we haven't found a better one yet.
All integration tests live in `pkg/integrations`.
You can run them by executing `mage test:integration`.
The integration tests use the same config and fixtures as the unit tests and therefore have the same options available,
The integration tests use the same config and fixtures as the unit tests and therefor have the same options available,
see at the beginning of this document.
To run integration tests, use `mage test:integration`.

View File

@ -348,7 +348,6 @@ Environment path: `VIKUNJA_SERVICE_CUSTOMLOGOURL`
### enablepublicteams
Enables the public team feature. If enabled, it is possible to configure teams to be public, which makes them
discoverable when sharing a project, therefore not only showing teams the user is member of.
Default: `false`
@ -780,7 +779,7 @@ Environment path: `VIKUNJA_MAILER_PASSWORD`
### skiptlsverify
Whether to skip verification of the tls certificate on the server
Wether to skip verification of the tls certificate on the server
Default: `false`
@ -1223,7 +1222,7 @@ OpenID configuration will allow users to authenticate through a third-party Open
The provider needs to support the `openid`, `profile` and `email` scopes.<br/>
**Note:** Some openid providers (like Gitlab) only make the email of the user available through OpenID if they have set it to be publicly visible.
If the email is not public in those cases, authenticating will fail.
+**Note 2:** The frontend expects the third party to redirect the user <frontend-url>/auth/openid/<auth key> after authentication. Please make sure to configure the redirect url in your third party auth service accordingly if you're using the default vikunja frontend.
**Note 2:** The frontend expects the third party to rediect the user <frontend-url>/auth/openid/<auth key> after authentication. Please make sure to configure the redirect url in your third party auth service accordingly if you're using the default vikunja frontend.
The frontend will automatically provide the API with the redirect url, composed from the current url where it's hosted.
If you want to use the desktop client with OpenID, make sure to allow redirects to `127.0.0.1`.
Take a look at the [default config file](https://kolaente.dev/vikunja/vikunja/src/branch/main/config.yml.sample) for more information about how to configure openid authentication.
@ -1422,15 +1421,15 @@ Full path: `webhooks.enabled`
Environment path: `VIKUNJA_WEBHOOKS_ENABLED`
### timeoutseconds
### timoutseconds
The timeout in seconds until a webhook request fails when no response has been received.
The timout in seconds until a webhook request fails when no response has been received.
Default: `30`
Full path: `webhooks.timeoutseconds`
Full path: `webhooks.timoutseconds`
Environment path: `VIKUNJA_WEBHOOKS_TIMEOUTSECONDS`
Environment path: `VIKUNJA_WEBHOOKS_TIMOUTSECONDS`
### proxyurl

View File

@ -40,7 +40,7 @@ chown 1000 $PWD/files
You'll need to do this before running any of the examples on this page.
Vikunja will not try to acquire ownership of the files folder, as that would mean it had to run as root.
Vikunja will not try to aquire ownership of the files folder, as that would mean it had to run as root.
## PostgreSQL
@ -312,7 +312,7 @@ To do that, you can
* Either activate SSH and paste the adapted compose file in a terminal (using Putty or similar)
* Without activating SSH as a "custom script" (go to Control Panel / Task Scheduler / Create / Scheduled Task / User-defined script)
* Without activating SSH, by using Portainer (you have to install first, check out [this tutorial](https://www.portainer.io/blog/how-to-install-portainer-on-a-synology-nas) for example):
* Without activating SSH, by using Portainer (you have to install first, check out [this tutorial](https://www.portainer.io/blog/how-to-install-portainer-on-a-synology-nas) for exmple):
1. Go to **Dashboard / Stacks** click the button **"Add Stack"**
2. Give it the name Vikunja and paste the adapted docker compose file
3. Deploy the Stack with the "Deploy Stack" button:

View File

@ -37,7 +37,7 @@ This document provides an overview and instructions for the different methods:
* [FreeBSD](#freebsd--freenas)
* [Kubernetes]({{< ref "k8s.md" >}})
And after you installed Vikunja, you may want to check out these other resources:
And after you installed Vikunja, you may want to check out these other ressources:
* [Configuration]({{< ref "config.md">}})
* [UTF-8 Settings]({{< ref "utf-8.md">}})
@ -229,7 +229,7 @@ git clone https://code.vikunja.io/vikunja
cd vikunja
```
**Note:** Check out the version you want to build with `git checkout VERSION` - replace `VERSION` with the version want to use.
**Note:** Ceck out the version you want to build with `git checkout VERSION` - replace `VERSION` with the version want to use.
If you don't do this, you'll build the [latest unstable build]({{< ref "versions.md">}}), which might contain bugs.
### Compile binaries

View File

@ -17,7 +17,7 @@ Vikunja allows for authentication with an external identity source such as Authe
## OpenID Connect Overview
OpenID Connect is a standardized identity layer built on top of the more generic OAuth 2.0 specification, simplifying interaction between the involved parties significantly.
OpenID Connect is a standardized identity layer built on top of the more generic OAuth 2.0 specification, simplying interaction between the involved parties significantly.
While the [OpenID specification](https://openid.net/specs/openid-connect-core-1_0.html#Overview) is worth a read, we summarize the most important basics here.
The involved parties are:

View File

@ -17,7 +17,7 @@ However, you can still run it in a subdirectory but need to build the frontend y
First, make sure you're able to build the frontend from source.
Check [the guide about building from source]({{< ref "build-from-source.md">}}#frontend) about that.
### Dynamically set with build command
### Dynamicly set with build command
Run the build with the `VIKUNJA_FRONTEND_BASE` variable specified.

View File

@ -147,7 +147,7 @@ Flags:
#### `user delete`
Start the user deletion process.
If called without the `--now` flag, this command will only trigger an email to the user in order for them to confirm and start the deletion process (this is the same behavior as if the user requested their deletion via the web interface).
If called without the `--now` flag, this command will only trigger an email to the user in order for them to confirm and start the deletion process (this is the same behavoir as if the user requested their deletion via the web interface).
With the flag the user is deleted **immediately**.
**USE WITH CAUTION.**

View File

@ -51,7 +51,7 @@ This document describes the different errors Vikunja can return.
| ErrorCode | HTTP Status Code | Description |
|-----------|------------------|-------------|
| 2001 | 400 | ID cannot be empty or 0. |
| 2002 | 400 | Some of the request data was invalid. The response contains an additional array with all invalid fields. |
| 2002 | 400 | Some of the request data was invalid. The response contains an aditional array with all invalid fields. |
## Project

View File

@ -61,7 +61,7 @@ Here are some examples of filter queries:
* `priority = 4`: Matches tasks with priority level 4
* `dueDate < now`: Matches tasks with a due date in the past
* `done = false && priority >= 3`: Matches undone tasks with priority level 3 or higher
* `assignees in user1, user2`: Matches tasks assigned to either "user1" or "user2
* `assignees in [user1, user2]`: Matches tasks assigned to either "user1" or "user2
* `(priority = 1 || priority = 2) && dueDate <= now`: Matches tasks with priority level 1 or 2 and a due date in the past

View File

@ -18,7 +18,7 @@ Starting with version 0.22.0, Vikunja allows you to define webhooks to notify ot
To create a webhook, in the project options select "Webhooks". The form will allow you to create and modify webhooks.
Check out [the api docs](https://try.vikunja.io/api/v1/docs#tag/webhooks) for information about how to create webhooks programmatically.
Check out [the api docs](https://try.vikunja.io/api/v1/docs#tag/webhooks) for information about how to create webhooks programatically.
## Available events and their payload

View File

@ -1 +1 @@
20.13.0
20.12.2

View File

@ -68,7 +68,7 @@ describe('Project View List', () => {
cy.get('.project-title-wrapper .icon')
.should('not.exist')
cy.get('input.input[placeholder="Add a task..."')
cy.get('input.input[placeholder="Add a new task..."')
.should('not.exist')
})

View File

@ -27,7 +27,7 @@ describe('Link shares', () => {
cy.get('h1.title')
.should('contain', project.title)
cy.get('input.input[placeholder="Add a task..."')
cy.get('input.input[placeholder="Add a new task..."')
.should('not.exist')
cy.get('.tasks')
.should('contain', tasks[0].title)
@ -42,7 +42,7 @@ describe('Link shares', () => {
cy.get('h1.title')
.should('contain', project.title)
cy.get('input.input[placeholder="Add a task..."')
cy.get('input.input[placeholder="Add a new task..."')
.should('not.exist')
cy.get('.tasks')
.should('contain', tasks[0].title)

View File

@ -14,12 +14,12 @@ describe('Team', () => {
const newTeamName = 'New Team'
cy.get('a.button')
.contains('Create a team')
.contains('Create a new team')
.click()
cy.url()
.should('contain', '/teams/new')
cy.get('.card-header-title')
.contains('Create a team')
.contains('Create a new team')
cy.get('input.input')
.type(newTeamName)
cy.get('.button')

View File

@ -42,7 +42,7 @@ function uploadAttachmentAndVerify(taskId: number) {
.selectFile('cypress/fixtures/image.jpg', {force: true}) // The input is not visible, but on purpose
cy.wait('@uploadAttachment')
cy.get('.attachments .attachments .files button.attachment')
cy.get('.attachments .attachments .files a.attachment')
.should('exist')
}
@ -65,7 +65,7 @@ describe('Task', () => {
it('Should be created new', () => {
cy.visit('/projects/1/1')
cy.get('.input[placeholder="Add a task…"')
cy.get('.input[placeholder="Add a new task…"')
.type('New Task')
cy.get('.button')
.contains('Add')
@ -81,7 +81,7 @@ describe('Task', () => {
cy.visit('/projects/1/1')
cy.get('.project-is-empty-notice')
.should('not.exist')
cy.get('.input[placeholder="Add a task…"')
cy.get('.input[placeholder="Add a new task…"')
.type('New Task')
cy.get('.button')
.contains('Add')
@ -640,7 +640,7 @@ describe('Task', () => {
.contains('Set Reminders')
.click()
cy.get('.task-view .columns.details .column button')
.contains('Add a reminder')
.contains('Add a new reminder')
.click()
cy.get('.datepicker__quick-select-date')
.contains('Tomorrow')
@ -665,7 +665,7 @@ describe('Task', () => {
.contains('Set Reminders')
.click()
cy.get('.task-view .columns.details .column button')
.contains('Add a reminder')
.contains('Add a new reminder')
.click()
cy.get('.datepicker__quick-select-date')
.should('not.exist')
@ -694,7 +694,7 @@ describe('Task', () => {
.contains('Set Reminders')
.click()
cy.get('.task-view .columns.details .column button')
.contains('Add a reminder')
.contains('Add a new reminder')
.click()
cy.get('.datepicker__quick-select-date')
.should('not.exist')
@ -723,7 +723,7 @@ describe('Task', () => {
.contains('Set Reminders')
.click()
cy.get('.task-view .columns.details .column button')
.contains('Add a reminder')
.contains('Add a new reminder')
.click()
cy.get('.datepicker__quick-select-date')
.should('not.exist')
@ -759,7 +759,7 @@ describe('Task', () => {
.contains('Set Reminders')
.click()
cy.get('.task-view .columns.details .column button')
.contains('Add a reminder')
.contains('Add a new reminder')
.click()
cy.get('.datepicker__quick-select-date')
.should('not.exist')

View File

@ -13,7 +13,7 @@
},
"homepage": "https://vikunja.io/",
"funding": "https://opencollective.com/vikunja",
"packageManager": "pnpm@9.1.0",
"packageManager": "pnpm@9.0.6",
"keywords": [
"todo",
"productivity",
@ -58,41 +58,41 @@
"@infectoone/vue-ganttastic": "2.3.2",
"@intlify/unplugin-vue-i18n": "4.0.0",
"@kyvg/vue3-notification": "3.2.1",
"@sentry/tracing": "7.114.0",
"@sentry/vue": "7.114.0",
"@tiptap/core": "2.3.2",
"@tiptap/extension-blockquote": "2.3.2",
"@tiptap/extension-bold": "2.3.2",
"@tiptap/extension-bullet-list": "2.3.2",
"@tiptap/extension-code": "2.3.2",
"@tiptap/extension-code-block-lowlight": "2.3.2",
"@tiptap/extension-document": "2.3.2",
"@tiptap/extension-dropcursor": "2.3.2",
"@tiptap/extension-gapcursor": "2.3.2",
"@tiptap/extension-hard-break": "2.3.2",
"@tiptap/extension-heading": "2.3.2",
"@tiptap/extension-history": "2.3.2",
"@tiptap/extension-horizontal-rule": "2.3.2",
"@tiptap/extension-image": "2.3.2",
"@tiptap/extension-italic": "2.3.2",
"@tiptap/extension-link": "2.3.2",
"@tiptap/extension-list-item": "2.3.2",
"@tiptap/extension-ordered-list": "2.3.2",
"@tiptap/extension-paragraph": "2.3.2",
"@tiptap/extension-placeholder": "2.3.2",
"@tiptap/extension-strike": "2.3.2",
"@tiptap/extension-table": "2.3.2",
"@tiptap/extension-table-cell": "2.3.2",
"@tiptap/extension-table-header": "2.3.2",
"@tiptap/extension-table-row": "2.3.2",
"@tiptap/extension-task-item": "2.3.2",
"@tiptap/extension-task-list": "2.3.2",
"@tiptap/extension-text": "2.3.2",
"@tiptap/extension-typography": "2.3.2",
"@tiptap/extension-underline": "2.3.2",
"@tiptap/pm": "2.3.2",
"@tiptap/suggestion": "2.3.2",
"@tiptap/vue-3": "2.3.2",
"@sentry/tracing": "7.113.0",
"@sentry/vue": "7.113.0",
"@tiptap/core": "2.3.1",
"@tiptap/extension-blockquote": "2.3.1",
"@tiptap/extension-bold": "2.3.1",
"@tiptap/extension-bullet-list": "2.3.1",
"@tiptap/extension-code": "2.3.1",
"@tiptap/extension-code-block-lowlight": "2.3.1",
"@tiptap/extension-document": "2.3.1",
"@tiptap/extension-dropcursor": "2.3.1",
"@tiptap/extension-gapcursor": "2.3.1",
"@tiptap/extension-hard-break": "2.3.1",
"@tiptap/extension-heading": "2.3.1",
"@tiptap/extension-history": "2.3.1",
"@tiptap/extension-horizontal-rule": "2.3.1",
"@tiptap/extension-image": "2.3.1",
"@tiptap/extension-italic": "2.3.1",
"@tiptap/extension-link": "2.3.1",
"@tiptap/extension-list-item": "2.3.1",
"@tiptap/extension-ordered-list": "2.3.1",
"@tiptap/extension-paragraph": "2.3.1",
"@tiptap/extension-placeholder": "2.3.1",
"@tiptap/extension-strike": "2.3.1",
"@tiptap/extension-table": "2.3.1",
"@tiptap/extension-table-cell": "2.3.1",
"@tiptap/extension-table-header": "2.3.1",
"@tiptap/extension-table-row": "2.3.1",
"@tiptap/extension-task-item": "2.3.1",
"@tiptap/extension-task-list": "2.3.1",
"@tiptap/extension-text": "2.3.1",
"@tiptap/extension-typography": "2.3.1",
"@tiptap/extension-underline": "2.3.1",
"@tiptap/pm": "2.3.1",
"@tiptap/suggestion": "2.3.1",
"@tiptap/vue-3": "2.3.1",
"@types/is-touch-device": "1.0.2",
"@types/lodash.clonedeep": "4.5.9",
"@vueuse/core": "10.9.0",
@ -118,7 +118,7 @@
"sortablejs": "1.15.2",
"tippy.js": "6.3.7",
"ufo": "1.5.3",
"vue": "3.4.27",
"vue": "3.4.26",
"vue-advanced-cropper": "2.8.8",
"vue-flatpickr-component": "11.0.5",
"vue-i18n": "9.13.1",
@ -142,26 +142,26 @@
"@types/is-touch-device": "1.0.2",
"@types/lodash.debounce": "4.0.9",
"@types/marked": "5.0.2",
"@types/node": "20.12.11",
"@types/node": "20.12.8",
"@types/postcss-preset-env": "7.7.0",
"@types/sortablejs": "1.15.8",
"@typescript-eslint/eslint-plugin": "7.8.0",
"@typescript-eslint/parser": "7.8.0",
"@vitejs/plugin-legacy": "5.4.0",
"@vitejs/plugin-legacy": "5.3.2",
"@vitejs/plugin-vue": "5.0.4",
"@vue/eslint-config-typescript": "13.0.0",
"@vue/test-utils": "2.4.6",
"@vue/test-utils": "2.4.5",
"@vue/tsconfig": "0.5.1",
"autoprefixer": "10.4.19",
"browserslist": "4.23.0",
"caniuse-lite": "1.0.30001617",
"caniuse-lite": "1.0.30001616",
"css-has-pseudo": "6.0.3",
"csstype": "3.1.3",
"cypress": "13.9.0",
"esbuild": "0.21.1",
"cypress": "13.8.1",
"esbuild": "0.20.2",
"eslint": "8.57.0",
"eslint-plugin-vue": "9.26.0",
"happy-dom": "14.10.1",
"eslint-plugin-vue": "9.25.0",
"happy-dom": "14.7.1",
"histoire": "0.17.17",
"postcss": "8.4.38",
"postcss-easing-gradients": "3.0.1",
@ -170,7 +170,7 @@
"postcss-preset-env": "9.5.11",
"rollup": "4.17.2",
"rollup-plugin-visualizer": "5.12.0",
"sass": "1.77.0",
"sass": "1.76.0",
"start-server-and-test": "2.0.3",
"typescript": "5.4.5",
"vite": "5.2.11",

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +1,26 @@
<template>
<div
:class="{
'has-background': background,
'link-share-is-fullwidth': isFullWidth,
}"
:class="[background ? 'has-background' : '', $route.name as string +'-view']"
:style="{'background-image': `url(${background})`}"
class="link-share-container"
>
<div class="has-text-centered link-share-view">
<Logo
v-if="logoVisible"
class="logo"
/>
<h1
:class="{'m-0': !logoVisible}"
:style="{ 'opacity': currentProject?.title === '' ? '0': '1' }"
class="title"
>
{{ currentProject?.title === '' ? $t('misc.loading') : currentProject?.title }}
</h1>
<div class="box has-text-left view">
<router-view />
<PoweredByLink />
<div class="container has-text-centered link-share-view">
<div class="column is-10 is-offset-1">
<Logo
v-if="logoVisible"
class="logo"
/>
<h1
:class="{'m-0': !logoVisible}"
:style="{ 'opacity': currentProject?.title === '' ? '0': '1' }"
class="title"
>
{{ currentProject?.title === '' ? $t('misc.loading') : currentProject?.title }}
</h1>
<div class="box has-text-left view">
<router-view />
<PoweredByLink />
</div>
</div>
</div>
</div>
@ -31,13 +30,11 @@
import {computed} from 'vue'
import {useBaseStore} from '@/stores/base'
import {useRoute} from 'vue-router'
import Logo from '@/components/home/Logo.vue'
import PoweredByLink from './PoweredByLink.vue'
import {useProjectStore} from '@/stores/projects'
import {useLabelStore} from '@/stores/labels'
import {PROJECT_VIEW_KINDS} from '@/modelTypes/IProjectView'
const baseStore = useBaseStore()
const currentProject = computed(() => baseStore.currentProject)
@ -49,20 +46,6 @@ projectStore.loadAllProjects()
const labelStore = useLabelStore()
labelStore.loadAllLabels()
const route = useRoute()
const isFullWidth = computed(() => {
const viewId = route.params?.viewId ?? null
const projectId = route.params?.projectId ?? null
if (!viewId || !projectId) {
return false
}
const view = projectStore.projects[Number(projectId)]?.views.find(v => v.id === Number(viewId))
return view?.viewKind === PROJECT_VIEW_KINDS.KANBAN ||
view?.viewKind === PROJECT_VIEW_KINDS.GANTT
})
</script>
<style lang="scss" scoped>
@ -74,34 +57,20 @@ const isFullWidth = computed(() => {
.logo {
max-width: 300px;
width: 90%;
margin: 1rem auto 2rem;
margin: 2rem 0 1.5rem;
height: 100px;
}
.column {
max-width: 100%;
}
.title {
text-shadow: 0 0 1rem var(--white);
}
.link-share-view {
width: 100%;
max-width: $desktop;
margin: 0 auto;
}
.link-share-container.link-share-is-fullwidth {
.link-share-view {
max-width: 100vw;
}
}
.link-share-container:not(.has-background) {
:deep(.loader-container, .gantt-chart-container > .card) {
box-shadow: none !important;
border: none;
.task-add {
padding: 1rem 0 0;
}
}
// FIXME: this should be defined somewhere deep
.link-share-view .card {
background-color: var(--white);
}
</style>

View File

@ -67,7 +67,6 @@
class="tiptap__editor"
:class="{'tiptap__editor-is-edit-enabled': isEditing}"
:editor="editor"
@dblclick="setEditIfApplicable()"
@click="focusIfEditing()"
/>
@ -172,7 +171,7 @@ import {OrderedList} from '@tiptap/extension-ordered-list'
import {Paragraph} from '@tiptap/extension-paragraph'
import {Strike} from '@tiptap/extension-strike'
import {Text} from '@tiptap/extension-text'
import {BubbleMenu, EditorContent, type Extensions, useEditor} from '@tiptap/vue-3'
import {BubbleMenu, EditorContent, useEditor} from '@tiptap/vue-3'
import {Node} from '@tiptap/pm/model'
import Commands from './commands'
@ -190,7 +189,7 @@ import BaseButton from '@/components/base/BaseButton.vue'
import XButton from '@/components/input/button.vue'
import {Placeholder} from '@tiptap/extension-placeholder'
import {eventToHotkeyString} from '@github/hotkey'
import {Extension, mergeAttributes} from '@tiptap/core'
import {mergeAttributes} from '@tiptap/core'
import {isEditorContentEmpty} from '@/helpers/editorContentEmpty'
import inputPrompt from '@/helpers/inputPrompt'
import {setLinkInEditor} from '@/components/input/editor/setLinkInEditor'
@ -203,7 +202,6 @@ const {
showSave = false,
placeholder = '',
editShortcut = '',
enableDiscardShortcut = false,
} = defineProps<{
modelValue: string,
uploadCallback?: UploadCallback,
@ -212,7 +210,6 @@ const {
showSave?: boolean,
placeholder?: string,
editShortcut?: string,
enableDiscardShortcut?: boolean,
}>()
const emit = defineEmits(['update:modelValue', 'save'])
@ -314,8 +311,6 @@ const internalMode = ref<Mode>('preview')
const isEditing = computed(() => internalMode.value === 'edit' && isEditEnabled)
const contentHasChanged = ref<boolean>(false)
let lastSavedState = modelValue
watch(
() => internalMode.value,
mode => {
@ -325,127 +320,109 @@ watch(
},
)
const extensions : Extensions = [
// Starterkit:
Blockquote,
Bold,
BulletList,
Code,
CodeBlockLowlight.configure({
lowlight,
}),
Document,
Dropcursor,
Gapcursor,
HardBreak.extend({
addKeyboardShortcuts() {
return {
'Shift-Enter': () => this.editor.commands.setHardBreak(),
'Mod-Enter': () => {
if (contentHasChanged.value) {
bubbleSave()
}
return true
},
}
},
}),
Heading,
History,
HorizontalRule,
Italic,
ListItem,
OrderedList,
Paragraph,
Strike,
Text,
Placeholder.configure({
placeholder: ({editor}) => {
if (!isEditing.value) {
return ''
}
if (editor.getText() !== '' && !editor.isFocused) {
return ''
}
return placeholder !== ''
? placeholder
: t('input.editor.placeholder')
},
}),
Typography,
Underline,
Link.configure({
openOnClick: false,
validate: (href: string) => /^https?:\/\//.test(href),
}),
Table.configure({
resizable: true,
}),
TableRow,
TableHeader,
// Custom TableCell with backgroundColor attribute
CustomTableCell,
CustomImage,
TaskList,
TaskItem.configure({
nested: true,
onReadOnlyChecked: (node: Node, checked: boolean): boolean => {
if (!isEditEnabled) {
return false
}
// The following is a workaround for this bug:
// https://github.com/ueberdosis/tiptap/issues/4521
// https://github.com/ueberdosis/tiptap/issues/3676
editor.value!.state.doc.descendants((subnode, pos) => {
if (node.eq(subnode)) {
const {tr} = editor.value!.state
tr.setNodeMarkup(pos, undefined, {
...node.attrs,
checked,
})
editor.value!.view.dispatch(tr)
bubbleSave()
}
})
return true
},
}),
Commands.configure({
suggestion: suggestionSetup(t),
}),
BubbleMenu,
]
// Add a custom extension for the Escape key
if (enableDiscardShortcut) {
extensions.push(Extension.create({
name: 'escapeKey',
addKeyboardShortcuts() {
return {
'Escape': () => {
exitEditMode()
return true
},
}
},
}))
}
const editor = useEditor({
// eslint-disable-next-line vue/no-ref-object-destructure
editable: isEditing.value,
extensions: extensions,
extensions: [
// Starterkit:
Blockquote,
Bold,
BulletList,
Code,
CodeBlockLowlight.configure({
lowlight,
}),
Document,
Dropcursor,
Gapcursor,
HardBreak.extend({
addKeyboardShortcuts() {
return {
'Shift-Enter': () => this.editor.commands.setHardBreak(),
'Mod-Enter': () => {
if (contentHasChanged.value) {
bubbleSave()
}
return true
},
}
},
}),
Heading,
History,
HorizontalRule,
Italic,
ListItem,
OrderedList,
Paragraph,
Strike,
Text,
Placeholder.configure({
placeholder: ({editor}) => {
if (!isEditing.value) {
return ''
}
if (editor.getText() !== '' && !editor.isFocused) {
return ''
}
return placeholder !== ''
? placeholder
: t('input.editor.placeholder')
},
}),
Typography,
Underline,
Link.configure({
openOnClick: false,
validate: (href: string) => /^https?:\/\//.test(href),
}),
Table.configure({
resizable: true,
}),
TableRow,
TableHeader,
// Custom TableCell with backgroundColor attribute
CustomTableCell,
CustomImage,
TaskList,
TaskItem.configure({
nested: true,
onReadOnlyChecked: (node: Node, checked: boolean): boolean => {
if (!isEditEnabled) {
return false
}
// The following is a workaround for this bug:
// https://github.com/ueberdosis/tiptap/issues/4521
// https://github.com/ueberdosis/tiptap/issues/3676
editor.value!.state.doc.descendants((subnode, pos) => {
if (node.eq(subnode)) {
const {tr} = editor.value!.state
tr.setNodeMarkup(pos, undefined, {
...node.attrs,
checked,
})
editor.value!.view.dispatch(tr)
bubbleSave()
}
})
return true
},
}),
Commands.configure({
suggestion: suggestionSetup(t),
}),
BubbleMenu,
],
onUpdate: () => {
bubbleNow()
},
@ -484,27 +461,12 @@ function bubbleNow() {
function bubbleSave() {
bubbleNow()
lastSavedState = editor.value?.getHTML() ?? ''
emit('save', lastSavedState)
emit('save', editor.value?.getHTML())
if (isEditing.value) {
internalMode.value = 'preview'
}
}
function exitEditMode() {
editor.value?.commands.setContent(lastSavedState, false)
if (isEditing.value) {
internalMode.value = 'preview'
}
}
function setEditIfApplicable() {
if (!isEditEnabled) return
if (isEditing.value) return
setEdit()
}
function setEdit(focus: boolean = true) {
internalMode.value = 'edit'
if (focus) {

View File

@ -24,15 +24,11 @@ import {
faCocktail,
faCoffee,
faCog,
faCopy,
faDownload,
faEllipsisH,
faEllipsisV,
faExclamation,
faEye,
faEyeSlash,
faFile,
faFileImage,
faFillDrip,
faFilter,
faForward,
@ -85,6 +81,7 @@ import {
faCheckSquare,
faClock,
faComments,
faFileImage,
faSave,
faSquareCheck,
faStar,
@ -105,7 +102,6 @@ library.add(faUnlink)
library.add(faParagraph)
library.add(faSquareCheck)
library.add(faTable)
library.add(faFile)
library.add(faFileImage)
library.add(faCheckSquare)
library.add(faStrikethrough)
@ -134,8 +130,6 @@ library.add(faCocktail)
library.add(faCoffee)
library.add(faCog)
library.add(faComments)
library.add(faCopy)
library.add(faDownload)
library.add(faEllipsisH)
library.add(faEllipsisV)
library.add(faExclamation)

View File

@ -57,7 +57,7 @@ const showDocs = ref(false)
<code>done = false &amp;&amp; priority &gt;= 3</code>:
{{ $t('filters.query.help.examples.undoneHighPriority') }}
</li>
<li><code>assignees in user1, user2</code>: {{ $t('filters.query.help.examples.assigneesIn') }}</li>
<li><code>assignees in [user1, user2]</code>: {{ $t('filters.query.help.examples.assigneesIn') }}</li>
<li>
<code>(priority = 1 || priority = 2) &amp;&amp; dueDate &lt;= now</code>:
{{ $t('filters.query.help.examples.priorityOneOrTwoPastDue') }}

View File

@ -30,7 +30,7 @@
>
<icon icon="filter" />
</span>
{{ getProjectTitle(project) }}
{{ project.title }}
</div>
<BaseButton
class="project-button"
@ -59,7 +59,6 @@ import BaseButton from '@/components/base/BaseButton.vue'
import {useProjectBackground} from './useProjectBackground'
import {useProjectStore} from '@/stores/projects'
import {getProjectTitle} from '@/helpers/getProjectTitle'
const {
project,

View File

@ -306,12 +306,4 @@ function prepareFiltersAndLoadTasks() {
}
}
}
.list-view {
padding-bottom: 1rem;
:deep(.card) {
margin-bottom: 0;
}
}
</style>

View File

@ -27,87 +27,83 @@
v-if="attachments.length > 0"
class="files"
>
<button
<!-- FIXME: don't use a for element that wraps other links / buttons
Instead: overlay element with button that is inside.
-->
<a
v-for="a in attachments"
:key="a.id"
class="attachment"
@click="viewOrDownload(a)"
>
<div class="preview-column">
<FilePreview
class="attachment-preview"
:model-value="a"
/>
<div class="filename">
{{ a.file.name }}
<span
v-if="task.coverImageAttachmentId === a.id"
class="is-task-cover"
>
{{ $t('task.attachment.usedAsCover') }}
</span>
</div>
<div class="attachment-info-column">
<div class="filename">
{{ a.file.name }}
<span
v-if="task.coverImageAttachmentId === a.id"
class="is-task-cover"
<div class="info">
<p class="attachment-info-meta">
<i18n-t
keypath="task.attachment.createdBy"
scope="global"
>
{{ $t('task.attachment.usedAsCover') }}
<span v-tooltip="formatDateLong(a.created)">
{{ formatDateSince(a.created) }}
</span>
<User
:avatar-size="24"
:user="a.createdBy"
:is-inline="true"
/>
</i18n-t>
<span>
{{ getHumanSize(a.file.size) }}
</span>
</div>
<div class="info">
<p class="attachment-info-meta">
<i18n-t
keypath="task.attachment.createdBy"
scope="global"
>
<span v-tooltip="formatDateLong(a.created)">
{{ formatDateSince(a.created) }}
</span>
<User
:avatar-size="24"
:user="a.createdBy"
:is-inline="true"
/>
</i18n-t>
<span>
{{ getHumanSize(a.file.size) }}
</span>
<span v-if="a.file.mime">
{{ a.file.mime }}
</span>
</p>
<p>
<BaseButton
v-tooltip="$t('task.attachment.downloadTooltip')"
class="attachment-info-meta-button"
@click.prevent.stop="downloadAttachment(a)"
>
<icon icon="download" />
</BaseButton>
<BaseButton
v-tooltip="$t('task.attachment.copyUrlTooltip')"
class="attachment-info-meta-button"
@click.stop="copyUrl(a)"
>
<icon icon="copy" />
</BaseButton>
<BaseButton
v-if="editEnabled"
v-tooltip="$t('task.attachment.deleteTooltip')"
class="attachment-info-meta-button"
@click.prevent.stop="setAttachmentToDelete(a)"
>
<icon icon="trash-alt" />
</BaseButton>
<BaseButton
v-if="editEnabled && canPreview(a)"
v-tooltip="task.coverImageAttachmentId === a.id
<span v-if="a.file.mime">
{{ a.file.mime }}
</span>
</p>
<p>
<BaseButton
v-tooltip="$t('task.attachment.downloadTooltip')"
class="attachment-info-meta-button"
@click.prevent.stop="downloadAttachment(a)"
>
{{ $t('misc.download') }}
</BaseButton>
<BaseButton
v-tooltip="$t('task.attachment.copyUrlTooltip')"
class="attachment-info-meta-button"
@click.stop="copyUrl(a)"
>
{{ $t('task.attachment.copyUrl') }}
</BaseButton>
<BaseButton
v-if="editEnabled"
v-tooltip="$t('task.attachment.deleteTooltip')"
class="attachment-info-meta-button"
@click.prevent.stop="setAttachmentToDelete(a)"
>
{{ $t('misc.delete') }}
</BaseButton>
<BaseButton
v-if="editEnabled"
class="attachment-info-meta-button"
@click.prevent.stop="setCoverImage(task.coverImageAttachmentId === a.id ? null : a)"
>
{{
task.coverImageAttachmentId === a.id
? $t('task.attachment.unsetAsCover')
: $t('task.attachment.setAsCover')"
class="attachment-info-meta-button"
@click.prevent.stop="setCoverImage(task.coverImageAttachmentId === a.id ? null : a)"
>
<icon :icon="task.coverImageAttachmentId === a.id ? 'eye-slash' : 'eye'" />
</BaseButton>
</p>
</div>
: $t('task.attachment.setAsCover')
}}
</BaseButton>
</p>
</div>
</button>
</a>
</div>
<x-button
@ -192,7 +188,6 @@ import {useCopyToClipboard} from '@/composables/useCopyToClipboard'
import {error, success} from '@/message'
import {useTaskStore} from '@/stores/tasks'
import {useI18n} from 'vue-i18n'
import FilePreview from '@/components/tasks/partials/file-preview.vue'
const {
task,
@ -265,17 +260,13 @@ async function deleteAttachment() {
const attachmentImageBlobUrl = ref<string | null>(null)
async function viewOrDownload(attachment: IAttachment) {
if (canPreview(attachment)) {
if (SUPPORTED_IMAGE_SUFFIX.some((suffix) => attachment.file.name.endsWith(suffix))) {
attachmentImageBlobUrl.value = await attachmentService.getBlobUrl(attachment)
} else {
downloadAttachment(attachment)
}
}
function canPreview(attachment: IAttachment): boolean {
return SUPPORTED_IMAGE_SUFFIX.some((suffix) => attachment.file.name.endsWith(suffix))
}
const copy = useCopyToClipboard()
function copyUrl(attachment: IAttachment) {
@ -307,18 +298,11 @@ async function setCoverImage(attachment: IAttachment | null) {
}
.attachment {
display: grid;
grid-template-columns: 9rem 1fr;
align-items: center;
width: 100%;
padding: .5rem;
margin-bottom: .5rem;
display: block;
transition: background-color $transition;
background-color: transparent;
border: transparent;
border-radius: $radius;
padding: .5rem;
&:hover {
background-color: var(--grey-200);
@ -326,25 +310,22 @@ async function setCoverImage(attachment: IAttachment | null) {
}
.filename {
display: flex;
align-items: center;
font-weight: bold;
height: 2rem;
margin-bottom: .25rem;
color: var(--text);
}
.info {
color: var(--grey-500);
font-size: .9rem;
display: flex;
flex-direction: column;
p {
margin-bottom: 0;
display: flex;
> span,
> span:not(:last-child):after,
> button:not(:last-child):after {
content: '·';
padding: 0 .25rem;
}
}
@ -395,12 +376,6 @@ async function setCoverImage(attachment: IAttachment | null) {
}
}
.attachment-info-column {
display: flex;
flex-flow: column wrap;
align-self: start;
}
.attachment-info-meta {
display: flex;
align-items: center;
@ -432,7 +407,6 @@ async function setCoverImage(attachment: IAttachment | null) {
.attachment-info-meta-button {
color: var(--link);
padding: 0 .25rem;
}
@keyframes bounce {
@ -461,19 +435,9 @@ async function setCoverImage(attachment: IAttachment | null) {
}
}
.preview-column {
max-width: 8rem;
height: 5.2rem;
}
.attachment-preview {
height: 100%;
}
.is-task-cover {
background: var(--primary);
color: var(--white);
margin-left: .25rem;
padding: .25rem .35rem;
border-radius: 4px;
font-size: .75rem;

View File

@ -85,7 +85,6 @@
:upload-enabled="true"
:bottom-actions="actions[c.id]"
:show-save="true"
:enable-discard-shortcut="true"
initial-mode="preview"
@update:modelValue="
() => {

View File

@ -30,7 +30,6 @@
:placeholder="$t('task.description.placeholder')"
:show-save="true"
edit-shortcut="e"
:enable-discard-shortcut="true"
@update:modelValue="saveWithDelay"
@save="save"
/>

View File

@ -1,58 +0,0 @@
<template>
<!-- Preview image -->
<img
v-if="blobUrl"
:src="blobUrl"
alt="Attachment preview"
>
<!-- Fallback -->
<div
v-else
class="icon-wrapper"
>
<icon
size="6x"
icon="file"
/>
</div>
</template>
<script setup lang="ts">
import {type PropType, ref, shallowReactive, watchEffect} from 'vue'
import AttachmentService from '@/services/attachment'
import type {IAttachment} from '@/modelTypes/IAttachment'
import {SUPPORTED_IMAGE_SUFFIX} from '@/models/attachment'
const props = defineProps({
modelValue: {
type: Object as PropType<IAttachment>,
default: undefined,
},
})
const attachmentService = shallowReactive(new AttachmentService())
const blobUrl = ref<string | undefined>(undefined)
watchEffect(async () => {
if (props.modelValue && canPreview(props.modelValue)) {
blobUrl.value = await attachmentService.getBlobUrl(props.modelValue)
}
})
function canPreview(attachment: IAttachment): boolean {
return SUPPORTED_IMAGE_SUFFIX.some((suffix) => attachment.file.name.endsWith(suffix))
}
</script>
<style scoped lang="scss">
img {
width: 100%;
border-radius: $radius;
object-fit: cover;
}
.icon-wrapper {
color: var(--grey-500);
}
</style>

View File

@ -22,7 +22,6 @@ export const SUPPORTED_LOCALES = {
'ar-SA': 'اَلْعَرَبِيَّةُ',
'sl-SI': 'Slovenščina',
'pt-BR': 'Português Brasileiro',
'hr-HR': 'Hrvatski',
// IMPORTANT: Also add new languages to useDayjsLanguageSync
} as const

View File

@ -53,7 +53,7 @@
"loginWith": "تسجيل الدخول باستخدام {provider}",
"authenticating": "جاري التحقق…",
"openIdStateError": "حالة التحقق غير متطابقة، لا يمكن المتابعة!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "حدث خطأ أثناء التحقق مع الطرف الثالث.",
"logout": "تسجيل الخروج",
"emailInvalid": "الرجاء إدخال عنوان بريد إلكتروني صحيح.",
"usernameRequired": "الرجاء إدخال اسم المستخدم.",
@ -227,8 +227,8 @@
"title": "أرشفة \"{project}\"",
"archive": "أرشفة هذا المشروع",
"unarchive": "إلغاء أرشفة هذا المشروع",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "ستتمكن من إنشاء مهام جديدة أو تعديلها.",
"archiveText": "لن تتمكن من تعديل هذا المشروع أو إنشاء مهام جديدة حتى تقوم بإلغاء أرشفته.",
"success": "تم أرشفة المشروع بنجاح."
},
"background": {
@ -277,7 +277,7 @@
"title": "روابط المشاركة",
"what": "ما هو رابط المشاركة؟",
"explanation": "تتيح لك روابط المشاركة سهولة مشاركة مشروع مع المستخدمين الآخرين الذين ليس لديهم حساب في Vikunja.",
"create": "Create a link share",
"create": "إنشاء رابط مشاركة جديد",
"name": "الاسم (اختياري)",
"namePlaceholder": "مثال: Lorem Ipsum",
"nameExplanation": "ستظهر جميع الإجراءات التي يقوم بها رابط المشاركة مع الاسم.",
@ -317,9 +317,9 @@
"list": {
"title": "القائمة",
"add": "إضافة",
"addPlaceholder": "Add a task…",
"addPlaceholder": "إضافة مهمة جديدة…",
"empty": "هذا المشروع فارغ حاليا.",
"newTaskCta": "Create a task.",
"newTaskCta": "إنشاء مهمة جديدة.",
"editTask": "تعديل المهمة"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "أدخل عنوان المهمة الجديدة…",
"addTask": "إضافة مهمة",
"addAnotherTask": "إضافة مهمة أخرى",
"addBucket": "Create a bucket",
"addBucket": "إنشاء حافظة جديدة",
"addBucketPlaceholder": "أدخل عنوان الحافظة الجديدة…",
"deleteHeaderBucket": "حذف الحافظة",
"deleteBucketText1": "هل أنت متأكد من رغبتك في حذف هذه الحافظة؟",
@ -423,7 +423,7 @@
"create": {
"title": "فلتر جديد محفوظ",
"description": "الفلتر المحفوظ هو مشروع افتراضي يتم حسابه من مجموعة من الفلاتر في كل مرة يتم الوصول إليها.",
"action": "Create saved filter",
"action": "إنشاء فلتر جديد محفوظ",
"titleRequired": "يرجى تحديد عنوان للفلتر."
},
"delete": {
@ -507,7 +507,7 @@
"search": "اكتب للبحث عن تسمية…",
"create": {
"header": "تسمية جديدة",
"title": "Create a label",
"title": "إنشاء تسمية جديدة",
"titleRequired": "الرجاء تحديد العنوان.",
"success": "تم إنشاء التسمية بنجاح."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "جاري التحقق…",
"passwordRequired": "هذا المشروع المشترك يتطلب كلمة مرور. الرجاء إدخالها أدناه:",
"error": "An error occurred.",
"error": "حدث خطأ.",
"invalidPassword": "كلمة المرور غير صحيحة."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "إنشاء جديد",
"selectPlaceholder": "انقر أو اضغط على إدخال للاختيار"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "مهمة",
"new": "Create a task",
"new": "إنشاء مهمة جديدة",
"delete": "حذف هذه المهمة",
"createSuccess": "تم إنشاء المهمة بنجاح.",
"addReminder": "Add a reminder…",
"addReminder": "إضافة تذكير جديد…",
"doneSuccess": "تم بنجاح وضع علامة مكتملة على المهمة.",
"undoneSuccess": "تم بنجاح إلغاء وضع علامة مكتملة على المهمة.",
"undo": "تراجع",
@ -860,7 +860,7 @@
"unassignSuccess": "تم إلغاء تعيين المستخدم بنجاح."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "اكتب لإضافة تسمية جديدة…",
"createPlaceholder": "أضف هذا كتسمية جديدة",
"addSuccess": "تمت إضافة التسمية بنجاح.",
"createSuccess": "تم إنشاء التسمية بنجاح.",
@ -883,8 +883,8 @@
"relation": {
"add": "أضف علاقة لمهمة جديدة",
"new": "علاقة لمهمة جديدة",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "ابحث عن مهمة جديدة لإضافتها كـمهمة مرتبطة…",
"createPlaceholder": "إضافة هذه كمهمة ذات علاقة جديدة",
"differentProject": "هذه المهمة تنتمي إلى مشروع آخر.",
"noneYet": "لا توجد علاقات للمهام حتى الآن.",
"delete": "حذف علاقة المهمة",
@ -922,7 +922,7 @@
"every30d": "كل 30 يوماً",
"mode": "وضع التكرار",
"monthly": "شهرياً",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "من التاريخ الحالي",
"each": "كل",
"specifyAmount": "حدد قيمة…",
"hours": "الساعات",
@ -962,7 +962,7 @@
"title": "الفِرق",
"noTeams": "أنت حاليا لست جزءا من أي فريق.",
"create": {
"title": "Create a team",
"title": "إنشاء فريق جديد",
"success": "تم إنشاء الفريق بنجاح."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "تكرار",
"delete": "حذف",
"unarchive": "إلغاء الأرشفة",
"setBackground": "Background settings",
"setBackground": "تعيين خلفية",
"share": "مشاركة",
"newProject": "مشروع جديد",
"createProject": "إنشاء مشروع",

View File

@ -53,7 +53,7 @@
"loginWith": "Log in with {provider}",
"authenticating": "Authenticating…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logout",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Create new",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -227,8 +227,8 @@
"title": "Archivovat \"{project}\"",
"archive": "Archivovat tento projekt",
"unarchive": "Zrušit archivaci tohoto projektu",
"unarchiveText": "Budete moci vytvářet úkoly nebo je upravovat.",
"archiveText": "Tento projekt nebudete moci upravovat ani v něm vytvářet nové úkoly, dokud jej neobnovíte z archivu.",
"unarchiveText": "Budete moci vytvářet nové úkoly nebo je upravovat.",
"archiveText": "Tento projekt nebudete moci upravovat ani v něm vytvářet nové úkoly, dokud jej neodarchivujete.",
"success": "Projekt byl úspěšně archivován."
},
"background": {
@ -317,7 +317,7 @@
"list": {
"title": "Seznam",
"add": "Přidat",
"addPlaceholder": "Přidat úkol…",
"addPlaceholder": "Přidat nový úkol…",
"empty": "Tento projekt je zatím prázdný.",
"newTaskCta": "Vytvořit nový úkol.",
"editTask": "Upravit úkol"
@ -383,21 +383,21 @@
"secretDocs": "Další podrobnosti o používání tajných klíčů naleznete v dokumentaci."
},
"views": {
"header": "Upravit pohled",
"title": "Název",
"actions": "Akce",
"kind": "Druh",
"bucketConfigMode": "Režim nastavení sloupce",
"bucketConfig": "Nastavení sloupce",
"bucketConfigManual": "Manuál",
"filter": "Filtr",
"create": "Vytvořit pohled",
"createSuccess": "Pohled byl úspěšně vytvořen.",
"titleRequired": "Zadejte prosím název.",
"delete": "Odstranit tento pohled",
"deleteText": "Jste si jisti, že chcete odstranit tento pohled? Nebude již možné jej použít k zobrazení úkolů v tomto projektu. Tato akce neodstraní žádné úkoly. Toto nelze vrátit zpět!",
"deleteSuccess": "Pohled byl úspěšně odstraněn",
"onlyAdminsCanEdit": "Pohledy mohou upravovat pouze správci projektu."
"header": "Edit views",
"title": "Title",
"actions": "Actions",
"kind": "Kind",
"bucketConfigMode": "Bucket configuration mode",
"bucketConfig": "Bucket configuration",
"bucketConfigManual": "Manual",
"filter": "Filter",
"create": "Create view",
"createSuccess": "The view was created successfully.",
"titleRequired": "Please provide a title.",
"delete": "Delete this view",
"deleteText": "Are you sure you want to remove this view? It will no longer be possible to use it to view tasks in this project. This action won't delete any tasks. This cannot be undone!",
"deleteSuccess": "The view was successfully deleted",
"onlyAdminsCanEdit": "Only project admins can edit views."
}
},
"filters": {
@ -507,7 +507,7 @@
"search": "Zadejte hledaný štítek…",
"create": {
"header": "Nový štítek",
"title": "Vytvořit štítek",
"title": "Vytvořit nový štítek",
"titleRequired": "Zadejte název prosím.",
"success": "Štítek byl úspěšně vytvořen."
},
@ -642,7 +642,7 @@
"placeholder": "Zadejte nějaký text nebo stiskněte '/' pro zobrazení více možností…"
},
"multiselect": {
"createPlaceholder": "Vytvořit",
"createPlaceholder": "Vytvořit nový",
"selectPlaceholder": "Kliknutím nebo stisknutím klávesy Enter vyberte"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Úkol",
"new": "Vytvořit úkol",
"new": "Vytvořit nový úkol",
"delete": "Smazat tento úkol",
"createSuccess": "Úkol byl úspěšně vytvořen.",
"addReminder": "Přidat připomínku…",
"addReminder": "Přidat novou připomínku…",
"doneSuccess": "Úkol byl úspěšně označen jako dokončený.",
"undoneSuccess": "Úkol byl úspěšně znovu otevřen.",
"undo": "Vrátit zpět",
@ -860,7 +860,7 @@
"unassignSuccess": "Uživatel byl úspěšně vyloučen."
},
"label": {
"placeholder": "Pište pro přidání nového štítku…",
"placeholder": "Zadejte pro přidání nového štítku…",
"createPlaceholder": "Přidat toto jako nový štítek",
"addSuccess": "Štítek byl úspěšně přidán.",
"createSuccess": "Štítek byl úspěšně vytvořen.",
@ -883,8 +883,8 @@
"relation": {
"add": "Přidat nový vztah úkolu",
"new": "Nový vztah k úkolu",
"searchPlaceholder": "Hledejte úkol, který chcete přidat jako související…",
"createPlaceholder": "Přidat jako související úkol",
"searchPlaceholder": "Hledejte nový úkol, který chcete přidat jako související…",
"createPlaceholder": "Přidat toto jako nový související úkol",
"differentProject": "Tento úkol patří do jiného projektu.",
"noneYet": "Zatím žádné vztahy mezi úkoly.",
"delete": "Odstranit vztah k úloze",
@ -922,7 +922,7 @@
"every30d": "Každých 30 dní",
"mode": "Režim opakování",
"monthly": "Měsíčně",
"fromCurrentDate": "Od data dokončení",
"fromCurrentDate": "Od aktuálního data",
"each": "Každý",
"specifyAmount": "Zadejte množství…",
"hours": "Hodin",
@ -962,7 +962,7 @@
"title": "Týmy",
"noTeams": "Momentálně nejste v žádném týmu.",
"create": {
"title": "Vytvořit tým",
"title": "Vytvořit nový tým",
"success": "Tým byl úspěšně vytvořen."
},
"edit": {
@ -1060,13 +1060,13 @@
"duplicate": "Duplikovat",
"delete": "Smazat",
"unarchive": "Zrušit archivaci",
"setBackground": "Nastavení pozadí",
"setBackground": "Nastavit pozadí",
"share": "Sdílet",
"newProject": "Nový projekt",
"createProject": "Vytvořit projekt",
"cantArchiveIsDefault": "Nemůžete archivovat svůj výchozí projekt.",
"cantDeleteIsDefault": "Nemůžete smazat svůj výchozí projekt.",
"views": "Pohledy"
"views": "Views"
},
"apiConfig": {
"url": "Vikunja URL",
@ -1114,10 +1114,10 @@
"altFormatShort": "j M Y"
},
"reaction": {
"reactedWith": "{user} zareagoval s {value}",
"reactedWithAnd": "{users} a {lastUser} zareagovali s {value}",
"reactedWithAndMany": "{users} a {num} zareagovali s {value}",
"add": "Přidejte svou reakci"
"reactedWith": "{user} reacted with {value}",
"reactedWithAnd": "{users} and {lastUser} reacted with {value}",
"reactedWithAndMany": "{users} and {num} more reacted reacted with {value}",
"add": "Add your reaction"
},
"error": {
"error": "Chyba",

View File

@ -53,7 +53,7 @@
"loginWith": "Log ind med {provider}",
"authenticating": "Godkender…",
"openIdStateError": "Indholdet stemmer ikke overens, nægter at fortsætte!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Der opstod en fejl under godkendelse mod tredjeparten.",
"logout": "Log ud",
"emailInvalid": "Indtast venligst en gyldig e-mailadresse.",
"usernameRequired": "Angiv venligst et brugernavn.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "Nyt Gemt Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Opret nyt gemt filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Skriv for at søge efter en etiket…",
"create": {
"header": "Ny etiket",
"title": "Create a label",
"title": "Opret ny etiket",
"titleRequired": "Angiv venligst en titel.",
"success": "Etiketten blev oprettet."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Godkender…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "Der opstod en fejl.",
"invalidPassword": "Adgangskoden er ugyldig."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Opret ny",
"selectPlaceholder": "Klik eller tryk på Enter for at vælge"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Opgave",
"new": "Create a task",
"new": "Opret en ny opgave",
"delete": "Slet denne opgave",
"createSuccess": "Opgaven blev oprettet.",
"addReminder": "Add a reminder…",
"addReminder": "Tilføj en ny påmindelse…",
"doneSuccess": "Opgaven blev markeret som udført.",
"undoneSuccess": "Opgaven fik fjernet sin udført-markering.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "Brugeren er blevet frakoblet."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Skriv for at tilføje en ny etiket…",
"createPlaceholder": "Tilføj dette som ny etiket",
"addSuccess": "Etiketten er blevet tilføjet.",
"createSuccess": "Etiketten er blevet oprettet.",
@ -883,8 +883,8 @@
"relation": {
"add": "Tilføj en ny opgaverelation",
"new": "Ny Opgaverelation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Indtast søgning efter en ny opgave der tilføjes som relateret…",
"createPlaceholder": "Tilføj dette som en ny relateret opgave",
"differentProject": "This task belongs to a different project.",
"noneYet": "Ingen opgaverelationer endnu.",
"delete": "Slet Opgaverelation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Gentagelsestilstand",
"monthly": "Månedligt",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Fra Nuværende Dato",
"each": "Hver",
"specifyAmount": "Angiv et beløb…",
"hours": "Timer",
@ -962,7 +962,7 @@
"title": "Hold",
"noTeams": "Du er i øjeblikket ikke en del af et hold.",
"create": {
"title": "Create a team",
"title": "Opret et nyt hold",
"success": "Holdet blev oprettet."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Dupliker",
"delete": "Slet",
"unarchive": "Tilbagekald",
"setBackground": "Background settings",
"setBackground": "Indstil baggrund",
"share": "Del",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Mit {provider} anmelden",
"authenticating": "Authentifizierung…",
"openIdStateError": "Zustand stimmt nicht überein, fahre nicht fort!",
"openIdGeneralError": "Es ist ein Fehler bei der externen Authentifizierung aufgetreten.",
"openIdGeneralError": "Es ist ein Fehler bei der externen Authentisierung aufgetreten.",
"logout": "Abmelden",
"emailInvalid": "Bitte gib eine gültige E-Mail-Adresse ein.",
"usernameRequired": "Bitte gib einen Anmeldenamen ein.",
@ -227,8 +227,8 @@
"title": "„{project}“ archivieren",
"archive": "Dieses Projekt archivieren",
"unarchive": "Archivierung dieses Projekts aufheben",
"unarchiveText": "Du kannst Aufgaben erstellen oder diese bearbeiten.",
"archiveText": "Du kannst dieses Projekt nicht bearbeiten oder Aufgaben erstellen, bis du die Archivierung aufhebst.",
"unarchiveText": "Du wirst neue Aufgaben erstellen oder sie bearbeiten können.",
"archiveText": "Du kannst dieses Projekt nicht bearbeiten oder neue Aufgaben erstellen, bis du die Archivierung aufhebst.",
"success": "Das Projekt wurde erfolgreich archiviert."
},
"background": {
@ -277,7 +277,7 @@
"title": "Linkfreigaben",
"what": "Was ist eine Linkfreigabe?",
"explanation": "Mit Linkfreigaben kannst Projekt du Listen mit Benutzer:innen ohne Vikunja-Account teilen.",
"create": "Erstelle ein Linkfreigabe",
"create": "Erstelle ein neue Linkfreigabe",
"name": "Name (optional)",
"namePlaceholder": "z.B. Lorem Ipsum",
"nameExplanation": "Alle Aktionen, die mit dieser Linkfreigabe durchgeführt werden, werden mit diesem Namen angezeigt.",
@ -317,9 +317,9 @@
"list": {
"title": "Liste",
"add": "Hinzufügen",
"addPlaceholder": "Aufgabe hinzufügen…",
"addPlaceholder": "Neue Aufgabe hinzufügen…",
"empty": "Dieses Project ist derzeit leer.",
"newTaskCta": "Aufgabe erstellen.",
"newTaskCta": "Eine neue Aufgabe erstellen.",
"editTask": "Aufgabe bearbeiten"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Gebe einen Aufgabentitel ein …",
"addTask": "Eine Aufgabe hinzufügen",
"addAnotherTask": "Weitere Aufgabe hinzufügen",
"addBucket": "Bucket erstellen",
"addBucket": "Eine neue Spalte erstellen",
"addBucketPlaceholder": "Gebe einen Spaltentitel ein…",
"deleteHeaderBucket": "Spalte löschen",
"deleteBucketText1": "Bist du sicher, dass du diese Spalte löschen möchtest?",
@ -423,7 +423,7 @@
"create": {
"title": "Neuer gespeicherter Filter",
"description": "Ein gespeicherter Filter ist ein virtuelles Projekt, das bei jedem Zugriff aus einem Satz von Filtern errechnet wird.",
"action": "Gespeicherten Filter erstellen",
"action": "Neuen gespeicherten Filter erstellen",
"titleRequired": "Bitte gib den Titel für den Filter an."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Beginne zu schreiben, um nach einem Label zu suchen…",
"create": {
"header": "Neues Label",
"title": "Label erstellen",
"title": "Erstelle ein neues Label",
"titleRequired": "Bitte gebe einen Titel an.",
"success": "Das Label wurde erfolgreich erstellt."
},
@ -642,7 +642,7 @@
"placeholder": "Gib Text ein, drücke '/' für mehr Optionen…"
},
"multiselect": {
"createPlaceholder": "Erstellen",
"createPlaceholder": "Neu erstellen",
"selectPlaceholder": "Klicken oder Enter drücken zum Auswählen"
},
"datepickerRange": {
@ -721,7 +721,7 @@
},
"task": {
"task": "Aufgabe",
"new": "Aufgabe erstellen",
"new": "Eine neue Aufgabe erstellen",
"delete": "Diese Aufgabe löschen",
"createSuccess": "Die Aufgabe wurde erfolgreich erstellt.",
"addReminder": "Eine Erinnerung hinzufügen…",
@ -860,7 +860,7 @@
"unassignSuccess": "Benutzer:innenzuweisung aufgehoben."
},
"label": {
"placeholder": "Beginne zu schreiben, um ein Label hinzuzufügen…",
"placeholder": "Tippen, um ein neues Label hinzuzufügen…",
"createPlaceholder": "Dies als neues Label hinzufügen",
"addSuccess": "Das Label wurde erfolgreich hinzugefügt.",
"createSuccess": "Das Label wurde erfolgreich erstellt.",
@ -883,8 +883,8 @@
"relation": {
"add": "Neue Aufgabenbeziehung hinzufügen",
"new": "Neue Aufgabenbeziehung",
"searchPlaceholder": "Suche nach einer Aufgabe für diese Beziehung…",
"createPlaceholder": "Füge diese Aufgabe als Aufgabenbeziehung hinzu",
"searchPlaceholder": "Beginne zu schreiben, um eine Aufgabe zu suchen, die als Beziehung hinzugefügt werden soll…",
"createPlaceholder": "Füge diese Aufgabe als neue Aufgabenbeziehung hinzu",
"differentProject": "Diese Aufgabe gehört zu einem anderen Projekt.",
"noneYet": "Keine Aufgabenbeziehung vorhanden.",
"delete": "Aufgabenbeziehung entfernen",
@ -922,7 +922,7 @@
"every30d": "Alle 30 Tage",
"mode": "Wiederholungsmodus",
"monthly": "Monatlich",
"fromCurrentDate": "Ab Fertigstellungsdatum",
"fromCurrentDate": "Ab dem aktuellen Datum",
"each": "Alle",
"specifyAmount": "Gib einen Anzahl an …",
"hours": "Stunden",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "Du bist derzeit in keinem Team.",
"create": {
"title": "Team erstellen",
"title": "Erstelle ein neues Team",
"success": "Das Team wurde erfolgreich erstellt."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplizieren",
"delete": "Löschen",
"unarchive": "Archivierung aufheben",
"setBackground": "Hintergrundeinstellungen",
"setBackground": "Hintergrund einstellen",
"share": "Teilen",
"newProject": "Neues Projekt",
"createProject": "Projekt erstellen",

View File

@ -53,7 +53,7 @@
"loginWith": "Iihlogge mit {provider}",
"authenticating": "Authentifiziere…",
"openIdStateError": "Status stimmt nid überiih, ich verweigerä wiiter zmache!",
"openIdGeneralError": "Es ist ein Fehler bei der externen Authentifizierung aufgetreten.",
"openIdGeneralError": "Es ist ein Fehler bei der externen Authentisierung aufgetreten.",
"logout": "Uuslogge",
"emailInvalid": "Bitte gib eine gültige E-Mail-Adresse ein.",
"usernameRequired": "Bitte gib einen Anmeldenamen ein.",
@ -227,8 +227,8 @@
"title": "„{project}“ archivieren",
"archive": "Dieses Projekt archivieren",
"unarchive": "Archivierung dieses Projekts aufheben",
"unarchiveText": "Du kannst Aufgaben erstellen oder diese bearbeiten.",
"archiveText": "Du kannst dieses Projekt nicht bearbeiten oder Aufgaben erstellen, bis du die Archivierung aufhebst.",
"unarchiveText": "Du wirst neue Aufgaben erstellen oder sie bearbeiten können.",
"archiveText": "Du kannst dieses Projekt nicht bearbeiten oder neue Aufgaben erstellen, bis du die Archivierung aufhebst.",
"success": "Das Projekt wurde erfolgreich archiviert."
},
"background": {
@ -277,7 +277,7 @@
"title": "Linkfreigaben",
"what": "Was ist eine Linkfreigabe?",
"explanation": "Mit Linkfreigaben kannst Projekt du Listen mit Benutzer:innen ohne Vikunja-Account teilen.",
"create": "Erstelle ein Linkfreigabe",
"create": "Erstelle ein neue Linkfreigabe",
"name": "Name (optional)",
"namePlaceholder": "z.B. Lorem Ipsum",
"nameExplanation": "Alle Aktionen, die mit dieser Linkfreigabe durchgeführt werden, werden mit diesem Namen angezeigt.",
@ -317,9 +317,9 @@
"list": {
"title": "Liste",
"add": "Hinzufügen",
"addPlaceholder": "Aufgabe hinzufügen…",
"addPlaceholder": "Neue Aufgabe hinzufügen…",
"empty": "Dieses Project ist derzeit leer.",
"newTaskCta": "Aufgabe erstellen.",
"newTaskCta": "Eine neue Aufgabe erstellen.",
"editTask": "Aufgabe bearbeiten"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Gebe einen Aufgabentitel ein …",
"addTask": "Eine Aufgabe hinzufügen",
"addAnotherTask": "Weitere Aufgabe hinzufügen",
"addBucket": "Bucket erstellen",
"addBucket": "Eine neue Spalte erstellen",
"addBucketPlaceholder": "Gebe einen Spaltentitel ein…",
"deleteHeaderBucket": "Spalte löschen",
"deleteBucketText1": "Bist du sicher, dass du diese Spalte löschen möchtest?",
@ -423,7 +423,7 @@
"create": {
"title": "Neuer gespeicherter Filter",
"description": "Ein gespeicherter Filter ist ein virtuelles Projekt, das bei jedem Zugriff aus einem Satz von Filtern errechnet wird.",
"action": "Gespeicherten Filter erstellen",
"action": "Neue gspeicherete Filter erstelle",
"titleRequired": "Bitte gib den Titel für den Filter an."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Schriib, um nachemne Label z'sueche…",
"create": {
"header": "Neus Label",
"title": "Label erstellen",
"title": "Neus Label erstelle",
"titleRequired": "Bitte gib en Titl ah.",
"success": "Da Label isch erfolgriich erstellt wore."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authentifiziere…",
"passwordRequired": "Dieses geteilte Projekt benötigt ein Passwort. Bitte gebe es unten ein:",
"error": "Es ist ein Fehler aufgetreten.",
"error": "Het en Fähler geh. :(",
"invalidPassword": "Da Passwort isch ungültig."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Gib Text ein, drücke '/' für mehr Optionen…"
},
"multiselect": {
"createPlaceholder": "Erstellen",
"createPlaceholder": "Neu erstelle",
"selectPlaceholder": "Druck uf Enter zum uuswähle"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Uufgab",
"new": "Aufgabe erstellen",
"new": "Neui Uufgab erstelle",
"delete": "Die Uufgab chüble",
"createSuccess": "Die Uufgab isch erfolgriich erstellt wordä.",
"addReminder": "Eine Erinnerung hinzufügen…",
"addReminder": "Neui Errinnerig erstelle…",
"doneSuccess": "Die Uufgab isch erfolgriich als \"Fertig\" markiert wordä.",
"undoneSuccess": "Die Uufgaab isch nüme als fertig markiert.",
"undo": "Rückgängig",
@ -860,7 +860,7 @@
"unassignSuccess": "D'Zuewiisig vom Benutzer isch erfolgriich entfernt worde."
},
"label": {
"placeholder": "Beginne zu schreiben, um ein Label hinzuzufügen…",
"placeholder": "Schriib, um es neues Label hinzuezfüege…",
"createPlaceholder": "Das als neues Label hinzuefüege",
"addSuccess": "Das Label isch erfolgriich hinzuegfüegt worde.",
"createSuccess": "Das Label isch erfolgriich erstellt worde.",
@ -883,8 +883,8 @@
"relation": {
"add": "Neui Uufgabe Beziehig hinzuefüege",
"new": "Neui Uufgabe Beziehig",
"searchPlaceholder": "Suche nach einer Aufgabe für diese Beziehung…",
"createPlaceholder": "Füge diese Aufgabe als Aufgabenbeziehung hinzu",
"searchPlaceholder": "Schriib, um e neui Uufgab als Zueghörigkeit hinzuezfüege…",
"createPlaceholder": "Das als en neui Zueghörigkeit hinzuefüege",
"differentProject": "Diese Aufgabe gehört zu einem anderen Projekt.",
"noneYet": "S'git kei Uufgabe Beziehige.",
"delete": "Uufgabe Beziehig chüble",
@ -922,7 +922,7 @@
"every30d": "Alle 30 Tage",
"mode": "Widerholigs Modus",
"monthly": "Monatlich",
"fromCurrentDate": "Ab Fertigstellungsdatum",
"fromCurrentDate": "Vom Hüttige Datum",
"each": "Jedä",
"specifyAmount": "Gib e Ahzahl ah…",
"hours": "Stundä",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "Du hesch momentan kei Team Ahghörigkeit.",
"create": {
"title": "Team erstellen",
"title": "E neus Team erstelle",
"success": "Da Team isch erfolgriich erstellt wordä."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Dublizierä",
"delete": "Chüble",
"unarchive": "Ent-archiviere",
"setBackground": "Hintergrundeinstellungen",
"setBackground": "Hintergrund iihstelle",
"share": "Teilä",
"newProject": "Neues Projekt",
"createProject": "Projekt erstellen",

View File

@ -53,7 +53,7 @@
"loginWith": "Log in with {provider}",
"authenticating": "Authenticating…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logout",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -643,7 +643,7 @@
}
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Create new",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -722,10 +722,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -861,7 +861,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -884,8 +884,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -923,7 +923,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -963,7 +963,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1061,7 +1061,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Log in with {provider}",
"authenticating": "Authenticating…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logout",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Create new",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Inicie sesión con {provider}",
"authenticating": "Autenticando…",
"openIdStateError": "El estado no coincide, ¡negándose a continuar!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Se ha producido un error al autenticarse contra terceros.",
"logout": "Cerrar sesión",
"emailInvalid": "Por favor, introduce una dirección de correo electrónico válida.",
"usernameRequired": "Por favor, proporciona un nombre de usuario.",
@ -227,8 +227,8 @@
"title": "Archivar \"{project}\"",
"archive": "Archiva este proyecto",
"unarchive": "Desarchivar este proyecto",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "Desde aquí podrás crear nuevas tareas o editarlas.",
"archiveText": "No será posible editar este proyecto o crear nuevas tareas hasta que deje de estar archivado.",
"success": "El proyecto ha sido archivado con éxito."
},
"background": {
@ -277,7 +277,7 @@
"title": "Compartir Enlaces",
"what": "¿Qué es un enlace compartido?",
"explanation": "Los Enlaces Compartidos te permiten compartir fácilmente un proyecto con otros usuarios que no tienen una cuenta en Vikunja.",
"create": "Create a link share",
"create": "Crear un nuevo enlace compartido",
"name": "Nombre (opcional)",
"namePlaceholder": "ej. Lorem Ipsum",
"nameExplanation": "Todas las acciones realizadas por este enlace compartido se mostrarán con el nombre.",
@ -317,9 +317,9 @@
"list": {
"title": "Lista",
"add": "Añadir",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Añadir una nueva tarea…",
"empty": "Este proyecto está actualmente vacío.",
"newTaskCta": "Create a task.",
"newTaskCta": "Crear una nueva tarea.",
"editTask": "Editar Tarea"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Introduce el nuevo título de la tarea…",
"addTask": "Añadir una tarea",
"addAnotherTask": "Añadir otra tarea",
"addBucket": "Create a bucket",
"addBucket": "Crear un nuevo contenedor",
"addBucketPlaceholder": "Introduzca el nuevo título del contenedor…",
"deleteHeaderBucket": "Eliminar el contenedor",
"deleteBucketText1": "¿Estás seguro de que quieres eliminar este contenedor?",
@ -423,7 +423,7 @@
"create": {
"title": "Nuevo Filtro Guardado",
"description": "Un filtro guardado es un proyecto virtual que se calcula a partir de un conjunto de filtros cada vez que se accede.",
"action": "Create saved filter",
"action": "Crear nuevo filtro guardado",
"titleRequired": "Por favor, introduce un título para el filtro."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Escribe para buscar una etiqueta…",
"create": {
"header": "Nueva etiqueta",
"title": "Create a label",
"title": "Crear una nueva etiqueta",
"titleRequired": "Por favor, especifica un título.",
"success": "La etiqueta se ha creado correctamente."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Autenticando…",
"passwordRequired": "Este proyecto compartido requiere una contraseña. Por favor introdúcelo debajo:",
"error": "An error occurred.",
"error": "Ha ocurrido un error.",
"invalidPassword": "La contraseña es inválida."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Crear nuevo",
"selectPlaceholder": "Clic o Enter para seleccionar"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Tarea",
"new": "Create a task",
"new": "Crear una nueva tarea",
"delete": "Eliminar esta tarea",
"createSuccess": "La tarea se ha creado con éxito.",
"addReminder": "Add a reminder…",
"addReminder": "Añadir un nuevo recordatorio…",
"doneSuccess": "La tarea fue marcada con éxito como realizada.",
"undoneSuccess": "La tarea fue marcada correctamente como incompleta.",
"undo": "Deshacer",
@ -860,7 +860,7 @@
"unassignSuccess": "El usuario ha sido desasignado con éxito."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Escriba para añadir una nueva etiqueta…",
"createPlaceholder": "Añadir esto como nueva etiqueta",
"addSuccess": "La etiqueta ha sido añadida con éxito.",
"createSuccess": "La etiqueta ha sido creada con éxito.",
@ -883,8 +883,8 @@
"relation": {
"add": "Añadir una Nueva Tarea Relacionada",
"new": "Nueva Tarea Relacionada",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Escriba para buscar una nueva tarea a añadir como relacionada…",
"createPlaceholder": "Añadir esto como nueva tarea relacionada",
"differentProject": "Esta tarea pertenece a un proyecto diferente.",
"noneYet": "Aún no hay tareas relacionadas.",
"delete": "Eliminar Relación de Tarea",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Modo de repetición",
"monthly": "Mensualmente",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Desde la Fecha Actual",
"each": "Cada",
"specifyAmount": "Especifique una cantidad…",
"hours": "Horas",
@ -962,7 +962,7 @@
"title": "Equipos",
"noTeams": "Actualmente no formas parte de ningún equipo.",
"create": {
"title": "Create a team",
"title": "Crear un nuevo equipo",
"success": "El equipo fue creado con éxito."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicar",
"delete": "Eliminar",
"unarchive": "Desarchivar",
"setBackground": "Background settings",
"setBackground": "Establecer fondo",
"share": "Compartir",
"newProject": "Nuevo proyecto",
"createProject": "Crear proyecto",

View File

@ -53,7 +53,7 @@
"loginWith": "Se connecter avec {provider}",
"authenticating": "Authentification…",
"openIdStateError": "Létat ne correspond pas, impossible de continuer !",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Une erreur s'est produite lors de l'authentification contre un tiers.",
"logout": "Se déconnecter",
"emailInvalid": "Veuillez saisir une adresse courriel valide.",
"usernameRequired": "Veuillez saisir un nom d'utilisateur.",
@ -227,8 +227,8 @@
"title": "Archiver « {project} »",
"archive": "Archiver ce projet",
"unarchive": "Désarchiver ce projet",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "Vous serez en mesure de créer de nouvelles tâches ou de les modifier.",
"archiveText": "Vous ne pourrez pas modifier ce projet ou créer de nouvelles tâches si vous ne le désarchivez pas.",
"success": "Le projet a bien été archivé."
},
"background": {
@ -277,7 +277,7 @@
"title": "Liens de partage",
"what": "Quest-ce quun lien de partage ?",
"explanation": "Les liens de partage permettent de partager facilement un projet avec dautres personnes qui nont pas de compte sur Vikunja.",
"create": "Create a link share",
"create": "Créer un nouveau lien de partage",
"name": "Nom (facultatif)",
"namePlaceholder": "par ex., Lorem Ipsum",
"nameExplanation": "Toutes les actions effectuées par ce partage de lien apparaîtront avec le nom.",
@ -317,9 +317,9 @@
"list": {
"title": "Liste",
"add": "Ajouter",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Ajouter une nouvelle tâche…",
"empty": "Ce projet est actuellement vide.",
"newTaskCta": "Create a task.",
"newTaskCta": "Créer une nouvelle tâche.",
"editTask": "Modifier la tâche"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Saisir le nouveau nom de la tâche…",
"addTask": "Ajouter une tâche",
"addAnotherTask": "Ajouter une autre tâche",
"addBucket": "Create a bucket",
"addBucket": "Créer une nouvelle colonne",
"addBucketPlaceholder": "Saisir le titre de la nouvelle colonne…",
"deleteHeaderBucket": "Supprimer la colonne",
"deleteBucketText1": "Voulez-vous supprimer cette colonne ?",
@ -423,7 +423,7 @@
"create": {
"title": "Nouveau filtre enregistré",
"description": "Un filtre sauvegardé est un projet virtuel qui est calculé à partir dun ensemble de filtres à chaque fois quil est consulté.",
"action": "Create saved filter",
"action": "Créer un nouveau filtre enregistré",
"titleRequired": "Veuillez donner un nom au filtre."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Taper pour rechercher une étiquette…",
"create": {
"header": "Nouvelle étiquette",
"title": "Create a label",
"title": "Créer une nouvelle étiquette",
"titleRequired": "Indiquer un nom.",
"success": "Étiquette créée."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authentification…",
"passwordRequired": "Ce projet partagé nécessite un mot de passe. Saisissez-le ci-dessous :",
"error": "An error occurred.",
"error": "Une erreur sest produite.",
"invalidPassword": "Le mot de passe est invalide."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Créer un nouveau",
"selectPlaceholder": "Cliquer ou appuyer sur la touche Entrée pour sélectionner"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Tâche",
"new": "Create a task",
"new": "Créer une nouvelle tâche",
"delete": "Supprimer cette tâche",
"createSuccess": "Tâche créée.",
"addReminder": "Add a reminder…",
"addReminder": "Ajouter un nouveau rappel…",
"doneSuccess": "Tâche marquée comme terminée.",
"undoneSuccess": "Tâche marquée comme non terminée.",
"undo": "Annuler",
@ -860,7 +860,7 @@
"unassignSuccess": "Désaffectation réussie."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Taper pour ajouter une nouvelle étiquette…",
"createPlaceholder": "Ajouter ceci comme nouvelle étiquette",
"addSuccess": "Étiquette ajoutée.",
"createSuccess": "Étiquette créée.",
@ -883,8 +883,8 @@
"relation": {
"add": "Ajouter une nouvelle relation de tâche",
"new": "Nouvelle relation de tâche",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Saisir une nouvelle tâche à ajouter comme connexe…",
"createPlaceholder": "Ajouter cette tâche comme nouvelle tâche connexe",
"differentProject": "Cette tâche appartient à un autre projet.",
"noneYet": "Pas encore de relations de tâches.",
"delete": "Supprimer la relation de tâche",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Mode de répétition",
"monthly": "Mensuel",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "À partir de la date actuelle",
"each": "Tous ou toutes les",
"specifyAmount": "Indiquer un nombre…",
"hours": "Heures",
@ -962,7 +962,7 @@
"title": "Équipes",
"noTeams": "Vous ne faites actuellement partie daucune équipe.",
"create": {
"title": "Create a team",
"title": "Créer une nouvelle équipe",
"success": "Équipe créée."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Dupliquer",
"delete": "Supprimer",
"unarchive": "Désarchiver",
"setBackground": "Background settings",
"setBackground": "Définir larrière-plan",
"share": "Partager",
"newProject": "Nouveau projet",
"createProject": "Créer un projet",

File diff suppressed because it is too large Load Diff

View File

@ -53,7 +53,7 @@
"loginWith": "Bejelentkezés {provider}-profillal",
"authenticating": "Hitelesítés…",
"openIdStateError": "Állapot nem egyezik, nem lehet folytatni!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Hiba történt a harmadik féllel szembeni hitelesítés során.",
"logout": "Kijelentkezés",
"emailInvalid": "Kérjük, adjon meg egy valós email címet!",
"usernameRequired": "Kérjük adjon meg egy felhasználónevet.",
@ -227,8 +227,8 @@
"title": "\"{project}\" archiválása.",
"archive": "Archiválja ezt a projektet",
"unarchive": "Projekt archiválásának visszaállítása",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "Új feladatokat hozhat létre, vagy szerkeszthet.",
"archiveText": "Addig nem szerkesztheti ezt a projektet, és nem hozhat létre új feladatokat, amíg nem állítja vissza az archiválást.",
"success": "A projekt sikeresen archiválva."
},
"background": {
@ -277,7 +277,7 @@
"title": "Hivatkozások megosztása",
"what": "Mi az a megosztási link?",
"explanation": "A Linkek megosztása segítségével egyszerűen megoszthat egy projektet más felhasználókkal, akik nem rendelkeznek fiókkal a Vikunján.",
"create": "Create a link share",
"create": "Hozzon létre egy új linkmegosztást",
"name": "Név (nem kötelező)",
"namePlaceholder": "Például: Kis Géza",
"nameExplanation": "A link megosztása által végzett összes művelet a névvel együtt fog megjelenni.",
@ -317,9 +317,9 @@
"list": {
"title": "Lista",
"add": "Új hozzáadása",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Új feladat hozzáadása...",
"empty": "Ez a projekt jelenleg üres.",
"newTaskCta": "Create a task.",
"newTaskCta": "Új feladat létrehozása.",
"editTask": "Feladat szerkesztése."
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Adja meg az új feladatcímet…",
"addTask": "Feladat hozzáadása",
"addAnotherTask": "Adjon hozzá egy másik feladatot",
"addBucket": "Create a bucket",
"addBucket": "Új vödör létrehozása",
"addBucketPlaceholder": "Adja meg az új vödör címét…",
"deleteHeaderBucket": "Vödör törlése",
"deleteBucketText1": "Biztosan törli ezt az vödröt?",
@ -423,7 +423,7 @@
"create": {
"title": "Új mentett szűrő",
"description": "A mentett szűrő egy virtuális projekt, amely szűrőkészletből kerül kiszámításra minden alkalommal, amikor hozzáfér.",
"action": "Create saved filter",
"action": "Új mentett szűrő létrehozása",
"titleRequired": "Adja meg a szűrő címét."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Címke kereséséhez írja be…",
"create": {
"header": "Új címke",
"title": "Create a label",
"title": "Új címke létrehozása",
"titleRequired": "Kérjük, adjon meg egy címet.",
"success": "A címke sikeresen létrehozva."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Hitelesítés…",
"passwordRequired": "Ehhez a megosztott projekthez jelszó szükséges. Kérjük, írja be alább:",
"error": "An error occurred.",
"error": "Hiba lépett fel.",
"invalidPassword": "A jelszó érvénytelen."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Írjon be egy szöveget, vagy nyomja meg a „/” gombot a további lehetőségek megtekintéséhez…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Új létrehozása",
"selectPlaceholder": "Kattintson, vagy nyomja meg az Enter billentyűt a kiválasztáshoz"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Feladat",
"new": "Create a task",
"new": "Új feladat létrehozása",
"delete": "Feladat törlése",
"createSuccess": "A feladat sikeresen létrehozva.",
"addReminder": "Add a reminder…",
"addReminder": "Új emlékeztető hozzáadása...",
"doneSuccess": "A feladat sikeresen meg lett jelölve elkészültként.",
"undoneSuccess": "A feladat sikeresen meg lett jelölve nem elkészültként.",
"undo": "Visszavonás",
@ -860,7 +860,7 @@
"unassignSuccess": "A felhasználó sikeresen leiratkozott!"
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Új címke hozzáadásához írjon be…",
"createPlaceholder": "Adja hozzá ezt új címkeként",
"addSuccess": "A címke sikeresen hozzáadva.",
"createSuccess": "A címke sikeresen létrehozva.",
@ -883,8 +883,8 @@
"relation": {
"add": "Új feladatkapcsolat hozzáadása",
"new": "Új feladatkapcsolat",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "A kapcsolódóként hozzáadandó új feladathoz írja be a keresést…",
"createPlaceholder": "Adja hozzá ezt új kapcsolódó feladatként",
"differentProject": "Ez a feladat egy másik projekthez tartozik.",
"noneYet": "Még nincsenek feladatkapcsolatok.",
"delete": "Feladatkapcsolat törlése",
@ -922,7 +922,7 @@
"every30d": "30 naponta",
"mode": "Ismétlés típusa",
"monthly": "Havi",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Aktuális dátumtól",
"each": "Minden egyes",
"specifyAmount": "Adja meg a mennyiséget…",
"hours": "Órák",
@ -962,7 +962,7 @@
"title": "Csapatok",
"noTeams": "Jelenleg nem tagja egyetlen csapatnak sem.",
"create": {
"title": "Create a team",
"title": "Új csapat létrehozása",
"success": "A csapat sikeresen létrehozva."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplikálás",
"delete": "Törlés",
"unarchive": "Archiválás visszavonása",
"setBackground": "Background settings",
"setBackground": "Háttérkép beállítása",
"share": "Megosztás",
"newProject": "Új projekt",
"createProject": "Projekt létrehozása",

View File

@ -53,7 +53,7 @@
"loginWith": "Accedi con {provider}",
"authenticating": "Autenticazione…",
"openIdStateError": "Stato non corrispondente, impossibile continuare!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Si è verificato un errore durante l'autenticazione con terze parti.",
"logout": "Esci",
"emailInvalid": "Inserisci un indirizzo e-mail valido.",
"usernameRequired": "Inserisci un nome utente.",
@ -227,8 +227,8 @@
"title": "Archivia \"{project}\"",
"archive": "Archivia questo progetto",
"unarchive": "Estrai questo progetto dall'archivio",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "Progetto archiviato."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "Nuovo Filtro Salvato",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Crea nuovo filtro salvato",
"titleRequired": "È necessario un titolo per il filtro."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Digita per cercare un'etichetta…",
"create": {
"header": "Nuova etichetta",
"title": "Create a label",
"title": "Crea una nuova etichetta",
"titleRequired": "Specifica un titolo.",
"success": "L'etichetta è stata creata correttamente."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Autenticazione…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "Si è verificato un errore.",
"invalidPassword": "La password non è valida."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Crea nuovo",
"selectPlaceholder": "Clicca o premere invio per selezionare"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Attività",
"new": "Create a task",
"new": "Crea una nuova attività",
"delete": "Elimina questa attività",
"createSuccess": "Attività creata.",
"addReminder": "Add a reminder…",
"addReminder": "Aggiungi un nuovo promemoria…",
"doneSuccess": "Attività segnata come completata.",
"undoneSuccess": "Attività segnata come non completata.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "Utente disassegnato."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Digita per aggiungere una nuova etichetta…",
"createPlaceholder": "Aggiungila come nuova etichetta",
"addSuccess": "Etichetta aggiunta.",
"createSuccess": "Etichetta creata.",
@ -883,8 +883,8 @@
"relation": {
"add": "Aggiungi Attività Collegata",
"new": "Nuova Attività Collegata",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Digita per cercare un'attività da aggiungere come collegata…",
"createPlaceholder": "Aggiungi come attività collegata",
"differentProject": "This task belongs to a different project.",
"noneYet": "Nessuna attività collegata.",
"delete": "Elimina Collegamento Attività",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Modalità Ripetizione",
"monthly": "Mensilmente",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Dalla Data Attuale",
"each": "Ogni",
"specifyAmount": "Specifica una quantità…",
"hours": "Ore",
@ -962,7 +962,7 @@
"title": "Gruppi",
"noTeams": "Non fai parte di nessun gruppo.",
"create": {
"title": "Create a team",
"title": "Crea un nuovo gruppo",
"success": "Gruppo creato."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplica",
"delete": "Elimina",
"unarchive": "Disarchivia",
"setBackground": "Background settings",
"setBackground": "Imposta sfondo",
"share": "Condividi",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "{provider}でログイン",
"authenticating": "認証中…",
"openIdStateError": "stateパラメータが一致しないため処理を中断しました。",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "認証中にエラーが発生しました。",
"logout": "ログアウト",
"emailInvalid": "有効なメールアドレスを入力してください。",
"usernameRequired": "ユーザー名を入力してください。",
@ -227,8 +227,8 @@
"title": "「{project}」のアーカイブ",
"archive": "プロジェクトのアーカイブ",
"unarchive": "プロジェクトのアーカイブの取り消し",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "新しいタスクの作成や編集を行えるようになります。",
"archiveText": "アーカイブを取り消すまで、このプロジェクトでは新しいタスクの作成や編集を行うことができません。",
"success": "プロジェクトは正常にアーカイブされました。"
},
"background": {
@ -277,7 +277,7 @@
"title": "リンクの共有",
"what": "共有リンクとは何ですか?",
"explanation": "共有リンクとは、Vikunjaのアカウントを持たない他のユーザーとプロジェクトを簡単に共有することができる機能です。",
"create": "Create a link share",
"create": "新しい共有リンクの作成",
"name": "名前 (オプション)",
"namePlaceholder": "例: Lorem Ipsum",
"nameExplanation": "この共有リンクで行われた操作はすべてこの名前で表示されるようになります。",
@ -317,9 +317,9 @@
"list": {
"title": "リスト",
"add": "追加",
"addPlaceholder": "Add a task…",
"addPlaceholder": "新しいタスクを追加…",
"empty": "このプロジェクトにはタスクが存在しません。",
"newTaskCta": "Create a task.",
"newTaskCta": "新しいタスクを作成してください。",
"editTask": "タスクの編集"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "新しいタスク名を入力…",
"addTask": "タスクの追加",
"addAnotherTask": "他のタスクを追加",
"addBucket": "Create a bucket",
"addBucket": "新しいバケットの作成",
"addBucketPlaceholder": "新しいバケット名を入力…",
"deleteHeaderBucket": "バケットの削除",
"deleteBucketText1": "このバケットを削除して本当によろしいですか?",
@ -423,7 +423,7 @@
"create": {
"title": "新しい絞り込み条件の作成",
"description": "絞り込み条件は、複数の条件を組み合わせて保存できる仮想のプロジェクトです。",
"action": "Create saved filter",
"action": "新しい絞り込み条件を作成",
"titleRequired": "絞り込み条件名を入力してください。"
},
"delete": {
@ -507,7 +507,7 @@
"search": "ラベルのキーワードを入力…",
"create": {
"header": "新しいラベルの作成",
"title": "Create a label",
"title": "新しいラベルの作成",
"titleRequired": "ラベル名を入力してください。",
"success": "ラベルは正常に作成されました。"
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "認証中…",
"passwordRequired": "この共有プロジェクトにはパスワードが必要です。パスワードを入力してください:",
"error": "An error occurred.",
"error": "エラーが発生しました。",
"invalidPassword": "無効なパスワードです。"
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "新規作成",
"selectPlaceholder": "クリックするかEnterキーを押して選択"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "タスク",
"new": "Create a task",
"new": "新しいタスクの作成",
"delete": "タスクの削除",
"createSuccess": "タスクは正常に作成されました。",
"addReminder": "Add a reminder…",
"addReminder": "新しいリマイダーを作成…",
"doneSuccess": "タスクを完了にしました。",
"undoneSuccess": "タスクを未完了に戻しました。",
"undo": "元に戻す",
@ -860,7 +860,7 @@
"unassignSuccess": "担当者から正常に解除されました。"
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "追加するラベルを入力…",
"createPlaceholder": "新しいラベルを追加",
"addSuccess": "ラベルは正常に追加されました。",
"createSuccess": "ラベルは正常に作成されました。",
@ -883,8 +883,8 @@
"relation": {
"add": "新しい関連タスクの追加",
"new": "新しい関連タスクの作成",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "追加する関連タスクのキーワードを入力…",
"createPlaceholder": "新しい関連タスクを追加",
"differentProject": "This task belongs to a different project.",
"noneYet": "関連タスクはまだありません。",
"delete": "関連タスクの削除",
@ -922,7 +922,7 @@
"every30d": "30日ごと",
"mode": "繰り返しモード",
"monthly": "毎月",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "現在時刻からの間隔",
"each": "隔",
"specifyAmount": "数字を入力…",
"hours": "時間ごと",
@ -962,7 +962,7 @@
"title": "チーム",
"noTeams": "現在どのチームにも所属していません。",
"create": {
"title": "Create a team",
"title": "新しいチームの作成",
"success": "チームは正常に作成されました。"
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "複製",
"delete": "削除",
"unarchive": "アーカイブの取り消し",
"setBackground": "Background settings",
"setBackground": "背景画像の設定",
"share": "共有",
"newProject": "新しいプロジェクトの作成",
"createProject": "プロジェクトの作成",

View File

@ -53,7 +53,7 @@
"loginWith": "{provider}로 로그인",
"authenticating": "인증 처리 중...",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "외부 인증오류가 발생하였습니다.",
"logout": "로그아웃",
"emailInvalid": "유효한 이메일 주소를 입력하여 주십시오.",
"usernameRequired": "사용자 이름을 입력하세요.",
@ -227,8 +227,8 @@
"title": "\"{project}\"보관",
"archive": "프로젝트 보관하기",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "링크 공유",
"what": "공유 링크가 무엇인가요?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "새 공유 링크 만들기",
"name": "이름 (선택 사항)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "새 할일 등록",
"editTask": "할 일 편집"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "작업 추가",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "새로 생성하기",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "관계 삭제",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Inloggen met {provider}",
"authenticating": "Authenticeren…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Uitloggen",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "Nieuw label",
"title": "Create a label",
"title": "Nieuwe label maken",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticeren…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "Er is een fout opgetreden.",
"invalidPassword": "Het wachtwoord is ongeldig."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Nieuwe aanmaken",
"selectPlaceholder": "Klik of druk op enter om te selecteren"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Taak",
"new": "Create a task",
"new": "Creëer een nieuwe taak",
"delete": "Deze taak verwijderen",
"createSuccess": "De taak is succesvol aangemaakt.",
"addReminder": "Add a reminder…",
"addReminder": "Nieuwe herinnering toevoegen…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "De toewijzing van de gebruiker is met succes ingetrokken."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Typ om een nieuw label toe te voegen…",
"createPlaceholder": "Dit toevoegen als nieuw label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "Nieuwe taakrelatie",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Voeg dit toe als nieuwe gerelateerde taak",
"differentProject": "This task belongs to a different project.",
"noneYet": "Nog geen taakrelaties.",
"delete": "Taak relatie verwijderen",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Herhaalmodus",
"monthly": "Maandelijks",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Vanaf huidige datum",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Uren",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "Je maakt momenteel geen deel uit van een team.",
"create": {
"title": "Create a team",
"title": "Maak een nieuw team",
"success": "Het team is succesvol aangemaakt."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Dupliceer",
"delete": "Verwijderen",
"unarchive": "Archivering opheffen",
"setBackground": "Background settings",
"setBackground": "Achtergrond instellen",
"share": "Delen",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Logg inn med {provider}",
"authenticating": "Autentiserer…",
"openIdStateError": "Staten samsvarer ikke, klikk ikke for å fortsette!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "En feil oppstod under autentisering mot tredjepart.",
"logout": "Logg ut",
"emailInvalid": "Vennligst oppgi en gyldig e-postadresse.",
"usernameRequired": "Angi et brukernavn.",
@ -227,8 +227,8 @@
"title": "Arkiver{project}\"",
"archive": "Arkiver dette prosjektet",
"unarchive": "Av-arkivere dette prosjektet",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "Du vil kunne opprette nye oppgaver eller redigere den.",
"archiveText": "Du vil ikke være i stand til å redigere denne listen eller opprette nye oppgaver før du fjerner arkiveringen.",
"success": "Prosjektet ble vellykket arkivert."
},
"background": {
@ -277,7 +277,7 @@
"title": "Del link",
"what": "Hva er en lenke for deling?",
"explanation": "Lenker lar deg enkelt dele et prosjekt med andre brukere som ikke har en konto på Vikunja.",
"create": "Create a link share",
"create": "Opprett en ny lenkedeling",
"name": "Navn (valgfritt)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "Alle handlinger utført av denne koblingsdelingen vises med navnet.",
@ -317,9 +317,9 @@
"list": {
"title": "Liste",
"add": "Legg til",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Legg til ny oppgave…",
"empty": "Dette prosjektet er for øyeblikket tomt.",
"newTaskCta": "Create a task.",
"newTaskCta": "Lage en ny oppgave.",
"editTask": "Endre oppgave"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Angi den nye oppgavens tittel…",
"addTask": "Legg til oppgave",
"addAnotherTask": "Legg til en annen oppgave",
"addBucket": "Create a bucket",
"addBucket": "Lag en ny bøtte",
"addBucketPlaceholder": "Angi den nye bøtte tittelen…",
"deleteHeaderBucket": "Slett bøtte",
"deleteBucketText1": "Er du sikker på at du vil slette denne bøtte?",
@ -423,7 +423,7 @@
"create": {
"title": "Nytt lagret filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Opprett nytt filter",
"titleRequired": "Skriv inn en tittel for filteret."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Skriv for å søke etter en etikett…",
"create": {
"header": "Ny etikett",
"title": "Create a label",
"title": "Opprett ny etikett",
"titleRequired": "Angi den nye tittelen.",
"success": "Etiketten ble opprettet."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Autentiserer…",
"passwordRequired": "Denne delte listen krever et passord. Vennligst skriv det nedenfor:",
"error": "An error occurred.",
"error": "En feil oppsto.",
"invalidPassword": "Det oppgitte passordet er ugyldig."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Opprett ny",
"selectPlaceholder": "Klikk eller trykk enter for å velge denne listen"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Oppgave",
"new": "Create a task",
"new": "Lage en ny oppgave",
"delete": "Slette denne oppgaven",
"createSuccess": "Oppgaven ble opprettet.",
"addReminder": "Add a reminder…",
"addReminder": "Legg til en ny påminnelse…",
"doneSuccess": "Oppgaven ble markert som ferdig.",
"undoneSuccess": "Oppgaven ble fjernet som ferdig.",
"undo": "Angre",
@ -860,7 +860,7 @@
"unassignSuccess": "Brukeren ble vellykket fjernet."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Skriv for å legge til en ny etikett…",
"createPlaceholder": "Legg til som ny etikett",
"addSuccess": "Etiketten er lagt til.",
"createSuccess": "Denne etiketten har blitt opprettet.",
@ -883,8 +883,8 @@
"relation": {
"add": "Legg til en ny oppgaveforbindelse",
"new": "Ny oppgaveforbindelse",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Skriv søk etter en ny oppgave å legge til som relatert…",
"createPlaceholder": "Legg til denne som ny relatert oppgave",
"differentProject": "Denne oppgaven tilhører et annet prosjekt.",
"noneYet": "Ingen arbeidsrelasjoner ennå.",
"delete": "Slett relasjon",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeter modus",
"monthly": "Månedlig",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Fra gjeldende dato",
"each": "Hver",
"specifyAmount": "Angi beløp…",
"hours": "Timer",
@ -962,7 +962,7 @@
"title": "Grupper",
"noTeams": "Du er for øyeblikket ikke en del av noen gurpper.",
"create": {
"title": "Create a team",
"title": "Opprett en ny gruppe",
"success": "Gruppen ble opprettet."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Dupliser",
"delete": "Slett",
"unarchive": "Av-arkiver",
"setBackground": "Background settings",
"setBackground": "Bruk som bakgrunn",
"share": "Del",
"newProject": "Nytt prosjekt",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Zaloguj się przez {provider}",
"authenticating": "Uwierzytelnianie…",
"openIdStateError": "Stan się nie zgadza, odmowa kontynuacji!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Wystąpił błąd podczas uwierzytelniania wobec strony trzeciej.",
"logout": "Wyloguj",
"emailInvalid": "Proszę podać poprawny adres e-mail.",
"usernameRequired": "Proszę podać nazwę użytkownika.",
@ -227,8 +227,8 @@
"title": "Archiwizuj \"{project}\"",
"archive": "Zarchiwizuj ten projekt",
"unarchive": "Cofnij archiwizację tego projektu",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "Będziesz mógł tworzyć nowe zadania lub edytować je.",
"archiveText": "Nie będziesz mógł edytować tego projektu ani tworzyć nowych zadań, dopóki nie cofniesz archiwizacji.",
"success": "Projekt został pomyślnie zarchiwizowany."
},
"background": {
@ -277,7 +277,7 @@
"title": "Udostępnij linki",
"what": "Co to jest udostępnianie linków?",
"explanation": "Udostępnianie linków umożliwia łatwe udostępnianie projektów innym użytkownikom, którzy nie mają konta na Vikunja.",
"create": "Create a link share",
"create": "Utwórz nowy link do udostępnienia",
"name": "Nazwa: (opcjonalnie)",
"namePlaceholder": "np. Lorem Ipsum",
"nameExplanation": "Wszystkie działania wykonane przez ten link udostępniający będą widoczne pod tą nazwą.",
@ -317,9 +317,9 @@
"list": {
"title": "Lista",
"add": "Dodaj",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Dodaj nowe zadanie…",
"empty": "Ten projekt jest obecnie pusty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Utwórz nowe zadanie.",
"editTask": "Edytuj zadanie"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Wprowadź tytuł nowego zadania…",
"addTask": "Dodaj zadanie",
"addAnotherTask": "Dodaj kolejne zadanie",
"addBucket": "Create a bucket",
"addBucket": "Utwórz nową kolumnę",
"addBucketPlaceholder": "Wprowadź tytuł nowej kolumny…",
"deleteHeaderBucket": "Usuń kolumnę",
"deleteBucketText1": "Czy na pewno chcesz usunąć tę kolumnę?",
@ -423,7 +423,7 @@
"create": {
"title": "Nowy filtr stały",
"description": "Zapisany filtr to wirtualny projekt, który jest obliczany na podstawie zestawu filtrów za każdym razem, gdy jest dostępny.",
"action": "Create saved filter",
"action": "Utwórz nowy filtr stały",
"titleRequired": "Podaj tytuł dla filtra."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Wpisz, aby wyszukać etykietę…",
"create": {
"header": "Nowa etykieta",
"title": "Create a label",
"title": "Utwórz nową etykietę",
"titleRequired": "Proszę, podaj tytuł.",
"success": "Etykieta została pomyślnie utworzona."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Uwierzytelnianie…",
"passwordRequired": "Ten udostępniony projekt wymaga hasła. Proszę, wprowadź je poniżej:",
"error": "An error occurred.",
"error": "Wystąpił błąd.",
"invalidPassword": "Hasło jest nieprawidłowe."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Wpisz tekst lub naciśnij '/', aby zobaczyć więcej opcji…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Utwórz nowy",
"selectPlaceholder": "Kliknij lub naciśnij Enter, aby wybrać"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Zadanie",
"new": "Create a task",
"new": "Utwórz nowe zadanie",
"delete": "Usuń to zadanie",
"createSuccess": "Zadanie zostało pomyślnie utworzone.",
"addReminder": "Add a reminder…",
"addReminder": "Dodaj nowe przypomnienie…",
"doneSuccess": "Zadanie zostało pomyślnie oznaczone jako ukończone.",
"undoneSuccess": "Zadanie zostało pomyślnie otwarte ponownie.",
"undo": "Cofnij",
@ -860,7 +860,7 @@
"unassignSuccess": "Użytkownik został pomyślnie usunięty."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Wpisz, aby dodać nową etykietę…",
"createPlaceholder": "Dodaj jako nową etykietę",
"addSuccess": "Etykieta została pomyślnie dodana.",
"createSuccess": "Etykieta została pomyślnie utworzona.",
@ -883,8 +883,8 @@
"relation": {
"add": "Dodaj nowe powiązane zadanie",
"new": "Nowe powiązane zadanie",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Wpisz, aby wyszukać zadanie, które chcesz dodać jako powiązane…",
"createPlaceholder": "Dodaj jako nowe powiązane zadanie",
"differentProject": "To zadanie należy do innego projektu.",
"noneYet": "Nie ma jeszcze powiązanych zadań.",
"delete": "Usuń powiązane zadanie",
@ -922,7 +922,7 @@
"every30d": "Co 30 dni",
"mode": "Tryb powtarzania",
"monthly": "Miesięczny",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Od bieżącej daty",
"each": "Co",
"specifyAmount": "Określ ilość…",
"hours": "Godziny",
@ -962,7 +962,7 @@
"title": "Zespoły",
"noTeams": "Obecnie nie należysz do żadnego zespołu.",
"create": {
"title": "Create a team",
"title": "Utwórz nowy zespół",
"success": "Zespół został pomyślnie utworzony."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplikuj",
"delete": "Usuń",
"unarchive": "Cofnij archiwizację",
"setBackground": "Background settings",
"setBackground": "Ustaw tło",
"share": "Udostępnij",
"newProject": "Nowy projekt",
"createProject": "Utwórz projekt",

View File

@ -53,7 +53,7 @@
"loginWith": "Faça o login com {provider}",
"authenticating": "Autenticando…",
"openIdStateError": "O Estado não se iguala, recusando-se a continuar!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Ocorreu um erro ao autenticar contra uma entidade externa.",
"logout": "Sair",
"emailInvalid": "Por favor, insira um endereço de e-mail válido.",
"usernameRequired": "Por favor, insira um nome de usuário.",
@ -227,8 +227,8 @@
"title": "Arquivar \"{project}\"",
"archive": "Arquivar este projeto",
"unarchive": "Desarquivar este projeto",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "Você será capaz de criar novas tarefas ou editá-las.",
"archiveText": "Você não poderá editar este projeto ou criar novas tarefas até desarquivá-lo.",
"success": "O projeto foi arquivado com sucesso."
},
"background": {
@ -277,7 +277,7 @@
"title": "Compartilhar Link",
"what": "O que é um link de compartilhamento?",
"explanation": "Compartilhar Links permite que você compartilhe facilmente uma lista com outros usuários que não têm uma conta na Vikunja.",
"create": "Create a link share",
"create": "Criar novo link de compartilhamento",
"name": "Nome (opcional)",
"namePlaceholder": "ex. Lorem Ipsum",
"nameExplanation": "Todas as ações feitas por este compartilhamento de link aparecerão com o nome.",
@ -317,9 +317,9 @@
"list": {
"title": "Lista",
"add": "Adicionar",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Adicionar uma nova tarefa…",
"empty": "Este projeto está vazio no momento.",
"newTaskCta": "Create a task.",
"newTaskCta": "Criar uma nova tarefa.",
"editTask": "Editar Tarefa"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Digite o título da tarefa…",
"addTask": "Adicionar uma tarefa",
"addAnotherTask": "Adicionar outra tarefa",
"addBucket": "Create a bucket",
"addBucket": "Criar um novo bucket",
"addBucketPlaceholder": "Digite o título do novo bucket…",
"deleteHeaderBucket": "Excluir o bucket",
"deleteBucketText1": "Tem certeza que deseja excluir este bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "Novo filtro salvo",
"description": "Um filtro salvo é um projeto virtual que é calculado a partir de um conjunto de filtros cada vez que ele é acessado.",
"action": "Create saved filter",
"action": "Criar novo filtro salvo",
"titleRequired": "Por favor, forneça um título para o filtro."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Digite para procurar por uma etiqueta…",
"create": {
"header": "Nova etiqueta",
"title": "Create a label",
"title": "Criar uma nova etiqueta",
"titleRequired": "Por favor, especifique um título.",
"success": "A etiqueta foi criada com sucesso."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Autenticando…",
"passwordRequired": "Este projeto compartilhado requer uma senha. Por favor, digite-a abaixo:",
"error": "An error occurred.",
"error": "Ocorreu um erro.",
"invalidPassword": "A senha é inválida."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Digite algum texto ou toque em '/' para ver mais opções…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Criar novo",
"selectPlaceholder": "Clique ou pressione Enter para selecionar"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Tarefa",
"new": "Create a task",
"new": "Criar uma nova tarefa",
"delete": "Excluir esta tarefa",
"createSuccess": "A tarefa foi criada com sucesso.",
"addReminder": "Add a reminder…",
"addReminder": "Adicionar um novo lembrete…",
"doneSuccess": "A tarefa foi marcada como feita com sucesso.",
"undoneSuccess": "A tarefa foi desmarcada como feita com sucesso.",
"undo": "Desfazer",
@ -860,7 +860,7 @@
"unassignSuccess": "O usuário foi desatribuído com sucesso."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Digite para adicionar uma nova etiqueta…",
"createPlaceholder": "Adicionar como nova etiqueta",
"addSuccess": "A etiqueta foi adicionada com sucesso.",
"createSuccess": "A etiqueta foi criada com sucesso.",
@ -883,8 +883,8 @@
"relation": {
"add": "Adicionar uma nova relação de tarefas",
"new": "Nova Relação de Tarefas",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Digite a busca por uma nova tarefa para adicionar como relacionada…",
"createPlaceholder": "Adicionar como uma nova tarefa relacionada",
"differentProject": "Esta tarefa pertence a um projeto diferente.",
"noneYet": "Ainda não há relações de tarefas.",
"delete": "Excluir Relação Entre Tarefas",
@ -922,7 +922,7 @@
"every30d": "A cada 30 dias",
"mode": "Modo repetição",
"monthly": "Mensalmente",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Data atual",
"each": "Cada",
"specifyAmount": "Especifique uma quantidade…",
"hours": "Horas",
@ -962,7 +962,7 @@
"title": "Equipes",
"noTeams": "Atualmente você não faz parte de nenhuma equipe.",
"create": {
"title": "Create a team",
"title": "Criar uma equipe",
"success": "A equipe foi criada com sucesso."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicar",
"delete": "Excluir",
"unarchive": "Desarquivar",
"setBackground": "Background settings",
"setBackground": "Definir plano de fundo",
"share": "Compartilhar",
"newProject": "Novo projeto",
"createProject": "Criar projeto",

View File

@ -53,7 +53,7 @@
"loginWith": "Iniciar sessão com {provider}",
"authenticating": "A autenticar…",
"openIdStateError": "O estado não coincide, a recusar continuar!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Ocorreu um erro na autenticação perante a entidade externa.",
"logout": "Terminar Sessão",
"emailInvalid": "Por favor, insire um endereço de e-mail válido.",
"usernameRequired": "Por favor, fornece um nome de utilizador.",
@ -227,8 +227,8 @@
"title": "Arquivar \"{project}\"",
"archive": "Arquivar este projeto",
"unarchive": "Desarquivar este projeto",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "Vais ser capaz de criar novas tarefas ou editá-las.",
"archiveText": "Não poderás editar este projeto ou criar novas tarefas até o desarquivares.",
"success": "Este projeto foi arquivado com sucesso."
},
"background": {
@ -277,7 +277,7 @@
"title": "Links Partilhados",
"what": "Como funcionam os links partilhados?",
"explanation": "Links Partilhados permite-lhe partilhar facilmente um projeto com outros utilizadores que não têm uma conta no Vikunja.",
"create": "Create a link share",
"create": "Criar um novo link partilhado",
"name": "Nome (opcional)",
"namePlaceholder": "ex.: Lorem Ipsum",
"nameExplanation": "Todas as ações realizadas através deste link partilhado vão aparecer com este nome.",
@ -317,9 +317,9 @@
"list": {
"title": "Lista",
"add": "Adicionar",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Adicionar uma nova tarefa…",
"empty": "Este projeto está atualmente vazio.",
"newTaskCta": "Create a task.",
"newTaskCta": "Cria uma nova tarefa.",
"editTask": "Editar Tarefa"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Introduz o título da nova tarefa…",
"addTask": "Adicionar uma tarefa",
"addAnotherTask": "Adicionar outra tarefa",
"addBucket": "Create a bucket",
"addBucket": "Criar um novo conjunto",
"addBucketPlaceholder": "Introduz o título do novo conjunto…",
"deleteHeaderBucket": "Eliminar o conjunto",
"deleteBucketText1": "Tens a certeza que pretendes eliminar este conjunto?",
@ -423,7 +423,7 @@
"create": {
"title": "Novo Filtro Memorizado",
"description": "Um filtro memorizado é um projeto virtual que é compilado a partir de um conjunto de filtros de cada vez que é acedido.",
"action": "Create saved filter",
"action": "Criar novo filtro memorizado",
"titleRequired": "Por favor, insere um título para o filtro."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Escreve para pesquisar uma etiqueta…",
"create": {
"header": "Nova etiqueta",
"title": "Create a label",
"title": "Cria uma nova etiqueta",
"titleRequired": "Por favor, especifica um título.",
"success": "A etiqueta foi criada com sucesso."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "A autenticar…",
"passwordRequired": "Este projeto partilhado requer uma palavra-passe. Por favor, introduz-a abaixo:",
"error": "An error occurred.",
"error": "Ocorreu um erro.",
"invalidPassword": "A palavra-passe é inválida."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Insere algum texto ou pressiona '/' para ver mais opções…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Criar novo",
"selectPlaceholder": "Clica ou pressiona Enter para selecionar"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Tarefa",
"new": "Create a task",
"new": "Criar uma nova tarefa",
"delete": "Eliminar esta tarefa",
"createSuccess": "A tarefa for criada com sucesso.",
"addReminder": "Add a reminder…",
"addReminder": "Adicionar um novo lembrete…",
"doneSuccess": "A tarefa foi marcada como concluída.",
"undoneSuccess": "A tarefa foi desmarcada como concluída.",
"undo": "Desfazer",
@ -860,7 +860,7 @@
"unassignSuccess": "O utilizador foi desatribuido com sucesso."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Escreve para adicionar uma nova etiqueta…",
"createPlaceholder": "Adicionar isto como nova etiqueta",
"addSuccess": "A etiqueta foi adicionada com sucesso.",
"createSuccess": "A etiqueta foi criada com sucesso.",
@ -883,8 +883,8 @@
"relation": {
"add": "Adicionar Nova Relação Entre Tarefas",
"new": "Nova Relação Entre Tarefas",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Escreve para pesquisar uma tarefa a adicionar como relacionada…",
"createPlaceholder": "Adicionar como nova tarefa relacionada",
"differentProject": "Esta tarefa pertence a um projeto diferente.",
"noneYet": "Ainda sem tarefas relacionadas.",
"delete": "Eliminar Relação Entre Tarefas",
@ -922,7 +922,7 @@
"every30d": "A cada 30 Dias",
"mode": "Modo de repetição",
"monthly": "Mensal",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Da Data Atual",
"each": "Cada",
"specifyAmount": "Especifica uma quantidade…",
"hours": "Horas",
@ -962,7 +962,7 @@
"title": "Equipas",
"noTeams": "Atualmente não fazes parte de nenhuma equipa.",
"create": {
"title": "Create a team",
"title": "Cria uma nova equipa",
"success": "A equipa foi criada com sucesso."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicar",
"delete": "Eliminar",
"unarchive": "Desarquivar",
"setBackground": "Background settings",
"setBackground": "Definir Fundo",
"share": "Partilhar",
"newProject": "Novo projeto",
"createProject": "Criar projeto",

View File

@ -53,7 +53,7 @@
"loginWith": "Log in with {provider}",
"authenticating": "Authenticating…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logout",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Create new",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Войти через {provider}",
"authenticating": "Аутентификация…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Произошла ошибка при аутентификации с помощью третьей стороны.",
"logout": "Выйти",
"emailInvalid": "Введите корректный email адрес.",
"usernameRequired": "Введите имя пользователя.",
@ -227,8 +227,8 @@
"title": "Архивирование «{project}»",
"archive": "Архивирование проекта",
"unarchive": "Возвращение проекта из архива",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "Вы сможете создавать новые задачи или изменять их.",
"archiveText": "Вы не сможете изменять этот проект или создавать в нём новые задачи, пока не вернёте его из архива.",
"success": "Проект архивирован."
},
"background": {
@ -277,7 +277,7 @@
"title": "Ссылки для обмена",
"what": "Что такое ссылка для обмена?",
"explanation": "Ссылка для обмена позволяет поделиться проектом с теми, у кого нет аккаунта в Vikunja.",
"create": "Create a link share",
"create": "Создать новую ссылку для обмена",
"name": "Имя (необязательно)",
"namePlaceholder": "напр. Lorem Ipsum",
"nameExplanation": "Все действия, выполненные через эту ссылку, будут подписаны этим именем.",
@ -317,9 +317,9 @@
"list": {
"title": "Список",
"add": "Добавить",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Добавить новую задачу…",
"empty": "Проект сейчас пуст.",
"newTaskCta": "Create a task.",
"newTaskCta": "Создать новую задачу.",
"editTask": "Изменить задачу"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Введите название задачи…",
"addTask": "Добавить задачу",
"addAnotherTask": "Добавить ещё задачу",
"addBucket": "Create a bucket",
"addBucket": "Создать новую колонку",
"addBucketPlaceholder": "Введите название новой колонки…",
"deleteHeaderBucket": "Удаление колонки",
"deleteBucketText1": "Удалить эту колонку?",
@ -423,7 +423,7 @@
"create": {
"title": "Создать сохранённый фильтр",
"description": "Сохранённый фильтр — это виртуальный проект, содержимое которого выбирается с помощью фильтров в момент его просмотра.",
"action": "Create saved filter",
"action": "Создать новый сохранённый фильтр",
"titleRequired": "Укажите название фильтра."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Введите запрос для поиска метки…",
"create": {
"header": "Новая метка",
"title": "Create a label",
"title": "Создать новую метку",
"titleRequired": "Пожалуйста, укажите название.",
"success": "Метка успешно создана."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Аутентификация…",
"passwordRequired": "Для доступа к этому проекту нужен пароль. Введите его сюда:",
"error": "An error occurred.",
"error": "Случилась ошибка.",
"invalidPassword": "Неверный пароль."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Создать",
"selectPlaceholder": "Кликните или нажмите Enter для выбора"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Задача",
"new": "Create a task",
"new": "Создать задачу",
"delete": "Удалить задачу",
"createSuccess": "Задача удалена.",
"addReminder": "Add a reminder…",
"addReminder": "Добавить напоминание…",
"doneSuccess": "Задача отмечена как завершённая.",
"undoneSuccess": "Задача отмечена как незавершённая.",
"undo": "Отменить",
@ -860,7 +860,7 @@
"unassignSuccess": "Пользователь убран."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Введите новую метку…",
"createPlaceholder": "Добавить как новую метку",
"addSuccess": "Метка добавлена.",
"createSuccess": "Метка создана.",
@ -883,8 +883,8 @@
"relation": {
"add": "Добавить новую связанную задачу",
"new": "Новая связанная задача",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Введи запрос для поиска задачи, чтобы добавить связь…",
"createPlaceholder": "Добавить как связанную задачу",
"differentProject": "Эта задача принадлежит другому проекту.",
"noneYet": "Ещё нет связанных задач.",
"delete": "Удалить связь",
@ -922,7 +922,7 @@
"every30d": "Каждые 30 дней",
"mode": "Режим повтора",
"monthly": "Ежемесячно",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "От сегодняшей даты",
"each": "Каждые",
"specifyAmount": "Укажите количество…",
"hours": "Часов",
@ -962,7 +962,7 @@
"title": "Команды",
"noTeams": "Сейчас вы не являетесь участником ни одной команды.",
"create": {
"title": "Create a team",
"title": "Создать команду",
"success": "Команда создана."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Создать копию",
"delete": "Удалить",
"unarchive": "Вернуть из архива",
"setBackground": "Background settings",
"setBackground": "Задать фон",
"share": "Поделиться",
"newProject": "Создать проект",
"createProject": "Создать проект",

View File

@ -53,7 +53,7 @@
"loginWith": "Log in with {provider}",
"authenticating": "Authenticating…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logout",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Create new",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Prijava z {provider}",
"authenticating": "Avtentikacija…",
"openIdStateError": "Stanje se ne ujema, prekinjam!",
"openIdGeneralError": "Med preverjanjem pristnosti zunanje povezave je prišlo do napake.",
"openIdGeneralError": "Med preverjanjem pristnosti preko zunanje aplikacije je prišlo do napake.",
"logout": "Odjava",
"emailInvalid": "Prosim vnesite veljaven e-poštni naslov.",
"usernameRequired": "Prosim vnesite uporabniško ime.",
@ -227,8 +227,8 @@
"title": "Arhiviraj \"{project}\"",
"archive": "Arhiviraj projekt",
"unarchive": "Odstrani projekt iz arhiva",
"unarchiveText": "Ustvarili boste lahko naloge ali jih urejali.",
"archiveText": "Tega projekta ne boste mogli urejati ali ustvarjati opravil, dokler ga ne odstranite iz arhiva.",
"unarchiveText": "Ustvarili boste lahko nove naloge ali jih uredili.",
"archiveText": "Dokler ga ne odstranite iz arhiva, tega projekta ne boste mogli urejati ali ustvarjati novih nalog.",
"success": "Projekt je bil uspešno arhiviran."
},
"background": {
@ -317,9 +317,9 @@
"list": {
"title": "Seznam",
"add": "Dodaj",
"addPlaceholder": "Dodaj nalogo…",
"addPlaceholder": "Dodaj novo nalogo…",
"empty": "Projekt je trenutno prazen.",
"newTaskCta": "Ustvari nalogo.",
"newTaskCta": "Ustvari novo nalogo.",
"editTask": "Uredi nalogo"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Vnesite nov naslov naloge…",
"addTask": "Dodaj nalogo",
"addAnotherTask": "Dodaj še eno nalogo",
"addBucket": "Ustvari vedro",
"addBucket": "Ustvari novo vedro",
"addBucketPlaceholder": "Vnesi nov naslov vedra…",
"deleteHeaderBucket": "Izbriši vedro",
"deleteBucketText1": "Ali ste prepričani, da želite izbrisati to vedro?",
@ -507,7 +507,7 @@
"search": "Začni tipkati za iskanje oznake…",
"create": {
"header": "Nova oznaka",
"title": "Ustvari oznako",
"title": "Ustvari novo oznako",
"titleRequired": "Prosim določite naslov.",
"success": "Oznaka je bila uspešno ustvarjena."
},
@ -642,7 +642,7 @@
"placeholder": "Začni tipkati besedilo ali pritisni '/', da vidiš več možnosti…"
},
"multiselect": {
"createPlaceholder": "Ustvari",
"createPlaceholder": "Ustvari novo",
"selectPlaceholder": "Za izbiro kliknite ali pritisnite enter"
},
"datepickerRange": {
@ -721,7 +721,7 @@
},
"task": {
"task": "Naloga",
"new": "Ustvari opravilo",
"new": "Ustvari novo nalogo",
"delete": "Izbriši nalogo",
"createSuccess": "Naloga je bila uspešno ustvarjena.",
"addReminder": "Dodaj nov opomnik…",
@ -883,8 +883,8 @@
"relation": {
"add": "Dodajte novo povezavo naloge",
"new": "Nova povezava naloge",
"searchPlaceholder": "Vnesite iskanje za nalogo, ki jo želite dodati kot povezano…",
"createPlaceholder": "Dodaj kot povezavo naloge",
"searchPlaceholder": "Novo nalogo, ki jo želite dodati kot povezano, poiščite s tipkanjem…",
"createPlaceholder": "Dodaj kot novo povezavo naloge",
"differentProject": "Ta naloga pripada drugemu projektu.",
"noneYet": "Naloge še nimajo povezav.",
"delete": "Izbriši povezavo nalog",
@ -922,7 +922,7 @@
"every30d": "Vsakih 30 dni",
"mode": "Način ponavljanja",
"monthly": "Mesečno",
"fromCurrentDate": "Od datuma dokončanja",
"fromCurrentDate": "Od trenutnega datuma",
"each": "Vsak",
"specifyAmount": "Določi znesek…",
"hours": "Ur",
@ -962,7 +962,7 @@
"title": "Ekipe",
"noTeams": "Trenutno niste del nobene ekipe.",
"create": {
"title": "Ustvari ekipo",
"title": "Ustvari novo ekipo",
"success": "Ekipa je bila uspešno ustvarjena."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Podvoji",
"delete": "Izbriši",
"unarchive": "Odstrani iz arhiva",
"setBackground": "Nastavitve ozadja",
"setBackground": "Nastavi ozadje",
"share": "Skupna raba",
"newProject": "Nov projekt",
"createProject": "Ustvari projekt",

View File

@ -53,7 +53,7 @@
"loginWith": "Log in with {provider}",
"authenticating": "Authenticating…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logout",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Create new",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Logga in med {provider}",
"authenticating": "Autentiserar…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logga ut",
"emailInvalid": "Vänligen ange en giltig e-postadress.",
"usernameRequired": "Vänligen ange ett användarnamn.",
@ -227,8 +227,8 @@
"title": "Arkivera \"{project}\"",
"archive": "Arkivera detta projekt",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Namn (valfritt)",
"namePlaceholder": "t. ex. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Lägg till",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Lägg till en ny uppgift…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Skapa en ny uppgift.",
"editTask": "Redigera uppgift"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Lägg till en uppgift",
"addAnotherTask": "Lägg till ytterligare en uppgift",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Skriv för att söka efter en etikett…",
"create": {
"header": "Ny etikett",
"title": "Create a label",
"title": "Skapa ny etikett",
"titleRequired": "Vänligen ange en titel.",
"success": "Etiketten har skapats."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Autentiserar…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "Ett fel har inträffat.",
"invalidPassword": "Lösenordet är ogiltigt."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Skapa",
"createPlaceholder": "Create new",
"selectPlaceholder": "Klicka eller tryck på enter för att välja"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Uppgift",
"new": "Skapa en uppgift",
"new": "Skapa en ny uppgift",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Lägg till en påminnelse…",
"addReminder": "Lägg till ny påminnelse…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Ångra",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Skriv för att lägga till en ny etikett…",
"createPlaceholder": "Lägg till som ny etikett",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Timmar",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicera",
"delete": "Radera",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Dela",
"newProject": "Nytt projekt",
"createProject": "Skapa projekt",

View File

@ -53,7 +53,7 @@
"loginWith": "Log in with {provider}",
"authenticating": "Authenticating…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logout",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Create new",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "Đăng nhập với {provider}",
"authenticating": "Đang xác thực…",
"openIdStateError": "Trạng thái không khớp, từ chối tiếp tục!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "Đã xảy ra lỗi khi xác thực với bên thứ ba.",
"logout": "Đăng xuất",
"emailInvalid": "Vui lòng nhập một địa chỉ email hợp lệ.",
"usernameRequired": "Vui lòng cung cấp tên người dùng.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "Bộ lọc đã lưu mới",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Tạo thêm bộ lọc sẵn",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Gõ để tìm kiếm nhãn…",
"create": {
"header": "Nhãn mới",
"title": "Create a label",
"title": "Tạo một nhãn mới",
"titleRequired": "Hãy đặt một tiêu đề.",
"success": "Nhãn đã được tạo thành công."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Đang xác thực…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "Đã xảy ra lỗi.",
"invalidPassword": "Mật khẩu không hợp lệ."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Tạo mới",
"selectPlaceholder": "Nhấp hoặc nhấn enter để chọn"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Công việc",
"new": "Create a task",
"new": "Tạo một công việc mới",
"delete": "Xóa công việc này",
"createSuccess": "Công việc đã được tạo thành công.",
"addReminder": "Add a reminder…",
"addReminder": "Thêm lời nhắc mới…",
"doneSuccess": "Công việc đã được đánh dấu Hoàn thành.",
"undoneSuccess": "Công việc đã được bỏ đánh dấu Hoàn thành.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "Bỏ chỉ định thành công."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Nhập để thêm nhãn mới…",
"createPlaceholder": "Thêm nhãn mới này",
"addSuccess": "Nhãn đã được thêm thành công.",
"createSuccess": "Nhãn đã được thêm thành công.",
@ -883,8 +883,8 @@
"relation": {
"add": "Thêm một Công việc liên quan",
"new": "Công việc liên quan mới",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Gõ tìm kiếm một công việc để thêm dưới dạng liên quan…",
"createPlaceholder": "Thêm điều này làm công việc liên quan mới",
"differentProject": "This task belongs to a different project.",
"noneYet": "Không có công việc liên quan nào.",
"delete": "Xóa công việc liên quan",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Chế độ lặp lại",
"monthly": "Hàng tháng",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "Từ ngày hiện tại",
"each": "Mỗi",
"specifyAmount": "Chỉ định một số lượng…",
"hours": "Giờ",
@ -962,7 +962,7 @@
"title": "Team",
"noTeams": "Bạn chưa thuộc bất kỳ Team nào.",
"create": {
"title": "Create a team",
"title": "Thêm một Team mới",
"success": "Team đã được tạo thành công."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Nhân bản",
"delete": "Xóa",
"unarchive": "Bỏ lưu trữ",
"setBackground": "Background settings",
"setBackground": "Cài hình nền",
"share": "Chia sẻ",
"newProject": "New project",
"createProject": "Create project",

View File

@ -53,7 +53,7 @@
"loginWith": "以 {provider} 身份登录",
"authenticating": "验证中",
"openIdStateError": "状态不匹配,无法继续!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "在验证第三方时出错。",
"logout": "注销",
"emailInvalid": "请输入有效的电子邮件地址。",
"usernameRequired": "请输入用户名",
@ -227,8 +227,8 @@
"title": "存档 \"{project}\"",
"archive": "存档此项目",
"unarchive": "取消存档此项目",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "您将能够创建新任务或编辑此项目",
"archiveText": "在您取消归档之前,您将无法编辑此项目或创建新任务。",
"success": "项目已成功归档。"
},
"background": {
@ -277,7 +277,7 @@
"title": "共享链接",
"what": "什么是共享链接?",
"explanation": "共享链接使您能够轻松地与其他未注册账户的访客共享一个列表。",
"create": "Create a link share",
"create": "创建一个新的共享链接",
"name": "共享链接名称 (可选)",
"namePlaceholder": "例如Lorem Ipsum",
"nameExplanation": "此共享链接中的所有动作都将显示该名称。",
@ -317,9 +317,9 @@
"list": {
"title": "列表",
"add": "添加",
"addPlaceholder": "Add a task…",
"addPlaceholder": "添加新任务",
"empty": "此项目目前为空。",
"newTaskCta": "Create a task.",
"newTaskCta": "新建任务。",
"editTask": "编辑任务"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "输入新任务标题…",
"addTask": "添加任务",
"addAnotherTask": "添加另一个任务",
"addBucket": "Create a bucket",
"addBucket": "创建一个新的存储桶。",
"addBucketPlaceholder": "输入新的存储桶标题…",
"deleteHeaderBucket": "删除存储桶",
"deleteBucketText1": "您确定要删除此存储桶吗?",
@ -423,7 +423,7 @@
"create": {
"title": "新保存的过滤器",
"description": "保存的过滤器是一个虚拟工程,每次访问时都从一组过滤器中计算。",
"action": "Create saved filter",
"action": "创建新保存的过滤器",
"titleRequired": "请为该过滤器提供名称。"
},
"delete": {
@ -507,7 +507,7 @@
"search": "输入以搜索标签…",
"create": {
"header": "新建标记",
"title": "Create a label",
"title": "创建标签",
"titleRequired": "请指定标题",
"success": "已新建标签"
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "验证中……",
"passwordRequired": "此共享项目需要密码。请在下面输入:",
"error": "An error occurred.",
"error": "发生错误",
"invalidPassword": "密码错误"
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "输入一些文本或点击“/”查看更多选项…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "创建新的",
"selectPlaceholder": "点击或按 Enter 选择"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "任务",
"new": "Create a task",
"new": "新建任务",
"delete": "删除此任务",
"createSuccess": "成功创建任务",
"addReminder": "Add a reminder…",
"addReminder": "添加一个新的提醒…",
"doneSuccess": "待办事项已标记为完成。",
"undoneSuccess": "待办事项已标记为未完成。",
"undo": "撤销",
@ -860,7 +860,7 @@
"unassignSuccess": "已成功取消分配用户。"
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "添加一个新标签…",
"createPlaceholder": "将此添加为新标签",
"addSuccess": "已成功添加标签。",
"createSuccess": "已成功创建标签。",
@ -883,8 +883,8 @@
"relation": {
"add": "添加新任务关系",
"new": "新任务关系",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "输入以搜索要添加关联的新任务...",
"createPlaceholder": "添加为新的关联任务",
"differentProject": "此任务属于另一个项目。",
"noneYet": "还没有任务关联。",
"delete": "删除关联",
@ -922,7 +922,7 @@
"every30d": "每 30 天",
"mode": "重复模式",
"monthly": "每月",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "从当前日期",
"each": "每个",
"specifyAmount": "指定数量…",
"hours": "小时",
@ -962,7 +962,7 @@
"title": "团队",
"noTeams": "你目前不属于任何团队。",
"create": {
"title": "Create a team",
"title": "创建一个新团队。",
"success": "团队已成功创建。"
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "复制",
"delete": "删除",
"unarchive": "取消存档",
"setBackground": "Background settings",
"setBackground": "设置背景",
"share": "共享",
"newProject": "新项目",
"createProject": "创建项目",

View File

@ -53,7 +53,7 @@
"loginWith": "Log in with {provider}",
"authenticating": "Authenticating…",
"openIdStateError": "State does not match, refusing to continue!",
"openIdGeneralError": "An error occurred while authenticating against the third party.",
"openIdGeneralError": "An error occured while authenticating against the third party.",
"logout": "Logout",
"emailInvalid": "Please enter a valid email address.",
"usernameRequired": "Please provide a username.",
@ -227,8 +227,8 @@
"title": "Archive \"{project}\"",
"archive": "Archive this project",
"unarchive": "Un-Archive this project",
"unarchiveText": "You will be able to create tasks or edit it.",
"archiveText": "You won't be able to edit this project or create tasks until you un-archive it.",
"unarchiveText": "You will be able to create new tasks or edit it.",
"archiveText": "You won't be able to edit this project or create new tasks until you un-archive it.",
"success": "The project was successfully archived."
},
"background": {
@ -277,7 +277,7 @@
"title": "Share Links",
"what": "What is a share link?",
"explanation": "Share Links allow you to easily share a project with other users who don't have an account on Vikunja.",
"create": "Create a link share",
"create": "Create a new link share",
"name": "Name (optional)",
"namePlaceholder": "e.g. Lorem Ipsum",
"nameExplanation": "All actions done by this link share will show up with the name.",
@ -317,9 +317,9 @@
"list": {
"title": "List",
"add": "Add",
"addPlaceholder": "Add a task…",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a task.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
@ -352,7 +352,7 @@
"addTaskPlaceholder": "Enter the new task title…",
"addTask": "Add a task",
"addAnotherTask": "Add another task",
"addBucket": "Create a bucket",
"addBucket": "Create a new bucket",
"addBucketPlaceholder": "Enter the new bucket title…",
"deleteHeaderBucket": "Delete the bucket",
"deleteBucketText1": "Are you sure you want to delete this bucket?",
@ -423,7 +423,7 @@
"create": {
"title": "New Saved Filter",
"description": "A saved filter is a virtual project which is computed from a set of filters each time it is accessed.",
"action": "Create saved filter",
"action": "Create new saved filter",
"titleRequired": "Please provide a title for the filter."
},
"delete": {
@ -507,7 +507,7 @@
"search": "Type to search for a label…",
"create": {
"header": "New label",
"title": "Create a label",
"title": "Create a new label",
"titleRequired": "Please specify a title.",
"success": "The label was successfully created."
},
@ -528,7 +528,7 @@
"sharing": {
"authenticating": "Authenticating…",
"passwordRequired": "This shared project requires a password. Please enter it below:",
"error": "An error occurred.",
"error": "An error occured.",
"invalidPassword": "The password is invalid."
},
"navigation": {
@ -642,7 +642,7 @@
"placeholder": "Type some text or hit '/' to see more options…"
},
"multiselect": {
"createPlaceholder": "Create",
"createPlaceholder": "Create new",
"selectPlaceholder": "Click or press enter to select"
},
"datepickerRange": {
@ -721,10 +721,10 @@
},
"task": {
"task": "Task",
"new": "Create a task",
"new": "Create a new task",
"delete": "Delete this task",
"createSuccess": "The task was successfully created.",
"addReminder": "Add a reminder…",
"addReminder": "Add a new reminder…",
"doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.",
"undo": "Undo",
@ -860,7 +860,7 @@
"unassignSuccess": "The user has been unassigned successfully."
},
"label": {
"placeholder": "Type to add a label…",
"placeholder": "Type to add a new label…",
"createPlaceholder": "Add this as new label",
"addSuccess": "The label has been added successfully.",
"createSuccess": "The label has been created successfully.",
@ -883,8 +883,8 @@
"relation": {
"add": "Add a New Task Relation",
"new": "New Task Relation",
"searchPlaceholder": "Type search for a task to add as related…",
"createPlaceholder": "Add this as related task",
"searchPlaceholder": "Type search for a new task to add as related…",
"createPlaceholder": "Add this as new related task",
"differentProject": "This task belongs to a different project.",
"noneYet": "No task relations yet.",
"delete": "Delete Task Relation",
@ -922,7 +922,7 @@
"every30d": "Every 30 Days",
"mode": "Repeat mode",
"monthly": "Monthly",
"fromCurrentDate": "From completion date",
"fromCurrentDate": "From Current Date",
"each": "Each",
"specifyAmount": "Specify an amount…",
"hours": "Hours",
@ -962,7 +962,7 @@
"title": "Teams",
"noTeams": "You are currently not part of any teams.",
"create": {
"title": "Create a team",
"title": "Create a new team",
"success": "The team was successfully created."
},
"edit": {
@ -1060,7 +1060,7 @@
"duplicate": "Duplicate",
"delete": "Delete",
"unarchive": "Un-Archive",
"setBackground": "Background settings",
"setBackground": "Set background",
"share": "Share",
"newProject": "New project",
"createProject": "Create project",

View File

@ -23,7 +23,6 @@ export const DAYJS_LOCALE_MAPPING = {
'ar-SA': 'ar-sa',
'sl-SI': 'sl',
'pt-BR': 'pt',
'hr-HR': 'hr',
} as Record<SupportedLocale, ISOLanguage>
export const DAYJS_LANGUAGE_IMPORTS = {

View File

@ -1,13 +1,8 @@
import type {IAbstract} from './IAbstract'
import type {IProject} from '@/modelTypes/IProject'
export const PROJECT_VIEW_KINDS = {
LIST: 'list',
GANTT: 'gantt',
TABLE: 'table',
KANBAN: 'kanban',
} as const
export type ProjectViewKind = typeof PROJECT_VIEW_KINDS[keyof typeof PROJECT_VIEW_KINDS]
export const PROJECT_VIEW_KINDS = ['list', 'gantt', 'table', 'kanban']
export type ProjectViewKind = typeof PROJECT_VIEW_KINDS[number]
export const PROJECT_VIEW_BUCKET_CONFIGURATION_MODES = ['none', 'manual', 'filter']
export type ProjectViewBucketConfigurationMode = typeof PROJECT_VIEW_BUCKET_CONFIGURATION_MODES[number]

View File

@ -22,6 +22,6 @@ export interface IUserSettings extends IAbstract {
defaultProjectId: undefined | IProject['id']
weekStart: 0 | 1 | 2 | 3 | 4 | 5 | 6
timezone: string
language: SupportedLocale | null
language: SupportedLocale
frontendSettings: IFrontendSettings
}

View File

@ -52,16 +52,12 @@ export default class ProjectService extends AbstractService<IProject> {
return window.URL.createObjectURL(new Blob([response.data]))
}
async removeBackground(project: IProject) {
async removeBackground(project: Pick<IProject, 'id'>) {
const cancel = this.setLoading()
try {
await this.http.delete(`/projects/${project.id}/background`)
return {
...project,
backgroundInformation: null,
backgroundBlurHash: '',
}
const response = await this.http.delete(`/projects/${project.id}/background`, project)
return response.data
} finally {
cancel()
}

View File

@ -37,8 +37,6 @@ function redirectToProviderIfNothingElseIsEnabled() {
}
export const useAuthStore = defineStore('auth', () => {
const configStore = useConfigStore()
const authenticated = ref(false)
const isLinkShareAuth = ref(false)
const needsTotpPasscode = ref(false)
@ -187,7 +185,8 @@ export const useAuthStore = defineStore('auth', () => {
const HTTP = HTTPFactory()
setIsLoading(true)
const fullProvider: IProvider = configStore.auth.openidConnect.providers.find((p: IProvider) => p.key === provider)
const {auth} = useConfigStore()
const fullProvider: IProvider = auth.openidConnect.providers.find((p: IProvider) => p.key === provider)
const data = {
code: code,
@ -358,15 +357,8 @@ export const useAuthStore = defineStore('auth', () => {
const cancel = setModuleLoading(setIsLoadingGeneralSettings)
try {
let settingsUpdate = {...settings}
if (configStore.demoModeEnabled) {
settingsUpdate = {
...settingsUpdate,
language: null,
}
}
const updateSettingsPromise = userSettingsService.update(settingsUpdate)
setUserSettings(settingsUpdate)
const updateSettingsPromise = userSettingsService.update(settings)
setUserSettings({...settings})
await setLanguage(settings.language)
await updateSettingsPromise
if (showMessage) {
@ -411,12 +403,13 @@ export const useAuthStore = defineStore('auth', () => {
await checkAuth()
// if configured, redirect to OIDC Provider on logout
const {auth} = useConfigStore()
if (
configStore.auth.local.enabled === false &&
configStore.auth.openidConnect.enabled &&
configStore.auth.openidConnect.providers?.length === 1)
auth.local.enabled === false &&
auth.openidConnect.enabled &&
auth.openidConnect.providers?.length === 1)
{
redirectToProviderOnLogout(configStore.auth.openidConnect.providers[0])
redirectToProviderOnLogout(auth.openidConnect.providers[0])
}
}

View File

@ -14,4 +14,33 @@
border-radius: $radius !important;
}
}
}
.link-share-container {
&.project\.gantt-view,
&.project\.kanban-view {
.container {
max-width: 100vw;
.column {
width: 100%;
margin: 0;
}
}
}
}
.link-share-container:not(.has-background) {
.list-view {
max-width: 100%;
}
.loader-container, .gantt-chart-container > .card {
box-shadow: none !important;
border: none;
.task-add {
padding: 1rem 0 0;
}
}
}

View File

@ -162,7 +162,7 @@ const configStore = useConfigStore()
const unsplashBackgroundEnabled = computed(() => configStore.enabledBackgroundProviders.includes('unsplash'))
const uploadBackgroundEnabled = computed(() => configStore.enabledBackgroundProviders.includes('upload'))
const currentProject = computed(() => baseStore.currentProject)
const hasBackground = computed(() => !!currentProject.value.backgroundInformation)
const hasBackground = computed(() => baseStore.background !== null)
// Show the default collection of backgrounds
newBackgroundSearch()

4
go.mod
View File

@ -68,7 +68,7 @@ require (
github.com/ulule/limiter/v3 v3.11.2
github.com/wneessen/go-mail v0.4.0
github.com/yuin/goldmark v1.7.1
golang.org/x/crypto v0.23.0
golang.org/x/crypto v0.22.0
golang.org/x/image v0.16.0
golang.org/x/oauth2 v0.20.0
golang.org/x/sync v0.7.0
@ -190,4 +190,4 @@ replace github.com/samedi/caldav-go => github.com/kolaente/caldav-go v3.0.1-0.20
go 1.21
toolchain go1.22.3
toolchain go1.21.2

2
go.sum
View File

@ -574,8 +574,6 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=

View File

@ -640,7 +640,6 @@ func checkBucketLimit(s *xorm.Session, t *Task, bucket *Bucket) (err error) {
if bucket.Limit > 0 {
taskCount, err := s.
Where("bucket_id = ?", bucket.ID).
GroupBy("task_id").
Count(&TaskBucket{})
if err != nil {
return err