Browse Source

Merge branch 'master' into patch-20

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
tags/v27.0.0beta1
Jérôme Herbinet 1 year ago
parent
commit
16361bed5e
No account linked to committer's email address
100 changed files with 406 additions and 133 deletions
  1. 67
    28
      .devcontainer/Dockerfile
  2. 72
    0
      .devcontainer/README.md
  3. 4
    1
      .devcontainer/codespace.config.php
  4. 16
    11
      .devcontainer/devcontainer.json
  5. 8
    1
      .devcontainer/docker-compose.yml
  6. 5
    0
      .devcontainer/entrypoint.sh
  7. 14
    0
      .devcontainer/launch.json
  8. 25
    0
      .devcontainer/setup.sh
  9. 1
    0
      .gitattributes
  10. 1
    1
      .github/workflows/update-cacert-bundle.yml
  11. 1
    1
      .github/workflows/update-psalm-baseline.yml
  12. 0
    11
      .htaccess
  13. 1
    1
      3rdparty
  14. 7
    0
      apps/admin_audit/l10n/es_CL.js
  15. 5
    0
      apps/admin_audit/l10n/es_CL.json
  16. 2
    2
      apps/admin_audit/lib/Actions/Sharing.php
  17. 1
    1
      apps/comments/l10n/tr.js
  18. 1
    1
      apps/comments/l10n/tr.json
  19. 10
    11
      apps/comments/src/services/DavClient.js
  20. 23
    32
      apps/comments/src/services/GetComments.ts
  21. 6
    16
      apps/comments/src/utils/cancelableRequest.js
  22. 5
    5
      apps/comments/src/views/Comments.vue
  23. 3
    1
      apps/dashboard/l10n/ca.js
  24. 3
    1
      apps/dashboard/l10n/ca.json
  25. 2
    0
      apps/dashboard/l10n/eu.js
  26. 2
    0
      apps/dashboard/l10n/eu.json
  27. 2
    0
      apps/dashboard/l10n/gl.js
  28. 2
    0
      apps/dashboard/l10n/gl.json
  29. 2
    0
      apps/dashboard/l10n/pl.js
  30. 2
    0
      apps/dashboard/l10n/pl.json
  31. 1
    0
      apps/dashboard/l10n/sl.js
  32. 1
    0
      apps/dashboard/l10n/sl.json
  33. 5
    5
      apps/dashboard/src/DashboardApp.vue
  34. 1
    0
      apps/dav/img/calendar.svg
  35. 1
    0
      apps/dav/l10n/bg.js
  36. 1
    0
      apps/dav/l10n/bg.json
  37. 3
    0
      apps/dav/l10n/ca.js
  38. 3
    0
      apps/dav/l10n/ca.json
  39. 1
    0
      apps/dav/l10n/cs.js
  40. 1
    0
      apps/dav/l10n/cs.json
  41. 1
    0
      apps/dav/l10n/da.js
  42. 1
    0
      apps/dav/l10n/da.json
  43. 4
    0
      apps/dav/l10n/de.js
  44. 4
    0
      apps/dav/l10n/de.json
  45. 4
    0
      apps/dav/l10n/de_DE.js
  46. 4
    0
      apps/dav/l10n/de_DE.json
  47. 1
    0
      apps/dav/l10n/el.js
  48. 1
    0
      apps/dav/l10n/el.json
  49. 1
    0
      apps/dav/l10n/en_GB.js
  50. 1
    0
      apps/dav/l10n/en_GB.json
  51. 1
    0
      apps/dav/l10n/es.js
  52. 1
    0
      apps/dav/l10n/es.json
  53. 1
    0
      apps/dav/l10n/eu.js
  54. 1
    0
      apps/dav/l10n/eu.json
  55. 1
    0
      apps/dav/l10n/fi.js
  56. 1
    0
      apps/dav/l10n/fi.json
  57. 4
    0
      apps/dav/l10n/fr.js
  58. 4
    0
      apps/dav/l10n/fr.json
  59. 3
    0
      apps/dav/l10n/gl.js
  60. 3
    0
      apps/dav/l10n/gl.json
  61. 1
    0
      apps/dav/l10n/he.js
  62. 1
    0
      apps/dav/l10n/he.json
  63. 1
    0
      apps/dav/l10n/hr.js
  64. 1
    0
      apps/dav/l10n/hr.json
  65. 1
    0
      apps/dav/l10n/hu.js
  66. 1
    0
      apps/dav/l10n/hu.json
  67. 1
    0
      apps/dav/l10n/is.js
  68. 1
    0
      apps/dav/l10n/is.json
  69. 1
    0
      apps/dav/l10n/it.js
  70. 1
    0
      apps/dav/l10n/it.json
  71. 1
    0
      apps/dav/l10n/ja.js
  72. 1
    0
      apps/dav/l10n/ja.json
  73. 1
    0
      apps/dav/l10n/ko.js
  74. 1
    0
      apps/dav/l10n/ko.json
  75. 1
    0
      apps/dav/l10n/lt_LT.js
  76. 1
    0
      apps/dav/l10n/lt_LT.json
  77. 2
    0
      apps/dav/l10n/mk.js
  78. 2
    0
      apps/dav/l10n/mk.json
  79. 1
    0
      apps/dav/l10n/nb.js
  80. 1
    0
      apps/dav/l10n/nb.json
  81. 1
    0
      apps/dav/l10n/nl.js
  82. 1
    0
      apps/dav/l10n/nl.json
  83. 1
    0
      apps/dav/l10n/pl.js
  84. 1
    0
      apps/dav/l10n/pl.json
  85. 1
    0
      apps/dav/l10n/pt_BR.js
  86. 1
    0
      apps/dav/l10n/pt_BR.json
  87. 1
    0
      apps/dav/l10n/ru.js
  88. 1
    0
      apps/dav/l10n/ru.json
  89. 1
    0
      apps/dav/l10n/sc.js
  90. 1
    0
      apps/dav/l10n/sc.json
  91. 1
    0
      apps/dav/l10n/sk.js
  92. 1
    0
      apps/dav/l10n/sk.json
  93. 1
    0
      apps/dav/l10n/sl.js
  94. 1
    0
      apps/dav/l10n/sl.json
  95. 1
    0
      apps/dav/l10n/sr.js
  96. 1
    0
      apps/dav/l10n/sr.json
  97. 4
    0
      apps/dav/l10n/sv.js
  98. 4
    0
      apps/dav/l10n/sv.json
  99. 7
    3
      apps/dav/l10n/tr.js
  100. 0
    0
      apps/dav/l10n/tr.json

+ 67
- 28
.devcontainer/Dockerfile View File

@@ -1,34 +1,56 @@
FROM ubuntu:focal
FROM ubuntu:jammy

ARG DEBIAN_FRONTEND=noninteractive

# PHP
RUN apt-get update -y
RUN apt-get update -y && \
apt install -y apache2 vim software-properties-common sudo nano gnupg2

RUN apt-get install --no-install-recommends -y \
php7.4 \
php7.4-gd \
php7.4-zip \
php7.4-curl \
php7.4-xml \
php7.4-mbstring \
php7.4-sqlite \
php7.4-xdebug \
php7.4-pgsql \
php7.4-intl \
php7.4-imagick \
php7.4-gmp \
php7.4-apcu \
php7.4-bcmath \
php8.1 \
php8.1-common \
php8.1-gd \
php8.1-zip \
php8.1-curl \
php8.1-xml \
php8.1-xmlrpc \
php8.1-mbstring \
php8.1-sqlite \
php8.1-xdebug \
php8.1-pgsql \
php8.1-intl \
php8.1-imagick \
php8.1-gmp \
php8.1-apcu \
php8.1-bcmath \
php8.1-redis \
php8.1-soap \
php8.1-imap \
php8.1-opcache \
php8.1-cli \
php8.1-dev \
libmagickcore-6.q16-3-extra \
curl \
vim \
lsof \
make \
nodejs \
npm
unzip

# Composer
RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \
curl -sS https://composer.github.io/installer.sig -o /tmp/composer-setup.sig && \
php -r "if (hash_file('sha384', '/tmp/composer-setup.php') !== trim(file_get_contents('/tmp/composer-setup.sig'))) { echo 'Composer installation failed, invalid hash'; exit(1); }" && \
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
rm /tmp/composer-setup.php /tmp/composer-setup.sig

RUN echo "xdebug.remote_enable = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.1/cli/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/8.1/cli/conf.d/20-xdebug.ini && \
echo "apc.enable_cli=1" >> /etc/php/8.1/cli/conf.d/20-apcu.ini

# Autostart XDebug for apache
RUN { \
echo "xdebug.mode=debug"; \
echo "xdebug.start_with_request=yes"; \
} >> /etc/php/8.1/apache2/conf.d/20-xdebug.ini

# Docker
RUN apt-get -y install \
@@ -36,12 +58,29 @@ RUN apt-get -y install \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
RUN apt-get update -y
RUN apt-get install -y docker-ce docker-ce-cli containerd.io
RUN ln -s /var/run/docker-host.sock /var/run/docker.sock
stable" && \
apt-get update -y && \
apt-get install -y docker-ce docker-ce-cli containerd.io && \
ln -s /var/run/docker-host.sock /var/run/docker.sock

# Dedicated DevContainer user runs Apache
ENV APACHE_RUN_USER=devcontainer
ENV APACHE_RUN_GROUP=devcontainer
RUN useradd -ms /bin/bash ${APACHE_RUN_USER} && \
adduser ${APACHE_RUN_USER} sudo && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \
sed -ri "s/^export APACHE_RUN_GROUP=.*$/export APACHE_RUN_GROUP=${APACHE_RUN_GROUP}/" "/etc/apache2/envvars"

USER devcontainer

# NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 16'

WORKDIR /var/www/html

+ 72
- 0
.devcontainer/README.md View File

@@ -0,0 +1,72 @@
# Nextcloud DevContainer

## Usage

Make sure you have the [VSCode DevContainer](https://code.visualstudio.com/docs/devcontainers/containers) extensions installed. If you open the project, VSCode will ask you if you want to open it inside of the DevContainer. If that's not the case, use <kbd>F1</kbd>&rarr;*Dev Containers: Open Folder in Container*.

Alternatively open the project directly in [GitHub Codespaces](https://github.com/features/codespaces).

That's already it. Everything else will be configured automatically by the Containers startup routine.

## Credentials

On first start the Container installs and configures Nextcloud with the following credentials:

**Nextcloud Admin Login**

Username: `admin` <br>
Password: `admin`

**Postgres credentials**

Username: `postgres` <br>
Password: `postgres` <br>
Database: `postgres`

## Services

The following services will be started:

| Service | Local port | Description |
|---------|------------|-------------|
| Nextcloud (served via Apache) | `80` | The main application |
| Mailhog | `8025` | SMTP email delivery for testing |
| Adminer | `8080` | Database viewer. Use credentials from above and connect to `localhost` to get access to the NC database |

## Permissions

The container runs with the user `devcontainer` who is also running the Apache2 process. All mounted source files have
proper permissions so that this user can access everything which is inside the current workspace. If you need to
get root permissions for whatever reason, use `sudo su` or `sudo <command>` (for example `sudo service apache2 restart`).
Everything else (like building the application, adjusting files, ...) should be done as `devcontainer` user.

## NodeJs and NVM

The container comes with [`nvm`](https://github.com/nvm-sh/nvm) and Node 16 installed. This should be sufficient to
build Nextcloud Core sources via `make`. If you need a different Node Version (for example for
app development), you can easily switch between different versions by running:

```bash
# Install and use Node 14
nvm install 14
nvm use 14

# Check version
node -v

# Switch back to Node 16
nvm use 16

# Check version
node -v
```

Note that `nvm` is only installed for the user `devcontainer` and won't work out of the box for
any other user.

## Debugging

The Apache webserver is already configured to automatically try to connect to a debugger process
listening on port `9003`. To start the VSCode debugger process, use the delivered debug profile `Listen for XDebug`.
After you started the VSCode debugger, just navigate to the appropriate Nextcloud URL to get your
debug hits.

+ 4
- 1
.devcontainer/codespace.config.php View File

@@ -14,6 +14,9 @@ $CONFIG = [
];

if(is_string($codespaceName) && !empty($codespaceName) && is_string($codespaceDomain) && !empty($codespaceDomain)) {
$CONFIG['overwritehost'] = $codespaceName . '-80.' . $codespaceDomain;
$host = $codespaceName . '-80.' . $codespaceDomain;
$CONFIG['overwritehost'] = $host;
$CONFIG['overwrite.cli.url'] = 'https://' . $host;
$CONFIG['overwriteprotocol'] = 'https';
$CONFIG['trusted_domains'] = [ $host ];
}

+ 16
- 11
.devcontainer/devcontainer.json View File

@@ -8,15 +8,20 @@
8080,
8025
],
"runArgs": [
"--privileged"
],
"extensions": [
"felixfbecker.php-debug",
"felixfbecker.php-intellisense",
"ms-azuretools.vscode-docker"
],
"settings": {
"php.suggest.basic": false,
}
"customizations": {
"vscode": {
"extensions": [
"felixfbecker.php-debug",
"felixfbecker.php-intellisense",
"ms-azuretools.vscode-docker",
"xdebug.php-debug",
"donjayamanne.githistory"
],
"settings": {
"php.suggest.basic": false
}
}
},
"workspaceFolder": "/var/www/html",
"remoteUser": "devcontainer"
}

+ 8
- 1
.devcontainer/docker-compose.yml View File

@@ -5,7 +5,8 @@ services:
volumes:
- .:/workspace:cached
- /var/run/docker.sock:/var/run/docker-host.sock
command: /bin/sh -c "while sleep 1000; do :; done"
- ..:/var/www/html
command: /var/www/html/.devcontainer/entrypoint.sh
ports:
- 80:80
- 8080:8080
@@ -16,6 +17,9 @@ services:
restart: always
environment:
POSTGRES_PASSWORD: postgres
PGDATA: /data/postgres
volumes:
- db:/data/postgres
network_mode: service:nextclouddev

adminer:
@@ -27,3 +31,6 @@ services:
image: mailhog/mailhog
restart: always
network_mode: service:nextclouddev

volumes:
db:

+ 5
- 0
.devcontainer/entrypoint.sh View File

@@ -0,0 +1,5 @@
#!/bin/bash

sudo service apache2 start

while sleep 1000; do :; done

+ 14
- 0
.devcontainer/launch.json View File

@@ -0,0 +1,14 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}

+ 25
- 0
.devcontainer/setup.sh View File

@@ -2,7 +2,32 @@
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )"

cd $DIR/

# Set git safe.directory
git config --global --add safe.directory /var/www/html
git config --global --add safe.directory /var/www/html/3rdparty

git submodule update --init

# Codespace config
cp .devcontainer/codespace.config.php config/codespace.config.php

# VSCode debugger profile
mkdir -p .vscode && cp .devcontainer/launch.json .vscode/launch.json

# Onetime installation setup
if [[ ! $(sudo -u ${APACHE_RUN_USER} php occ status) =~ installed:[[:space:]]*true ]]; then
echo "Running NC installation"
sudo -u ${APACHE_RUN_USER} php occ maintenance:install \
--verbose \
--database=pgsql \
--database-name=postgres \
--database-host=127.0.0.1 \
--database-port=5432 \
--database-user=postgres \
--database-pass=postgres \
--admin-user admin \
--admin-pass admin
fi

sudo service apache2 restart

+ 1
- 0
.gitattributes View File

@@ -1,3 +1,4 @@
/dist/* binary
/package-lock.json merge=binary
/core/css/*.css* binary
/.devcontainer/*.sh text eol=lf

+ 1
- 1
.github/workflows/update-cacert-bundle.yml View File

@@ -3,7 +3,7 @@ name: Update CA certificate bundle
on:
workflow_dispatch:
schedule:
- cron: "5 4 * * *"
- cron: "5 2 * * *"

jobs:
update-ca-certificate-bundle:

+ 1
- 1
.github/workflows/update-psalm-baseline.yml View File

@@ -3,7 +3,7 @@ name: Update Psalm baseline
on:
workflow_dispatch:
schedule:
- cron: "5 4 * * *"
- cron: "5 2 * * *"

jobs:
update-psalm-baseline:

+ 0
- 11
.htaccess View File

@@ -55,17 +55,6 @@
</FilesMatch>
</IfModule>

# PHP 7.x
<IfModule mod_php7.c>
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>

# PHP 8+
<IfModule mod_php.c>
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'

+ 1
- 1
3rdparty

@@ -1 +1 @@
Subproject commit 17e4333c0642e3ab75a0a385274c84668aed74e1
Subproject commit e31af932fb335789989659d558c871cac4573559

+ 7
- 0
apps/admin_audit/l10n/es_CL.js View File

@@ -0,0 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Auditoría / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el registro de accesos a archivos o acciones confidenciales."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

+ 5
- 0
apps/admin_audit/l10n/es_CL.json View File

@@ -0,0 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoría / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el registro de accesos a archivos o acciones confidenciales."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

+ 2
- 2
apps/admin_audit/lib/Actions/Sharing.php View File

@@ -162,7 +162,7 @@ class Sharing extends Action {
);
} elseif ($params['shareType'] === IShare::TYPE_SCIENCEMESH) {
$this->log(
'The %s "%s" with ID "%s" has been shared to the sciencemesh user "%s" with permissions "%s" (Share ID: %s)',
'The %s "%s" with ID "%s" has been shared to the ScienceMesh user "%s" with permissions "%s" (Share ID: %s)',
$params,
[
'itemType',
@@ -291,7 +291,7 @@ class Sharing extends Action {
);
} elseif ($params['shareType'] === IShare::TYPE_SCIENCEMESH) {
$this->log(
'The %s "%s" with ID "%s" has been unshared from the sciencemesh user "%s" (Share ID: %s)',
'The %s "%s" with ID "%s" has been unshared from the ScienceMesh user "%s" (Share ID: %s)',
$params,
[
'itemType',

+ 1
- 1
apps/comments/l10n/tr.js View File

@@ -8,7 +8,7 @@ OC.L10N.register(
"You commented on {file}" : "{file} hakkında yorum yaptınız",
"%1$s commented on %2$s" : "%1$s, %2$s için yorum yaptı",
"{author} commented on {file}" : "{author}, {file} hakkında yorum yaptı",
"<strong>Comments</strong> for files" : "Dosyalar için <strong>yorumlar</strong>",
"<strong>Comments</strong> for files" : "Dosyalar için <strong>yorum</strong> yapıldığında",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "\"{file}\" hakkında bir yorumda silinmiş bir kullanıcı tarafından anıldınız",
"{user} mentioned you in a comment on \"{file}\"" : "{user}, \"{file}\" hakkındaki bir yorumda sizi andı",
"Files app plugin to add comments to files" : "Dosyalara notlar eklenmesini sağlayan dosyalar uygulaması eki",

+ 1
- 1
apps/comments/l10n/tr.json View File

@@ -6,7 +6,7 @@
"You commented on {file}" : "{file} hakkında yorum yaptınız",
"%1$s commented on %2$s" : "%1$s, %2$s için yorum yaptı",
"{author} commented on {file}" : "{author}, {file} hakkında yorum yaptı",
"<strong>Comments</strong> for files" : "Dosyalar için <strong>yorumlar</strong>",
"<strong>Comments</strong> for files" : "Dosyalar için <strong>yorum</strong> yapıldığında",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "\"{file}\" hakkında bir yorumda silinmiş bir kullanıcı tarafından anıldınız",
"{user} mentioned you in a comment on \"{file}\"" : "{user}, \"{file}\" hakkındaki bir yorumda sizi andı",
"Files app plugin to add comments to files" : "Dosyalara notlar eklenmesini sağlayan dosyalar uygulaması eki",

+ 10
- 11
apps/comments/src/services/DavClient.js View File

@@ -20,19 +20,18 @@
*
*/

import { createClient, getPatcher } from 'webdav'
import axios from '@nextcloud/axios'

import { createClient } from 'webdav'
import { getRootPath } from '../utils/davUtils.js'

// Add this so the server knows it is an request from the browser
axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'

// force our axios
const patcher = getPatcher()
patcher.patch('request', axios)
import { getRequestToken } from '@nextcloud/auth'

// init webdav client
const client = createClient(getRootPath())
const client = createClient(getRootPath(), {
headers: {
// Add this so the server knows it is an request from the browser
'X-Requested-With': 'XMLHttpRequest',
// Inject user auth
requesttoken: getRequestToken() ?? '',
},
})

export default client

apps/comments/src/services/GetComments.js → apps/comments/src/services/GetComments.ts View File

@@ -20,12 +20,15 @@
*
*/

import { parseXML, prepareFileFromProps } from 'webdav/dist/node/tools/dav.js'
import { processResponsePayload } from 'webdav/dist/node/response.js'
import { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'
import { parseXML, type DAVResult, type FileStat } from 'webdav'

// https://github.com/perry-mitchell/webdav-client/issues/339
import { processResponsePayload } from '../../../../node_modules/webdav/dist/node/response.js'
import { prepareFileFromProps } from '../../../../node_modules/webdav/dist/node/tools/dav.js'
import client from './DavClient.js'

export const DEFAULT_LIMIT = 20

/**
* Retrieve the comments list
*
@@ -33,13 +36,13 @@ export const DEFAULT_LIMIT = 20
* @param {string} data.commentsType the ressource type
* @param {number} data.ressourceId the ressource ID
* @param {object} [options] optional options for axios
* @param {number} [options.offset] the pagination offset
* @return {object[]} the comments list
*/
export default async function({ commentsType, ressourceId }, options = {}) {
let response = null
export const getComments = async function({ commentsType, ressourceId }, options: { offset: number }) {
const ressourcePath = ['', commentsType, ressourceId].join('/')

return await client.customRequest(ressourcePath, Object.assign({
const response = await client.customRequest(ressourcePath, Object.assign({
method: 'REPORT',
data: `<?xml version="1.0"?>
<oc:filter-comments
@@ -51,42 +54,30 @@ export default async function({ commentsType, ressourceId }, options = {}) {
<oc:offset>${options.offset || 0}</oc:offset>
</oc:filter-comments>`,
}, options))
// See example on how it's done normally
// https://github.com/perry-mitchell/webdav-client/blob/9de2da4a2599e06bd86c2778145b7ade39fe0b3c/source/interface/stat.js#L19
// Waiting for proper REPORT integration https://github.com/perry-mitchell/webdav-client/issues/207
.then(res => {
response = res
return res.data
})
.then(parseXML)
.then(xml => processMultistatus(xml, true))
.then(comments => processResponsePayload(response, comments, true))
.then(response => response.data)

const responseData = await response.text()
const result = await parseXML(responseData)
const stat = getDirectoryFiles(result, true)
return processResponsePayload(response, stat, true)
}

// https://github.com/perry-mitchell/webdav-client/blob/9de2da4a2599e06bd86c2778145b7ade39fe0b3c/source/interface/directoryContents.js#L32
/**
* @param {any} result -
* @param {any} isDetailed -
*/
function processMultistatus(result, isDetailed = false) {
// https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts
const getDirectoryFiles = function(
result: DAVResult,
isDetailed = false,
): Array<FileStat> {
// Extract the response items (directory contents)
const {
multistatus: { response: responseItems },
} = result

// Map all items to a consistent output structure (results)
return responseItems.map(item => {
// Each item should contain a stat object
const {
propstat: { prop: props },
} = item
// Decode HTML entities
const decodedProps = {
...props,
// Decode twice to handle potentially double-encoded entities
// FIXME Remove this once https://github.com/nextcloud/server/issues/29306 is resolved
actorDisplayName: decodeHtmlEntities(props.actorDisplayName, 2),
message: decodeHtmlEntities(props.message, 2),
}
return prepareFileFromProps(decodedProps, decodedProps.id.toString(), isDetailed)

return prepareFileFromProps(props, props.id.toString(), isDetailed)
})
}

+ 6
- 16
apps/comments/src/utils/cancelableRequest.js View File

@@ -20,15 +20,6 @@
*
*/

import axios from '@nextcloud/axios'

/**
* Create a cancel token
*
* @return {import('axios').CancelTokenSource}
*/
const createCancelToken = () => axios.CancelToken.source()

/**
* Creates a cancelable axios 'request object'.
*
@@ -36,10 +27,8 @@ const createCancelToken = () => axios.CancelToken.source()
* @return {object}
*/
const cancelableRequest = function(request) {
/**
* Generate an axios cancel token
*/
const cancelToken = createCancelToken()
const controller = new AbortController()
const signal = controller.signal

/**
* Execute the request
@@ -48,15 +37,16 @@ const cancelableRequest = function(request) {
* @param {object} [options] optional config for the request
*/
const fetch = async function(url, options) {
return request(
const response = await request(
url,
Object.assign({ cancelToken: cancelToken.token }, options)
Object.assign({ signal }, options)
)
return response
}

return {
request: fetch,
cancel: cancelToken.cancel,
abort: () => controller.abort(),
}
}


+ 5
- 5
apps/comments/src/views/Comments.vue View File

@@ -94,7 +94,7 @@ import MessageReplyTextIcon from 'vue-material-design-icons/MessageReplyText.vue
import AlertCircleOutlineIcon from 'vue-material-design-icons/AlertCircleOutline.vue'

import Comment from '../components/Comment.vue'
import getComments, { DEFAULT_LIMIT } from '../services/GetComments.js'
import { getComments, DEFAULT_LIMIT } from '../services/GetComments.ts'
import cancelableRequest from '../utils/cancelableRequest.js'

Vue.use(VTooltip)
@@ -206,14 +206,14 @@ export default {
this.error = ''

// Init cancellable request
const { request, cancel } = cancelableRequest(getComments)
this.cancelRequest = cancel
const { request, abort } = cancelableRequest(getComments)
this.cancelRequest = abort

// Fetch comments
const comments = await request({
const { data: comments } = await request({
commentsType: this.commentsType,
ressourceId: this.ressourceId,
}, { offset: this.offset })
}, { offset: this.offset }) || { data: [] }

this.logger.debug(`Processed ${comments.length} comments`, { comments })


+ 3
- 1
apps/dashboard/l10n/ca.js View File

@@ -1,8 +1,10 @@
OC.L10N.register(
"dashboard",
{
"Dashboard" : "Tauler",
"Dashboard" : "Panell de control",
"Dashboard app" : "Aplicació tauler",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Comença el dia informat\n\nEl tauler de control de Nextcloud és el vostre punt de partida del dia, que us ofereix una visió general de les vostres properes cites, correus electrònics urgents, missatges de xat, tickets entrants, els últims tuits i molt més! Els usuaris poden afegir els ginys que els agradin i canviar el fons al seu gust.",
"\"{title} icon\"" : "\"icona {title}\"",
"Customize" : "Personalitza",
"Edit widgets" : "Edita els ginys",
"Get more widgets from the App Store" : "Aconseguiu més widgets de la botiga d'aplicacions",

+ 3
- 1
apps/dashboard/l10n/ca.json View File

@@ -1,6 +1,8 @@
{ "translations": {
"Dashboard" : "Tauler",
"Dashboard" : "Panell de control",
"Dashboard app" : "Aplicació tauler",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Comença el dia informat\n\nEl tauler de control de Nextcloud és el vostre punt de partida del dia, que us ofereix una visió general de les vostres properes cites, correus electrònics urgents, missatges de xat, tickets entrants, els últims tuits i molt més! Els usuaris poden afegir els ginys que els agradin i canviar el fons al seu gust.",
"\"{title} icon\"" : "\"icona {title}\"",
"Customize" : "Personalitza",
"Edit widgets" : "Edita els ginys",
"Get more widgets from the App Store" : "Aconseguiu més widgets de la botiga d'aplicacions",

+ 2
- 0
apps/dashboard/l10n/eu.js View File

@@ -3,6 +3,8 @@ OC.L10N.register(
{
"Dashboard" : "Panela",
"Dashboard app" : "Panela aplikazioa",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Hasi zure eguna informatuta\n\nNextcloud Panela da zure eguneko abiapuntua, eta zure hurrengo hitzorduen, premiazko mezu elektronikoen, txat-mezuen, sarrerako txartelen, azken txioen eta askoz gehiagoren ikuspegi orokorra eskaintzen dizu! Erabiltzaileek gogoko trepetak gehi ditzakete eta atzealdea nahieran aldatu.",
"\"{title} icon\"" : "\"{title} ikonoa\"",
"Customize" : "Pertsonalizatu",
"Edit widgets" : "Editatu trepetak",
"Get more widgets from the App Store" : "Lortu trepeta (widget) gehiago Aplikazioen Dendatik",

+ 2
- 0
apps/dashboard/l10n/eu.json View File

@@ -1,6 +1,8 @@
{ "translations": {
"Dashboard" : "Panela",
"Dashboard app" : "Panela aplikazioa",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Hasi zure eguna informatuta\n\nNextcloud Panela da zure eguneko abiapuntua, eta zure hurrengo hitzorduen, premiazko mezu elektronikoen, txat-mezuen, sarrerako txartelen, azken txioen eta askoz gehiagoren ikuspegi orokorra eskaintzen dizu! Erabiltzaileek gogoko trepetak gehi ditzakete eta atzealdea nahieran aldatu.",
"\"{title} icon\"" : "\"{title} ikonoa\"",
"Customize" : "Pertsonalizatu",
"Edit widgets" : "Editatu trepetak",
"Get more widgets from the App Store" : "Lortu trepeta (widget) gehiago Aplikazioen Dendatik",

+ 2
- 0
apps/dashboard/l10n/gl.js View File

@@ -3,6 +3,8 @@ OC.L10N.register(
{
"Dashboard" : "Taboleiro",
"Dashboard app" : "Aplicación de taboleiro",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Comeza o día informado\n\nO Taboleiro de Nextcloud é o teu punto de partida do día, dándoche unha visión xeral das túas próximas citas, correos electrónicos urxentes, mensaxes de chat, tickets entrantes, chíos máis recentes e moito máis. Os usuarios poden engadir os widgets que lles gustan e cambiar o fondo ao seu gusto.",
"\"{title} icon\"" : "\"icona {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar trebellos",
"Get more widgets from the App Store" : "Obtén máis widgets da Tenda de Aplicacións",

+ 2
- 0
apps/dashboard/l10n/gl.json View File

@@ -1,6 +1,8 @@
{ "translations": {
"Dashboard" : "Taboleiro",
"Dashboard app" : "Aplicación de taboleiro",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Comeza o día informado\n\nO Taboleiro de Nextcloud é o teu punto de partida do día, dándoche unha visión xeral das túas próximas citas, correos electrónicos urxentes, mensaxes de chat, tickets entrantes, chíos máis recentes e moito máis. Os usuarios poden engadir os widgets que lles gustan e cambiar o fondo ao seu gusto.",
"\"{title} icon\"" : "\"icona {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar trebellos",
"Get more widgets from the App Store" : "Obtén máis widgets da Tenda de Aplicacións",

+ 2
- 0
apps/dashboard/l10n/pl.js View File

@@ -3,6 +3,8 @@ OC.L10N.register(
{
"Dashboard" : "Pulpit",
"Dashboard app" : "Aplikacja Pulpit",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Rozpocznij dzień poinformowany\n\nPulpit nawigacyjny Nextcloud to Twój punkt wyjścia w ciągu dnia, dający przegląd nadchodzących spotkań, pilnych e-maili, wiadomości na czacie, przychodzących zgłoszeń, najnowszych tweetów i wiele więcej! Użytkownicy mogą dodawać widżety, które im się podobają i zmieniać tło według własnych upodobań.",
"\"{title} icon\"" : "\"{title} ikona\"",
"Customize" : "Dostosuj",
"Edit widgets" : "Edytuj widżety",
"Get more widgets from the App Store" : "Pobierz więcej widżetów z Nextcloud App Store",

+ 2
- 0
apps/dashboard/l10n/pl.json View File

@@ -1,6 +1,8 @@
{ "translations": {
"Dashboard" : "Pulpit",
"Dashboard app" : "Aplikacja Pulpit",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Rozpocznij dzień poinformowany\n\nPulpit nawigacyjny Nextcloud to Twój punkt wyjścia w ciągu dnia, dający przegląd nadchodzących spotkań, pilnych e-maili, wiadomości na czacie, przychodzących zgłoszeń, najnowszych tweetów i wiele więcej! Użytkownicy mogą dodawać widżety, które im się podobają i zmieniać tło według własnych upodobań.",
"\"{title} icon\"" : "\"{title} ikona\"",
"Customize" : "Dostosuj",
"Edit widgets" : "Edytuj widżety",
"Get more widgets from the App Store" : "Pobierz więcej widżetów z Nextcloud App Store",

+ 1
- 0
apps/dashboard/l10n/sl.js View File

@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Dashboard" : "Nadzorna plošča",
"Dashboard app" : "Program Nadzorna plošča",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Začnite dan s pravimi informacijami\n\nNadzorna plošča Nextcloud je prva točka dneva, ki vam omogoča\npregled prihajajočih sestankov, nujnih elektronskih sporočil in sporočil klepeta, podrobnosti o prejetih nalogah, najnovejših čivkih in še veliko več! Vsak uporabnik lahko doda gradnike in spreminja ozadje po svojih željah.",
"Customize" : "Prilagodi",
"Edit widgets" : "Izbor gradnikov",
"Get more widgets from the App Store" : "Pridobi več gradnikov s spletišča App Store",

+ 1
- 0
apps/dashboard/l10n/sl.json View File

@@ -1,6 +1,7 @@
{ "translations": {
"Dashboard" : "Nadzorna plošča",
"Dashboard app" : "Program Nadzorna plošča",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Začnite dan s pravimi informacijami\n\nNadzorna plošča Nextcloud je prva točka dneva, ki vam omogoča\npregled prihajajočih sestankov, nujnih elektronskih sporočil in sporočil klepeta, podrobnosti o prejetih nalogah, najnovejših čivkih in še veliko več! Vsak uporabnik lahko doda gradnike in spreminja ozadje po svojih željah.",
"Customize" : "Prilagodi",
"Edit widgets" : "Izbor gradnikov",
"Get more widgets from the App Store" : "Pridobi več gradnikov s spletišča App Store",

+ 5
- 5
apps/dashboard/src/DashboardApp.vue View File

@@ -2,11 +2,11 @@
<div id="app-dashboard">
<h2>{{ greeting.text }}</h2>
<ul class="statuses">
<div v-for="status in sortedRegisteredStatus"
<li v-for="status in sortedRegisteredStatus"
:id="'status-' + status"
:key="status">
<div :ref="'status-' + status" />
</div>
</li>
</ul>

<Draggable v-model="layout"
@@ -51,7 +51,7 @@
:checked="isStatusActive(status)"
@input="updateStatusCheckbox(status, $event.target.checked)">
<label :for="'status-checkbox-' + status">
<div :class="statusInfo[status].icon" role="img" />
<div :class="statusInfo[status].icon" aria-hidden="true" role="img" />
{{ statusInfo[status].text }}
</label>
</li>
@@ -69,7 +69,7 @@
:checked="isActive(panel)"
@input="updateCheckbox(panel, $event.target.checked)">
<label :for="'panel-checkbox-' + panel.id" :class="{ draggable: isActive(panel) }">
<div :class="panel.iconClass" role="img" />
<div :class="panel.iconClass" aria-hidden="true" role="img" />
{{ panel.title }}
</label>
</li>
@@ -627,7 +627,7 @@ export default {
flex-wrap: wrap;
margin-bottom: 36px;

& > div {
& > li {
margin: 8px;
}
}

+ 1
- 0
apps/dav/img/calendar.svg View File

@@ -0,0 +1 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 16 16"><path fill="#000" d="m4 1c-0.5 0-1 0.5-1 1v2c0 0.5 0.5 1 1 1s1-0.5 1-1v-2c0-0.5-0.5-1-1-1zm8 0c-0.5 0-1 0.5-1 1v2c0 0.5 0.5 1 1 1s1-0.5 1-1v-2c0-0.5-0.5-1-1-1zm-6.5 2v1c0 0.831-0.5 1.5-1.5 1.5s-1.5-0.5-1.5-1.5v-0.9375c-0.8841 0.227-1.5 1.0247-1.5 1.9375v8c0 1.108 0.892 2 2 2h10c1.108 0 2-0.892 2-2v-8c0-0.9128-0.61588-1.7105-1.5-1.9375v0.9375c0 0.831-0.5 1.5-1.5 1.5s-1.5-0.5-1.5-1.5v-1zm7.5 5v5h-10v-5z"/></svg>

+ 1
- 0
apps/dav/l10n/bg.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "<strong>задача</strong>от календар беше променена",
"Contact birthdays" : "Рождени дни на контакти",
"Death of %s" : "Смърт на %s",
"Untitled calendar" : "Нов календар",
"Calendar:" : "Календар:",
"Date:" : "Дата:",
"Where:" : "Къде:",

+ 1
- 0
apps/dav/l10n/bg.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "<strong>задача</strong>от календар беше променена",
"Contact birthdays" : "Рождени дни на контакти",
"Death of %s" : "Смърт на %s",
"Untitled calendar" : "Нов календар",
"Calendar:" : "Календар:",
"Date:" : "Дата:",
"Where:" : "Къде:",

+ 3
- 0
apps/dav/l10n/ca.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "S'ha modificat una <strong>tasca pendent</strong> del calendari",
"Contact birthdays" : "Aniversaris dels contactes",
"Death of %s" : "Mort de %s",
"Untitled calendar" : "Calendari sense títol",
"Calendar:" : "Calendari:",
"Date:" : "Data:",
"Where:" : "On:",
@@ -75,6 +76,8 @@ OC.L10N.register(
"\"%1$s\" has been canceled" : "\"%1$s\" s'ha cancel·lat",
"Re: %1$s" : "Re: %1$s",
"%1$s has responded to your invitation" : "%1$s ha respost a la teva invitació",
"Invitation updated: %1$s" : "Invitació actualitzada: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s ha actualitzat l'esdeveniment \"%2$s\"",
"Invitation: %1$s" : "Invitació: %1$s",
"%1$s would like to invite you to \"%2$s\"" : "%1$s vol convidar-vos a \"%2$s\"",
"Organizer:" : "Organitzador:",

+ 3
- 0
apps/dav/l10n/ca.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "S'ha modificat una <strong>tasca pendent</strong> del calendari",
"Contact birthdays" : "Aniversaris dels contactes",
"Death of %s" : "Mort de %s",
"Untitled calendar" : "Calendari sense títol",
"Calendar:" : "Calendari:",
"Date:" : "Data:",
"Where:" : "On:",
@@ -73,6 +74,8 @@
"\"%1$s\" has been canceled" : "\"%1$s\" s'ha cancel·lat",
"Re: %1$s" : "Re: %1$s",
"%1$s has responded to your invitation" : "%1$s ha respost a la teva invitació",
"Invitation updated: %1$s" : "Invitació actualitzada: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s ha actualitzat l'esdeveniment \"%2$s\"",
"Invitation: %1$s" : "Invitació: %1$s",
"%1$s would like to invite you to \"%2$s\"" : "%1$s vol convidar-vos a \"%2$s\"",
"Organizer:" : "Organitzador:",

+ 1
- 0
apps/dav/l10n/cs.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Kalendář <strong>úkoly</strong> byl upraven",
"Contact birthdays" : "Narozeniny kontaktů",
"Death of %s" : "Datum úmrtí %s",
"Untitled calendar" : "Nepojmenovaný kalendář",
"Calendar:" : "Kalendář:",
"Date:" : "Datum:",
"Where:" : "Kde:",

+ 1
- 0
apps/dav/l10n/cs.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Kalendář <strong>úkoly</strong> byl upraven",
"Contact birthdays" : "Narozeniny kontaktů",
"Death of %s" : "Datum úmrtí %s",
"Untitled calendar" : "Nepojmenovaný kalendář",
"Calendar:" : "Kalendář:",
"Date:" : "Datum:",
"Where:" : "Kde:",

+ 1
- 0
apps/dav/l10n/da.js View File

@@ -39,6 +39,7 @@ OC.L10N.register(
"A calendar <strong>event</strong> was modified" : "En kalender <strong>begivenhed</strong> er blevet ændret",
"Contact birthdays" : "Kontakt fødselsdag",
"Death of %s" : "Død af%s",
"Untitled calendar" : "Unanvngiven kalender",
"Calendar:" : "Kalender:",
"Date:" : "Dato:",
"Where:" : "Hvor:",

+ 1
- 0
apps/dav/l10n/da.json View File

@@ -37,6 +37,7 @@
"A calendar <strong>event</strong> was modified" : "En kalender <strong>begivenhed</strong> er blevet ændret",
"Contact birthdays" : "Kontakt fødselsdag",
"Death of %s" : "Død af%s",
"Untitled calendar" : "Unanvngiven kalender",
"Calendar:" : "Kalender:",
"Date:" : "Dato:",
"Where:" : "Hvor:",

+ 4
- 0
apps/dav/l10n/de.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde geändert",
"Contact birthdays" : "Geburtstage von Kontakten",
"Death of %s" : "Todestag von %s",
"Untitled calendar" : "Unbenannter Kalender",
"Calendar:" : "Kalender:",
"Date:" : "Datum:",
"Where:" : "Wo:",
@@ -74,6 +75,9 @@ OC.L10N.register(
"Cancelled: %1$s" : "Abgesagt: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" wurde abgebrochen.",
"Re: %1$s" : "Re: %1$s",
"%1$s has accepted your invitation" : "%1$s hat deine Einladung angenommen.",
"%1$s has tentatively accepted your invitation" : "%1$s hat deine Einladung vorläufig angenommen.",
"%1$s has declined your invitation" : "%1$s hat deine Einladung abgelehnt.",
"%1$s has responded to your invitation" : "%1$s hat auf deine Einladung geantwortet.",
"Invitation updated: %1$s" : "Einladung aktualisiert: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s hat die Veranstaltung \"%2$s\" aktualisiert",

+ 4
- 0
apps/dav/l10n/de.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde geändert",
"Contact birthdays" : "Geburtstage von Kontakten",
"Death of %s" : "Todestag von %s",
"Untitled calendar" : "Unbenannter Kalender",
"Calendar:" : "Kalender:",
"Date:" : "Datum:",
"Where:" : "Wo:",
@@ -72,6 +73,9 @@
"Cancelled: %1$s" : "Abgesagt: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" wurde abgebrochen.",
"Re: %1$s" : "Re: %1$s",
"%1$s has accepted your invitation" : "%1$s hat deine Einladung angenommen.",
"%1$s has tentatively accepted your invitation" : "%1$s hat deine Einladung vorläufig angenommen.",
"%1$s has declined your invitation" : "%1$s hat deine Einladung abgelehnt.",
"%1$s has responded to your invitation" : "%1$s hat auf deine Einladung geantwortet.",
"Invitation updated: %1$s" : "Einladung aktualisiert: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s hat die Veranstaltung \"%2$s\" aktualisiert",

+ 4
- 0
apps/dav/l10n/de_DE.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet",
"Contact birthdays" : "Geburtstage von Kontakten",
"Death of %s" : "Todestag von %s",
"Untitled calendar" : "Unbenannter Kalender",
"Calendar:" : "Kalender:",
"Date:" : "Datum:",
"Where:" : "Wo:",
@@ -74,6 +75,9 @@ OC.L10N.register(
"Cancelled: %1$s" : "Abgesagt: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s“ wurde abgesagt.",
"Re: %1$s" : "Re: %1$s",
"%1$s has accepted your invitation" : "%1$s hat Ihre Einladung angenommen",
"%1$s has tentatively accepted your invitation" : "%1$s hat Ihre Einladung vorläufig angenommen",
"%1$s has declined your invitation" : "%1$s hat Ihre Einladung abgelehnt",
"%1$s has responded to your invitation" : "%1$s hat auf Ihre Einladung geantwortet",
"Invitation updated: %1$s" : "Einladung aktualisiert: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s hat die Veranstaltung \"%2$s\" aktualisiert",

+ 4
- 0
apps/dav/l10n/de_DE.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet",
"Contact birthdays" : "Geburtstage von Kontakten",
"Death of %s" : "Todestag von %s",
"Untitled calendar" : "Unbenannter Kalender",
"Calendar:" : "Kalender:",
"Date:" : "Datum:",
"Where:" : "Wo:",
@@ -72,6 +73,9 @@
"Cancelled: %1$s" : "Abgesagt: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s“ wurde abgesagt.",
"Re: %1$s" : "Re: %1$s",
"%1$s has accepted your invitation" : "%1$s hat Ihre Einladung angenommen",
"%1$s has tentatively accepted your invitation" : "%1$s hat Ihre Einladung vorläufig angenommen",
"%1$s has declined your invitation" : "%1$s hat Ihre Einladung abgelehnt",
"%1$s has responded to your invitation" : "%1$s hat auf Ihre Einladung geantwortet",
"Invitation updated: %1$s" : "Einladung aktualisiert: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s hat die Veranstaltung \"%2$s\" aktualisiert",

+ 1
- 0
apps/dav/l10n/el.js View File

@@ -37,6 +37,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Τροποποιήθηκε μια <strong>εκκρεμότητα</strong> ημερολογίου",
"Contact birthdays" : "Γενέθλια επαφών",
"Death of %s" : "Θάνατος του %s",
"Untitled calendar" : "Ημερολόγιο χωρίς τίτλο",
"Calendar:" : "Ημερολόγιο:",
"Date:" : "Ημερομηνία:",
"Where:" : "Που:",

+ 1
- 0
apps/dav/l10n/el.json View File

@@ -35,6 +35,7 @@
"A calendar <strong>to-do</strong> was modified" : "Τροποποιήθηκε μια <strong>εκκρεμότητα</strong> ημερολογίου",
"Contact birthdays" : "Γενέθλια επαφών",
"Death of %s" : "Θάνατος του %s",
"Untitled calendar" : "Ημερολόγιο χωρίς τίτλο",
"Calendar:" : "Ημερολόγιο:",
"Date:" : "Ημερομηνία:",
"Where:" : "Που:",

+ 1
- 0
apps/dav/l10n/en_GB.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "A calendar <strong>to-do</strong> was modified",
"Contact birthdays" : "Contact birthdays",
"Death of %s" : "Death of %s",
"Untitled calendar" : "Untitled calendar",
"Calendar:" : "Calendar:",
"Date:" : "Date:",
"Where:" : "Where:",

+ 1
- 0
apps/dav/l10n/en_GB.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "A calendar <strong>to-do</strong> was modified",
"Contact birthdays" : "Contact birthdays",
"Death of %s" : "Death of %s",
"Untitled calendar" : "Untitled calendar",
"Calendar:" : "Calendar:",
"Date:" : "Date:",
"Where:" : "Where:",

+ 1
- 0
apps/dav/l10n/es.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Se ha modificado una <strong>tarea</strong> de calendario",
"Contact birthdays" : "Cumpleaños del contacto",
"Death of %s" : "Muerte de %s",
"Untitled calendar" : "Calendario sin título",
"Calendar:" : "Calendario:",
"Date:" : "Fecha:",
"Where:" : "Dónde:",

+ 1
- 0
apps/dav/l10n/es.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Se ha modificado una <strong>tarea</strong> de calendario",
"Contact birthdays" : "Cumpleaños del contacto",
"Death of %s" : "Muerte de %s",
"Untitled calendar" : "Calendario sin título",
"Calendar:" : "Calendario:",
"Date:" : "Fecha:",
"Where:" : "Dónde:",

+ 1
- 0
apps/dav/l10n/eu.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Egutegi baten <strong>egiteko</strong> bat aldatu da",
"Contact birthdays" : "Kontaktuen urtebetetzeak",
"Death of %s" : "%s(r)en heriotza",
"Untitled calendar" : "Izenik gabeko egutegia",
"Calendar:" : "Egutegia:",
"Date:" : "Data:",
"Where:" : "Non:",

+ 1
- 0
apps/dav/l10n/eu.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Egutegi baten <strong>egiteko</strong> bat aldatu da",
"Contact birthdays" : "Kontaktuen urtebetetzeak",
"Death of %s" : "%s(r)en heriotza",
"Untitled calendar" : "Izenik gabeko egutegia",
"Calendar:" : "Egutegia:",
"Date:" : "Data:",
"Where:" : "Non:",

+ 1
- 0
apps/dav/l10n/fi.js View File

@@ -38,6 +38,7 @@ OC.L10N.register(
"A calendar <strong>event</strong> was modified" : "Kalenterin <strong>tapahtumaa</strong> on muokattu",
"Contact birthdays" : "Yhteystietojen syntymäpäivät",
"Death of %s" : "%s kuolema",
"Untitled calendar" : "Nimetön kalenteri",
"Calendar:" : "Kalenteri:",
"Date:" : "Päiväys:",
"Where:" : "Missä:",

+ 1
- 0
apps/dav/l10n/fi.json View File

@@ -36,6 +36,7 @@
"A calendar <strong>event</strong> was modified" : "Kalenterin <strong>tapahtumaa</strong> on muokattu",
"Contact birthdays" : "Yhteystietojen syntymäpäivät",
"Death of %s" : "%s kuolema",
"Untitled calendar" : "Nimetön kalenteri",
"Calendar:" : "Kalenteri:",
"Date:" : "Päiväys:",
"Where:" : "Missä:",

+ 4
- 0
apps/dav/l10n/fr.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Un calendrier <strong>de tâches</strong> a été modifié",
"Contact birthdays" : "Anniversaires des contacts",
"Death of %s" : "Mort de %s",
"Untitled calendar" : "Calendrier sans titre",
"Calendar:" : "Agenda:",
"Date:" : "Date:",
"Where:" : "Où :",
@@ -74,6 +75,9 @@ OC.L10N.register(
"Cancelled: %1$s" : "Annulé : %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" a été annulé(e)",
"Re: %1$s" : "Re : %1$s",
"%1$s has accepted your invitation" : "%1$s a accepté votre invitation",
"%1$s has tentatively accepted your invitation" : "%1$s a provisoirement accepté votre invitation",
"%1$s has declined your invitation" : "%1$s a décliné votre invitation",
"%1$s has responded to your invitation" : "%1$s a répondu à votre invitation",
"Invitation updated: %1$s" : "Invitation mise à jour : %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s a mis à jour l'évènement %2$s",

+ 4
- 0
apps/dav/l10n/fr.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Un calendrier <strong>de tâches</strong> a été modifié",
"Contact birthdays" : "Anniversaires des contacts",
"Death of %s" : "Mort de %s",
"Untitled calendar" : "Calendrier sans titre",
"Calendar:" : "Agenda:",
"Date:" : "Date:",
"Where:" : "Où :",
@@ -72,6 +73,9 @@
"Cancelled: %1$s" : "Annulé : %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" a été annulé(e)",
"Re: %1$s" : "Re : %1$s",
"%1$s has accepted your invitation" : "%1$s a accepté votre invitation",
"%1$s has tentatively accepted your invitation" : "%1$s a provisoirement accepté votre invitation",
"%1$s has declined your invitation" : "%1$s a décliné votre invitation",
"%1$s has responded to your invitation" : "%1$s a répondu à votre invitation",
"Invitation updated: %1$s" : "Invitation mise à jour : %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s a mis à jour l'évènement %2$s",

+ 3
- 0
apps/dav/l10n/gl.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Modificouse unha <strong>tarefa</strong> do calendario",
"Contact birthdays" : "Aniversario do contacto",
"Death of %s" : "Falecemento de %s",
"Untitled calendar" : "Calendario sen título",
"Calendar:" : "Calendario:",
"Date:" : "Data:",
"Where:" : "Onde:",
@@ -75,6 +76,8 @@ OC.L10N.register(
"\"%1$s\" has been canceled" : "\"%1$s\" cancelouse",
"Re: %1$s" : "Re: %1$s",
"%1$s has responded to your invitation" : "%1$s respondeu á túa invitación",
"Invitation updated: %1$s" : "Invitación actualizada: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s actualizou o evento \"%2$s\"",
"Invitation: %1$s" : "Invitación: %1$s",
"%1$s would like to invite you to \"%2$s\"" : "%1$s quere invitarte a \"%2$s\"",
"Organizer:" : "Organizador:",

+ 3
- 0
apps/dav/l10n/gl.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Modificouse unha <strong>tarefa</strong> do calendario",
"Contact birthdays" : "Aniversario do contacto",
"Death of %s" : "Falecemento de %s",
"Untitled calendar" : "Calendario sen título",
"Calendar:" : "Calendario:",
"Date:" : "Data:",
"Where:" : "Onde:",
@@ -73,6 +74,8 @@
"\"%1$s\" has been canceled" : "\"%1$s\" cancelouse",
"Re: %1$s" : "Re: %1$s",
"%1$s has responded to your invitation" : "%1$s respondeu á túa invitación",
"Invitation updated: %1$s" : "Invitación actualizada: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s actualizou o evento \"%2$s\"",
"Invitation: %1$s" : "Invitación: %1$s",
"%1$s would like to invite you to \"%2$s\"" : "%1$s quere invitarte a \"%2$s\"",
"Organizer:" : "Organizador:",

+ 1
- 0
apps/dav/l10n/he.js View File

@@ -34,6 +34,7 @@ OC.L10N.register(
"A calendar <strong>event</strong> was modified" : "<strong>אירוע</strong> ביומן נערך",
"Contact birthdays" : "ימי הולדת של אנשי קשר",
"Death of %s" : "הפטירה של %s",
"Untitled calendar" : "לוח שנה ללא כותרת",
"Calendar:" : "לוח שנה:",
"Date:" : "תאריך:",
"Where:" : "איפה:",

+ 1
- 0
apps/dav/l10n/he.json View File

@@ -32,6 +32,7 @@
"A calendar <strong>event</strong> was modified" : "<strong>אירוע</strong> ביומן נערך",
"Contact birthdays" : "ימי הולדת של אנשי קשר",
"Death of %s" : "הפטירה של %s",
"Untitled calendar" : "לוח שנה ללא כותרת",
"Calendar:" : "לוח שנה:",
"Date:" : "תאריך:",
"Where:" : "איפה:",

+ 1
- 0
apps/dav/l10n/hr.js View File

@@ -39,6 +39,7 @@ OC.L10N.register(
"A calendar <strong>event</strong> was modified" : "Izmijenjen je <strong>događaj</strong> u kalendaru",
"Contact birthdays" : "Rođendani kontakata",
"Death of %s" : "Smrt %s",
"Untitled calendar" : "Kalendar bez naslova",
"Calendar:" : "Kalendar:",
"Date:" : "Datum:",
"Where:" : "Gdje:",

+ 1
- 0
apps/dav/l10n/hr.json View File

@@ -37,6 +37,7 @@
"A calendar <strong>event</strong> was modified" : "Izmijenjen je <strong>događaj</strong> u kalendaru",
"Contact birthdays" : "Rođendani kontakata",
"Death of %s" : "Smrt %s",
"Untitled calendar" : "Kalendar bez naslova",
"Calendar:" : "Kalendar:",
"Date:" : "Datum:",
"Where:" : "Gdje:",

+ 1
- 0
apps/dav/l10n/hu.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Egy <strong>naptárteendő</strong> megváltozott",
"Contact birthdays" : "Névjegyek születésnapjai",
"Death of %s" : "%s halála",
"Untitled calendar" : "Névtelen naptár",
"Calendar:" : "Naptár:",
"Date:" : "Dátum:",
"Where:" : "Hol:",

+ 1
- 0
apps/dav/l10n/hu.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Egy <strong>naptárteendő</strong> megváltozott",
"Contact birthdays" : "Névjegyek születésnapjai",
"Death of %s" : "%s halála",
"Untitled calendar" : "Névtelen naptár",
"Calendar:" : "Naptár:",
"Date:" : "Dátum:",
"Where:" : "Hol:",

+ 1
- 0
apps/dav/l10n/is.js View File

@@ -33,6 +33,7 @@ OC.L10N.register(
"A <strong>calendar</strong> was modified" : "<strong>Dagatali</strong> var breytt",
"A calendar <strong>event</strong> was modified" : "<strong>Atburði</strong> dagatals var breytt",
"Contact birthdays" : "Afmælisdagar tengiliðar",
"Untitled calendar" : "Ónefnt dagatal",
"Calendar:" : "Dagatal:",
"Date:" : "Dagsetning:",
"Where:" : "Hvar:",

+ 1
- 0
apps/dav/l10n/is.json View File

@@ -31,6 +31,7 @@
"A <strong>calendar</strong> was modified" : "<strong>Dagatali</strong> var breytt",
"A calendar <strong>event</strong> was modified" : "<strong>Atburði</strong> dagatals var breytt",
"Contact birthdays" : "Afmælisdagar tengiliðar",
"Untitled calendar" : "Ónefnt dagatal",
"Calendar:" : "Dagatal:",
"Date:" : "Dagsetning:",
"Where:" : "Hvar:",

+ 1
- 0
apps/dav/l10n/it.js View File

@@ -41,6 +41,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Una <strong>cosa da fare</strong> del calendario è stata modificata",
"Contact birthdays" : "Date di nascita dei contatti",
"Death of %s" : "Morte di %s",
"Untitled calendar" : "Calendario senza titolo",
"Calendar:" : "Calendario:",
"Date:" : "Data:",
"Where:" : "Dove:",

+ 1
- 0
apps/dav/l10n/it.json View File

@@ -39,6 +39,7 @@
"A calendar <strong>to-do</strong> was modified" : "Una <strong>cosa da fare</strong> del calendario è stata modificata",
"Contact birthdays" : "Date di nascita dei contatti",
"Death of %s" : "Morte di %s",
"Untitled calendar" : "Calendario senza titolo",
"Calendar:" : "Calendario:",
"Date:" : "Data:",
"Where:" : "Dove:",

+ 1
- 0
apps/dav/l10n/ja.js View File

@@ -40,6 +40,7 @@ OC.L10N.register(
"A calendar <strong>event</strong> was modified" : "カレンダーの<strong>イベント</strong>が変更されたとき",
"Contact birthdays" : "誕生日",
"Death of %s" : "%sの命日",
"Untitled calendar" : "無題のカレンダー",
"Calendar:" : "カレンダー:",
"Date:" : "日付:",
"Where:" : "場所:",

+ 1
- 0
apps/dav/l10n/ja.json View File

@@ -38,6 +38,7 @@
"A calendar <strong>event</strong> was modified" : "カレンダーの<strong>イベント</strong>が変更されたとき",
"Contact birthdays" : "誕生日",
"Death of %s" : "%sの命日",
"Untitled calendar" : "無題のカレンダー",
"Calendar:" : "カレンダー:",
"Date:" : "日付:",
"Where:" : "場所:",

+ 1
- 0
apps/dav/l10n/ko.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "달력 <strong>할 일</strong>이 수정됨",
"Contact birthdays" : "연락처에 등록된 생일",
"Death of %s" : "%s의 기일",
"Untitled calendar" : "제목없는 달력",
"Calendar:" : "달력:",
"Date:" : "날짜:",
"Where:" : "장소:",

+ 1
- 0
apps/dav/l10n/ko.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "달력 <strong>할 일</strong>이 수정됨",
"Contact birthdays" : "연락처에 등록된 생일",
"Death of %s" : "%s의 기일",
"Untitled calendar" : "제목없는 달력",
"Calendar:" : "달력:",
"Date:" : "날짜:",
"Where:" : "장소:",

+ 1
- 0
apps/dav/l10n/lt_LT.js View File

@@ -38,6 +38,7 @@ OC.L10N.register(
"A <strong>calendar</strong> was modified" : "<strong>Kalendorius</strong> buvo modifikuotas",
"A calendar <strong>event</strong> was modified" : "Kalendoriaus <strong>įvykis</strong> buvo modifikuotas",
"Contact birthdays" : "Adresatų gimtadieniai",
"Untitled calendar" : "Kalendorius be pavadinimo",
"Calendar:" : "Kalendorius:",
"Date:" : "Data:",
"Where:" : "Kur:",

+ 1
- 0
apps/dav/l10n/lt_LT.json View File

@@ -36,6 +36,7 @@
"A <strong>calendar</strong> was modified" : "<strong>Kalendorius</strong> buvo modifikuotas",
"A calendar <strong>event</strong> was modified" : "Kalendoriaus <strong>įvykis</strong> buvo modifikuotas",
"Contact birthdays" : "Adresatų gimtadieniai",
"Untitled calendar" : "Kalendorius be pavadinimo",
"Calendar:" : "Kalendorius:",
"Date:" : "Data:",
"Where:" : "Kur:",

+ 2
- 0
apps/dav/l10n/mk.js View File

@@ -54,6 +54,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Изменета е <strong>задача</strong> во календарот",
"Contact birthdays" : "Родендени на контактите",
"Death of %s" : "Смрт на %s",
"Untitled calendar" : "Неименуван календар",
"Calendar:" : "Календар:",
"Date:" : "Датум:",
"Where:" : "Каде: ",
@@ -131,6 +132,7 @@ OC.L10N.register(
"Friday" : "Петок",
"Saturday" : "Сабота",
"Sunday" : "Недела",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматско поставување на статус во \"Не вознемирувај\" недостапен за да ги занемите сите известувања.",
"Save" : "Зачувај",
"Calendar server" : "Календар сервер",
"Send invitations to attendees" : "Испрати покани на учесниците",

+ 2
- 0
apps/dav/l10n/mk.json View File

@@ -52,6 +52,7 @@
"A calendar <strong>to-do</strong> was modified" : "Изменета е <strong>задача</strong> во календарот",
"Contact birthdays" : "Родендени на контактите",
"Death of %s" : "Смрт на %s",
"Untitled calendar" : "Неименуван календар",
"Calendar:" : "Календар:",
"Date:" : "Датум:",
"Where:" : "Каде: ",
@@ -129,6 +130,7 @@
"Friday" : "Петок",
"Saturday" : "Сабота",
"Sunday" : "Недела",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматско поставување на статус во \"Не вознемирувај\" недостапен за да ги занемите сите известувања.",
"Save" : "Зачувај",
"Calendar server" : "Календар сервер",
"Send invitations to attendees" : "Испрати покани на учесниците",

+ 1
- 0
apps/dav/l10n/nb.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Ett kalender- <strong>gjøremål</strong> ble endret",
"Contact birthdays" : "Kontakters fødelsdag",
"Death of %s" : "Død av %s",
"Untitled calendar" : "Kalender uten tittel",
"Calendar:" : "Kalender:",
"Date:" : "Dato:",
"Where:" : "Hvor:",

+ 1
- 0
apps/dav/l10n/nb.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Ett kalender- <strong>gjøremål</strong> ble endret",
"Contact birthdays" : "Kontakters fødelsdag",
"Death of %s" : "Død av %s",
"Untitled calendar" : "Kalender uten tittel",
"Calendar:" : "Kalender:",
"Date:" : "Dato:",
"Where:" : "Hvor:",

+ 1
- 0
apps/dav/l10n/nl.js View File

@@ -48,6 +48,7 @@ OC.L10N.register(
"A calendar <strong>event</strong> was modified" : "Een agenda <strong>gebeurtenis</strong> is aangepast",
"Contact birthdays" : "Verjaardagen",
"Death of %s" : "Sterfdatum van %s",
"Untitled calendar" : "Naamloze calender",
"Calendar:" : "Agenda",
"Date:" : "Datum",
"Where:" : "Waar:",

+ 1
- 0
apps/dav/l10n/nl.json View File

@@ -46,6 +46,7 @@
"A calendar <strong>event</strong> was modified" : "Een agenda <strong>gebeurtenis</strong> is aangepast",
"Contact birthdays" : "Verjaardagen",
"Death of %s" : "Sterfdatum van %s",
"Untitled calendar" : "Naamloze calender",
"Calendar:" : "Agenda",
"Date:" : "Datum",
"Where:" : "Waar:",

+ 1
- 0
apps/dav/l10n/pl.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Kalendarz <strong>zadań</strong> został zmieniony",
"Contact birthdays" : "Urodziny kontaktu",
"Death of %s" : "Śmierć %s",
"Untitled calendar" : "Kalendarz bez tytułu",
"Calendar:" : "Kalendarz:",
"Date:" : "Data:",
"Where:" : "Gdzie:",

+ 1
- 0
apps/dav/l10n/pl.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Kalendarz <strong>zadań</strong> został zmieniony",
"Contact birthdays" : "Urodziny kontaktu",
"Death of %s" : "Śmierć %s",
"Untitled calendar" : "Kalendarz bez tytułu",
"Calendar:" : "Kalendarz:",
"Date:" : "Data:",
"Where:" : "Gdzie:",

+ 1
- 0
apps/dav/l10n/pt_BR.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Um calendário <strong>tarefa</strong> foi modificado",
"Contact birthdays" : "Aniversário dos contatos",
"Death of %s" : "Morte de %s",
"Untitled calendar" : "Calendário sem título",
"Calendar:" : "Calendário:",
"Date:" : "Data:",
"Where:" : "Onde:",

+ 1
- 0
apps/dav/l10n/pt_BR.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Um calendário <strong>tarefa</strong> foi modificado",
"Contact birthdays" : "Aniversário dos contatos",
"Death of %s" : "Morte de %s",
"Untitled calendar" : "Calendário sem título",
"Calendar:" : "Calendário:",
"Date:" : "Data:",
"Where:" : "Onde:",

+ 1
- 0
apps/dav/l10n/ru.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "В календаре изменена <strong>задача</strong> ",
"Contact birthdays" : "Дни рождения контакта",
"Death of %s" : "Смерть %s",
"Untitled calendar" : "Календарь без названия",
"Calendar:" : "Календарь:",
"Date:" : "Дата:",
"Where:" : "Где:",

+ 1
- 0
apps/dav/l10n/ru.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "В календаре изменена <strong>задача</strong> ",
"Contact birthdays" : "Дни рождения контакта",
"Death of %s" : "Смерть %s",
"Untitled calendar" : "Календарь без названия",
"Calendar:" : "Календарь:",
"Date:" : "Дата:",
"Where:" : "Где:",

+ 1
- 0
apps/dav/l10n/sc.js View File

@@ -39,6 +39,7 @@ OC.L10N.register(
"A calendar <strong>event</strong> was modified" : "Un'<strong>eventu</strong> de su calendàriu est istadu modificadu",
"Contact birthdays" : "Data de nàschida de is cuntatos",
"Death of %s" : "Morte de %s",
"Untitled calendar" : "Calendàriu chene tìtulu",
"Calendar:" : "Calendàriu:",
"Date:" : "Data:",
"Where:" : "Ue:",

+ 1
- 0
apps/dav/l10n/sc.json View File

@@ -37,6 +37,7 @@
"A calendar <strong>event</strong> was modified" : "Un'<strong>eventu</strong> de su calendàriu est istadu modificadu",
"Contact birthdays" : "Data de nàschida de is cuntatos",
"Death of %s" : "Morte de %s",
"Untitled calendar" : "Calendàriu chene tìtulu",
"Calendar:" : "Calendàriu:",
"Date:" : "Data:",
"Where:" : "Ue:",

+ 1
- 0
apps/dav/l10n/sk.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Kalendár <strong>úloh</strong> bol upravený",
"Contact birthdays" : "Narodeniny kontaktu",
"Death of %s" : "Dátum úmrtia %s",
"Untitled calendar" : "Kalendár bez názvu",
"Calendar:" : "Kalendár:",
"Date:" : "Dátum:",
"Where:" : "Kde:",

+ 1
- 0
apps/dav/l10n/sk.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Kalendár <strong>úloh</strong> bol upravený",
"Contact birthdays" : "Narodeniny kontaktu",
"Death of %s" : "Dátum úmrtia %s",
"Untitled calendar" : "Kalendár bez názvu",
"Calendar:" : "Kalendár:",
"Date:" : "Dátum:",
"Where:" : "Kde:",

+ 1
- 0
apps/dav/l10n/sl.js View File

@@ -42,6 +42,7 @@ OC.L10N.register(
"A calendar <strong>event</strong> was modified" : "Spremenjen je <strong>dogodek</strong> v koledarju",
"Contact birthdays" : "Obletnice stikov",
"Death of %s" : "%s (obletnica smrti)",
"Untitled calendar" : "Neimenovan koledar",
"Calendar:" : "Koledar:",
"Date:" : "Datum:",
"Where:" : "Kje:",

+ 1
- 0
apps/dav/l10n/sl.json View File

@@ -40,6 +40,7 @@
"A calendar <strong>event</strong> was modified" : "Spremenjen je <strong>dogodek</strong> v koledarju",
"Contact birthdays" : "Obletnice stikov",
"Death of %s" : "%s (obletnica smrti)",
"Untitled calendar" : "Neimenovan koledar",
"Calendar:" : "Koledar:",
"Date:" : "Datum:",
"Where:" : "Kje:",

+ 1
- 0
apps/dav/l10n/sr.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Календар <strong>обавеза</strong> је измењен",
"Contact birthdays" : "Рођендани контаката",
"Death of %s" : " %s смрт",
"Untitled calendar" : "Неименовани календар",
"Calendar:" : "Календар:",
"Date:" : "Датум:",
"Where:" : "Место:",

+ 1
- 0
apps/dav/l10n/sr.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "Календар <strong>обавеза</strong> је измењен",
"Contact birthdays" : "Рођендани контаката",
"Death of %s" : " %s смрт",
"Untitled calendar" : "Неименовани календар",
"Calendar:" : "Календар:",
"Date:" : "Датум:",
"Where:" : "Место:",

+ 4
- 0
apps/dav/l10n/sv.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "En kalender <strong>uppgift</strong> modifierades",
"Contact birthdays" : "Födelsedagar",
"Death of %s" : "Död av %s",
"Untitled calendar" : "Namnlös kalender",
"Calendar:" : "Kalender:",
"Date:" : "Datum:",
"Where:" : "Var:",
@@ -74,6 +75,9 @@ OC.L10N.register(
"Cancelled: %1$s" : "Avbruten: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" har avbrutits",
"Re: %1$s" : "Sv: %1$s",
"%1$s has accepted your invitation" : "%1$s har accepterat din inbjudan",
"%1$s has tentatively accepted your invitation" : "%1$s har preliminärt accepterat din inbjudan",
"%1$s has declined your invitation" : "%1$s har tackat nej till din inbjudan",
"%1$s has responded to your invitation" : "%1$s har svarat på din inbjudan",
"Invitation updated: %1$s" : "Inbjudan uppdaterad: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s uppdaterade händelse \"%2$s\"",

+ 4
- 0
apps/dav/l10n/sv.json View File

@@ -53,6 +53,7 @@
"A calendar <strong>to-do</strong> was modified" : "En kalender <strong>uppgift</strong> modifierades",
"Contact birthdays" : "Födelsedagar",
"Death of %s" : "Död av %s",
"Untitled calendar" : "Namnlös kalender",
"Calendar:" : "Kalender:",
"Date:" : "Datum:",
"Where:" : "Var:",
@@ -72,6 +73,9 @@
"Cancelled: %1$s" : "Avbruten: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" har avbrutits",
"Re: %1$s" : "Sv: %1$s",
"%1$s has accepted your invitation" : "%1$s har accepterat din inbjudan",
"%1$s has tentatively accepted your invitation" : "%1$s har preliminärt accepterat din inbjudan",
"%1$s has declined your invitation" : "%1$s har tackat nej till din inbjudan",
"%1$s has responded to your invitation" : "%1$s har svarat på din inbjudan",
"Invitation updated: %1$s" : "Inbjudan uppdaterad: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s uppdaterade händelse \"%2$s\"",

+ 7
- 3
apps/dav/l10n/tr.js View File

@@ -55,6 +55,7 @@ OC.L10N.register(
"A calendar <strong>to-do</strong> was modified" : "Bir takvim <strong>yapılacak işi</strong> düzenlendi",
"Contact birthdays" : "Kişi doğum günleri",
"Death of %s" : "%s ölümü",
"Untitled calendar" : "Adlandırılmamış takvim",
"Calendar:" : "Takvim:",
"Date:" : "Tarih:",
"Where:" : "Yer:",
@@ -74,6 +75,9 @@ OC.L10N.register(
"Cancelled: %1$s" : "İptal edildi: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" iptal edildi",
"Re: %1$s" : "Ynt: %1$s",
"%1$s has accepted your invitation" : "%1$s çağrınızı kabul etti",
"%1$s has tentatively accepted your invitation" : "%1$s çağrınızı belirsiz olarak kabul etti",
"%1$s has declined your invitation" : "%1$s çağrınızı reddetti.",
"%1$s has responded to your invitation" : "%1$s çağrınızı yanıtladı",
"Invitation updated: %1$s" : "Çağrı güncellendi: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s, \"%2$s\" etkinliğini güncelledi",
@@ -113,7 +117,7 @@ OC.L10N.register(
"You deleted contact {card} from address book {addressbook}" : "{addressbook} adres defterinden {card} kişi kartını sildiniz",
"{actor} updated contact {card} in address book {addressbook}" : "{actor}, {addressbook} adres defterindeki {card} kişi kartını güncelledi",
"You updated contact {card} in address book {addressbook}" : "{addressbook} adres defterindeki {card} kişi kartını güncellediniz",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Bir <strong>kişi</strong> ya da <strong>adres defteri</strong> değiştirildi",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Bir <strong>kişi</strong> ya da <strong>adres defteri</strong> değiştirildiğinde",
"File is not updatable: %1$s" : "Dosya güncellenebilir değil: %1$s",
"Could not write to final file, canceled by hook" : "Sonuç dosyasına yazılamadı, bağlantı tarafından iptal edildi",
"Could not write file contents" : "Dosya içerikleri yazılamadı",
@@ -147,7 +151,7 @@ OC.L10N.register(
"Contacts and groups" : "Kişiler ve gruplar",
"WebDAV" : "WebDAV",
"WebDAV endpoint" : "WebDAV bağlantı noktası",
"Availability" : "Kullanılabilirlik",
"Availability" : "Uygunluk",
"If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Çalışma saatlerinizi ayarlarsanız, diğer kullanıcılar bir toplantı ayarladıklarında ofis dışında olduğunuzu görürler.",
"Time zone:" : "Saat dilimi:",
"to" : "ile",
@@ -167,7 +171,7 @@ OC.L10N.register(
"Saved availability" : "Uygunluk kaydedildi",
"Failed to save availability" : "Uygunluk kaydedilemedi",
"Calendar server" : "Takvim sunucusu",
"Send invitations to attendees" : "Katılımcılara çağrıları gönder",
"Send invitations to attendees" : "Katılımcılara çağrılar gönderilsin",
"Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun",
"Birthday calendars will be generated by a background job." : "Bu seçenek etkinleştirildiğinde, doğum günü takvimi arka plan görevi olarak oluşturulur.",
"Hence they will not be available immediately after enabling but will show up after some time." : "Etkinleştirildikten hemen sonra görüntülenmez, bir süre sonra görüntülenir.",

+ 0
- 0
apps/dav/l10n/tr.json View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save