Compare commits

..

5 Commits

Author SHA1 Message Date
Marcel Klehr 9eff3be693 fix(settings): Improve TaskProcessingPickupSpeed setup check
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 14:06:31 +02:00
Marcel Klehr aa296f5f64 fix(TaskProcessing): Update autoloaders
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 13:23:50 +02:00
Marcel Klehr 7d2a1568e8 fix(TaskProcessing): Update openapi descriptions for user-facing error messages
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 13:19:47 +02:00
Marcel Klehr aaadbdf765 test(TaskProcessing): Add test for user-facing error messages
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 13:16:19 +02:00
Marcel Klehr 1152dcc3ea feat(TaskProcessing): user-facing error messages
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 12:39:02 +02:00
2997 changed files with 58010 additions and 108556 deletions
+44 -46
View File
@@ -4,35 +4,33 @@ ARG DEBIAN_FRONTEND=noninteractive
# PHP
RUN apt-get update -y && \
apt install -y apache2 vim software-properties-common sudo nano gnupg2 wget curl git \
lsb-release ca-certificates apt-transport-https && \
add-apt-repository ppa:ondrej/php -y && \
apt-get update -y
apt install -y apache2 vim software-properties-common sudo nano gnupg2
RUN apt-get install --no-install-recommends -y \
php8.4 \
php8.4-common \
php8.4-gd \
php8.4-zip \
php8.4-curl \
php8.4-xml \
php8.4-xmlrpc \
php8.4-mbstring \
php8.4-sqlite \
php8.4-xdebug \
php8.4-pgsql \
php8.4-intl \
php8.4-imagick \
php8.4-gmp \
php8.4-apcu \
php8.4-bcmath \
php8.4-redis \
php8.4-soap \
php8.4-imap \
php8.4-opcache \
php8.4-cli \
php8.4-dev \
php8.3 \
php8.3-common \
php8.3-gd \
php8.3-zip \
php8.3-curl \
php8.3-xml \
php8.3-xmlrpc \
php8.3-mbstring \
php8.3-sqlite \
php8.3-xdebug \
php8.3-pgsql \
php8.3-intl \
php8.3-imagick \
php8.3-gmp \
php8.3-apcu \
php8.3-bcmath \
php8.3-redis \
php8.3-soap \
php8.3-imap \
php8.3-opcache \
php8.3-cli \
php8.3-dev \
libmagickcore-6.q16-7-extra \
curl \
lsof \
make \
unzip
@@ -44,39 +42,39 @@ RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \
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/8.4/cli/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/8.4/cli/conf.d/20-xdebug.ini && \
echo "apc.enable_cli=1" >> /etc/php/8.4/cli/conf.d/20-apcu.ini
RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.3/cli/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/8.3/cli/conf.d/20-xdebug.ini && \
echo "apc.enable_cli=1" >> /etc/php/8.3/cli/conf.d/20-apcu.ini
# Autostart XDebug for apache
RUN { \
echo "xdebug.mode=debug"; \
echo "xdebug.start_with_request=yes"; \
} >> /etc/php/8.4/apache2/conf.d/20-xdebug.ini
} >> /etc/php/8.3/apache2/conf.d/20-xdebug.ini
# Increase PHP memory limit to 512mb
RUN sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/8.4/apache2/php.ini
RUN sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/8.3/apache2/php.ini
# Docker CLI only (for controlling host Docker via socket)
RUN install -m 0755 -d /etc/apt/keyrings && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
chmod a+r /etc/apt/keyrings/docker.asc && \
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null && \
# Docker
RUN apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
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" && \
apt-get update -y && \
apt-get install -y docker-ce-cli && \
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
# Delete any existing user/group with UID/GID 1000 first
RUN (getent passwd 1000 && userdel -r $(getent passwd 1000 | cut -d: -f1)) || true && \
(getent group 1000 && groupdel $(getent group 1000 | cut -d: -f1)) || true && \
groupadd -g 1000 ${APACHE_RUN_GROUP} && \
useradd -u 1000 -g 1000 -ms /bin/bash ${APACHE_RUN_USER} && \
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" && \
@@ -86,6 +84,6 @@ 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 22'
RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 16'
WORKDIR /var/www/html
+1
View File
@@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
version: '3'
services:
nextclouddev:
build: .
+1 -6
View File
@@ -5,9 +5,4 @@
#
# Set git safe.directory
git config --global --add safe.directory /var/www/html
git config --global --add safe.directory /var/www/html/3rdparty
# Ensure devcontainer user has access to docker socket
if [ -S /var/run/docker.sock ]; then
sudo chmod 666 /var/run/docker.sock
fi
git config --global --add safe.directory /var/www/html/3rdparty
+11 -13
View File
@@ -15,8 +15,6 @@
**/js @nextcloud/server-frontend
**/src @nextcloud/server-frontend
*.js @nextcloud/server-frontend
*.cjs @nextcloud/server-frontend
*.mjs @nextcloud/server-frontend
*.ts @nextcloud/server-frontend
# dependency management
@@ -31,9 +29,9 @@ package-lock.json @nextcloud/server-dependabot
/apps/contactsinteraction/lib @kesselb @SebastianKrupinski
/apps/contactsinteraction/tests @kesselb @SebastianKrupinski
/apps/dashboard/appinfo/info.xml @julien-nc @juliusknorr
/apps/dav/lib/CalDAV @ChristophWurst @SebastianKrupinski @tcitworld
/apps/dav/lib/CalDAV @st3iny @SebastianKrupinski @tcitworld
/apps/dav/lib/CardDAV @hamza221 @SebastianKrupinski
/apps/dav/tests/unit/CalDAV @ChristophWurst @SebastianKrupinski @tcitworld
/apps/dav/tests/unit/CalDAV @st3iny @SebastianKrupinski @tcitworld
/apps/dav/tests/unit/CardDAV @hamza221 @SebastianKrupinski
/apps/encryption/appinfo/info.xml @come-nc @icewind1991
/apps/federatedfilesharing/appinfo/info.xml @icewind1991 @danxuliu
@@ -50,7 +48,7 @@ package-lock.json @nextcloud/server-dependabot
/apps/sharebymail/appinfo/info.xml @Altahrim @skjnldsv
/apps/systemtags/appinfo/info.xml @Antreesy @marcelklehr
/apps/theming/appinfo/info.xml @skjnldsv @juliusknorr
/apps/twofactor_backupcodes/appinfo/info.xml @miaulalala @ChristophWurst
/apps/twofactor_backupcodes/appinfo/info.xml @st3iny @miaulalala @ChristophWurst
/apps/updatenotification/appinfo/info.xml @JuliaKirschenheuter @sorbaugh
/apps/user_ldap/appinfo/info.xml @come-nc @blizzz
/apps/user_status/appinfo/info.xml @Antreesy @nickvergessen
@@ -72,9 +70,9 @@ package-lock.json @nextcloud/server-dependabot
# Two-Factor Authentication
# https://github.com/nextcloud/wg-two-factor-authentication#members
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen @st3iny
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen @st3iny
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen @st3iny
# Limit login to IP
# Watch login routes for https://github.com/nextcloud/limit_login_to_ip
@@ -96,16 +94,16 @@ ResponseDefinitions.php @provokateurin @nextcloud/server-backend
*/Notifications/* @nickvergessen @nextcloud/talk-backend
# Groupware team
/build/integration/dav_features/caldav.feature @ChristophWurst @SebastianKrupinski @tcitworld
/build/integration/dav_features/caldav.feature @st3iny @SebastianKrupinski @tcitworld
/build/integration/dav_features/carddav.feature @hamza221 @SebastianKrupinski
/lib/private/Calendar @ChristophWurst @SebastianKrupinski @tcitworld
/lib/private/Calendar @st3iny @SebastianKrupinski @tcitworld
/lib/private/Contacts @hamza221 @SebastianKrupinski
/lib/public/Calendar @ChristophWurst @SebastianKrupinski @tcitworld
/lib/public/Calendar @st3iny @SebastianKrupinski @tcitworld
/lib/public/Contacts @hamza221 @SebastianKrupinski
# Desktop client teamn
/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php @nextcloud/desktop
# Personal interest
*/Activity/* @nickvergessen @nextcloud/server-backend
/apps/workflowengine/lib @nickvergessen @blizzz
*/Activity/* @nickvergessen @nextcloud/server-backend
/apps/workflowengine/lib @nickvergessen @blizzz
+29 -24
View File
@@ -3,43 +3,48 @@ name: 🚀 Feature request
about: Suggest an idea for this project
labels: enhancement, 0. Needs triage
type: "Enhancement"
---
<!--
Have a security concern? Please report potential security issues via our HackerOne program (https://hackerone.com/nextcloud) instead of filing a public GitHub issue. See our security policy: https://nextcloud.com/security/
Thanks for reporting issues back to Nextcloud!
Note: This is the **issue tracker of Nextcloud**, please do NOT use this to get answers to your questions or get help for fixing your installation. This is a place to report bugs to developers, after your server has been debugged. You can find help debugging your system on our home user forums: https://help.nextcloud.com or, if you use Nextcloud in a large organization, ask our engineers on https://portal.nextcloud.com. See also https://nextcloud.com/support for support options.
Nextcloud is an open source project backed by Nextcloud GmbH. Most of our volunteers are home users and thus primarily care about issues that affect home users. Our paid engineers prioritize issues of our customers. If you are neither a home user nor a customer, consider paying somebody to fix your issue, do it yourself or become a customer.
Guidelines for submitting issues:
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to https://github.com/nextcloud and type any word in the top search/command bar. You probably see something like "We couldnt find any repositories matching ..." then click "Issues" in the left navigation.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on search syntax within github: https://help.github.com/articles/searching-issues
* This repository https://github.com/nextcloud/server/issues is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
-->
<!--
Thanks for taking the time to suggest improvements to Nextcloud! Use this form to request features or propose enhancements.
Guidelines:
<!--- Please keep this note for other contributors -->
* Please search existing issues first; your idea may already have been discussed or implemented.
* This repository (https://github.com/nextcloud/server/issues) is only for issues within the Nextcloud Server code. This includes shipped apps such as Files, DAV, Encryption, External Storage, Sharing, Deleted Files, Versions, Federation, and LDAP.
* Issues for other components should be reported in their respective repositories in the Nextcloud GitHub organization: https://github.com/nextcloud/
* Nextcloud is an open source project backed by Nextcloud GmbH. Many contributors are volunteers and primarily focus on issues affecting home users. Paid engineers prioritize customer-reported issues and critical defects.
* This is the development issue tracker. Please do NOT use it for support questions or help diagnosing your installation.
- For community/user help: https://help.nextcloud.com
- For professional / large deployment support options: https://nextcloud.com/support
-->
### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are interested into the same feature.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
<!-- Please keep the note below for other contributors -->
> [!TIP]
> ### Help move this idea forward
> * Use the 👍 reaction to show support for this feature.
> * Avoid commenting unless you have relevant information to add; unnecessary comments create noise for subscribers.
> * Subscribe to receive notifications about status changes and new comments.
---
<!-- DO NOT EDIT ABOVE THIS LINE -->
**Is your feature request related to a problem? Please describe.**
<!-- Provide a clear and concise description of the problem. For example: “I'm always frustrated when …” -->
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
<!-- Provide a clear and concise description of what you want to happen. -->
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
<!-- Provide a clear and concise description of any alternative solutions or features you've considered. -->
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
<!-- Add any other context or screenshots related to the feature request here. -->
Add any other context or screenshots about the feature request here.
+42 -4
View File
@@ -38,10 +38,7 @@ updates:
# Main master npm frontend dependencies
- package-ecosystem: npm
directories:
- "/"
- "/build/frontend"
- "/build/frontend-legacy"
directory: "/"
schedule:
interval: weekly
day: saturday
@@ -124,6 +121,28 @@ updates:
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: composer
target-branch: stable30
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
- package-ecosystem: npm
target-branch: stable31
@@ -143,3 +162,22 @@ updates:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
- package-ecosystem: npm
target-branch: stable30
directory: "/"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
+3 -5
View File
@@ -32,18 +32,16 @@ jobs:
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
uses: actions/checkout@v5
- name: Initialize CodeQL
uses: github/codeql-action/init@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
+12 -12
View File
@@ -102,8 +102,8 @@ jobs:
matrix:
# Run multiple copies of the current job in parallel
# Please increase the number or runners as your tests suite grows (0 based index for e2e tests)
containers: ['setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# Hack as strategy.job-total includes the "setup" and GitHub does not allow math expressions
containers: ['component', 'setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# Hack as strategy.job-total includes the component and GitHub does not allow math expressions
# Always align this number with the total of e2e runners (max. index + 1)
total-containers: [10]
@@ -194,7 +194,6 @@ jobs:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
SPLIT: ${{ matrix.total-containers }}
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
SPLIT_RANDOM_SEED: ${{ github.run_id }}
SETUP_TESTING: ${{ matrix.containers == 'setup' && 'true' || '' }}
- name: Upload snapshots and videos
@@ -206,19 +205,20 @@ jobs:
cypress/snapshots
cypress/videos
- name: Show logs
- name: Extract NC logs
if: failure() && matrix.containers != 'component'
run: |
for id in $(docker ps -aq); do
docker container inspect "$id" --format '=== Logs for container {{.Name}} ==='
docker logs "$id" >> nextcloud.log
done
echo '=== Nextcloud server logs ==='
docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} cat data/nextcloud.log
run: docker logs nextcloud-cypress-tests_${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: failure() && matrix.containers != 'component'
with:
name: nc_logs_${{ matrix.containers }}
path: nextcloud.log
- name: Create data dir archive
if: failure() && matrix.containers != 'component'
run: docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} tar -cvjf - data > data.tar
run: docker exec nextcloud-cypress-tests_${{ env.APP_NAME }} tar -cvjf - data > data.tar
- name: Upload data dir archive
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
+1 -3
View File
@@ -62,7 +62,6 @@ jobs:
- '--tags ~@large files_features'
- 'filesdrop_features'
- 'file_conversions'
- 'files_reminders'
- 'openldap_features'
- 'openldap_numerical_features'
- 'ldap_features'
@@ -85,10 +84,9 @@ jobs:
ports:
- 6379:6379/tcp
openldap:
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-8 # zizmor: ignore[unpinned-images]
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7 # zizmor: ignore[unpinned-images]
ports:
- 389:389
- 636:636
env:
SLAPD_DOMAIN: nextcloud.ci
SLAPD_ORGANIZATION: Nextcloud
+1 -1
View File
@@ -55,7 +55,7 @@ jobs:
- name: Set up php8.1
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
with:
php-version: 8.2
php-version: 8.1
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
+31 -2
View File
@@ -114,6 +114,35 @@ jobs:
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
jsunit:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
- name: Install dependencies
run: npm ci
- name: Test
run: npm run test:jsunit
handlebars:
runs-on: ubuntu-latest
needs: [versions, changes]
@@ -148,7 +177,7 @@ jobs:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, test, handlebars]
needs: [changes, test, jsunit, handlebars]
if: always()
@@ -156,4 +185,4 @@ jobs:
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && (needs.test.result != 'success' || needs.handlebars.result != 'success') }}; then exit 1; fi
run: if ${{ needs.changes.outputs.src != 'false' && (needs.test.result != 'success' || needs.jsunit.result != 'success' || needs.handlebars.result != 'success') }}; then exit 1; fi
+7 -7
View File
@@ -5,10 +5,9 @@ name: PHPUnit 32bits
on:
pull_request:
paths:
- "version.php"
- ".github/workflows/phpunit-32bits.yml"
- "tests/phpunit-autotest.xml"
- "lib/private/Snowflake/*"
- 'version.php'
- '.github/workflows/phpunit-32bits.yml'
- 'tests/phpunit-autotest.xml'
workflow_dispatch:
schedule:
- cron: "15 1 * * 1-6"
@@ -31,7 +30,7 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ["8.2", "8.3", "8.4"]
php-versions: ['8.2', '8.3', '8.4']
steps:
- name: Checkout server
@@ -52,7 +51,8 @@ jobs:
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, apcu, ldap
coverage: none
ini-file: development
ini-values: apc.enabled=on, apc.enable_cli=on, disable_functions= # https://github.com/shivammathur/setup-php/discussions/573
ini-values:
apc.enabled=on, apc.enable_cli=on, disable_functions= # https://github.com/shivammathur/setup-php/discussions/573
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -68,4 +68,4 @@ jobs:
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test -- --exclude-group PRIMARY-azure --exclude-group PRIMARY-s3 --exclude-group PRIMARY-swift --exclude-group Memcached --exclude-group Redis --exclude-group RoutingWeirdness
run: composer run test -- --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness
+1 -1
View File
@@ -99,7 +99,7 @@ jobs:
php -f tests/enable_all.php
- name: PHPUnit memcached tests
run: composer run test -- --group Memcache --group Memcached --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
run: composer run test -- --group Memcache,Memcached --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
-2
View File
@@ -67,8 +67,6 @@ jobs:
coverage: ${{ github.event_name != 'pull_request' }}
- mysql-versions: '8.4'
php-versions: '8.4'
- mysql-versions: '8.4'
php-versions: '8.5'
name: MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
+1 -1
View File
@@ -105,7 +105,7 @@ jobs:
php -f tests/enable_all.php
- name: PHPUnit nodb testsuite
run: composer run test -- --exclude-group DB --exclude-group SLOWDB --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.nodb.xml' || '' }}
run: composer run test -- --exclude-group DB,SLOWDB --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.nodb.xml' || '' }}
- name: Upload nodb code coverage
if: ${{ !cancelled() && matrix.coverage }}
+4 -4
View File
@@ -61,13 +61,13 @@ jobs:
matrix:
php-versions: ['8.2']
# To keep the matrix smaller we ignore PostgreSQL versions in between as we already test the minimum and the maximum
postgres-versions: ['14', '18']
postgres-versions: ['13', '17']
include:
- php-versions: '8.3'
postgres-versions: '18'
postgres-versions: '17'
coverage: ${{ github.event_name != 'pull_request' }}
- php-versions: '8.4'
postgres-versions: '18'
postgres-versions: '17'
name: PostgreSQL ${{ matrix.postgres-versions }} (PHP ${{ matrix.php-versions }}) - database tests
@@ -86,7 +86,7 @@ jobs:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --mount type=tmpfs,destination=/var/lib/postgresql --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
options: --mount type=tmpfs,destination=/var/lib/postgresql/data --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
+1 -1
View File
@@ -59,7 +59,7 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4', '8.5']
php-versions: ['8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
+8 -1
View File
@@ -11,7 +11,7 @@
/apps/inc.php
/assets
/.htaccess
node_modules/
/node_modules
/translationfiles
/translationtool.phar
@@ -55,6 +55,10 @@ node_modules/
/apps/files_external/3rdparty/irodsphp/prods/test*
/apps/files_external/tests/config.*.php
# apps modules
/apps/*/node_modules
# ignore themes except the example and the README
/themes/*
!/themes/example
@@ -127,6 +131,9 @@ nbproject
# Tests
/tests/phpunit.xml
# Node Modules
/build/node_modules/
# nodejs
/build/bin
/build/lib/
+1 -1
View File
@@ -178,7 +178,7 @@ SPDX-FileCopyrightText = "2020 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"
[[annotations]]
path = ["cypress/tsconfig.json", "cypress/fixtures/appstore/apps.json", "dist/*.css"]
path = ["cypress/tsconfig.json", "cypress/fixtures/appstore/apps.json", "dist/icons.css"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2022 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"
-1
View File
@@ -2,7 +2,6 @@
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: CC0-1.0
*/
export function setup() {
process.env.TZ = 'UTC'
}
-1
View File
@@ -2,6 +2,5 @@
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: CC0-1.0
*/
import '@testing-library/jest-dom/vitest'
import 'core-js/stable/index.js'
+4 -1
View File
@@ -14,7 +14,10 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
throw new RuntimeException($err);
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';
@@ -26,23 +26,12 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -320,24 +309,6 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -351,27 +322,19 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -387,7 +350,7 @@ class InstalledVersions
}
}
if (self::$installed !== array() && !$copiedLocalDir) {
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "ການກວດສອບ / ການບັນທຶກ",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "ສະໜອງຄວາມສາມາດໃນການບັນທຶກສຳລັບ Nextcloud ເຊັ່ນ ການບັນທຶກການເຂົ້າເຖິງໄຟລ໌ ຫຼື ການກະທຳອື່ນໆທີ່ອ່ອນໄຫວ."
},
"nplurals=1; plural=0;");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Auditing / Logging" : "ການກວດສອບ / ການບັນທຶກ",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "ສະໜອງຄວາມສາມາດໃນການບັນທຶກສຳລັບ Nextcloud ເຊັ່ນ ການບັນທຶກການເຂົ້າເຖິງໄຟລ໌ ຫຼື ການກະທຳອື່ນໆທີ່ອ່ອນໄຫວ."
},"pluralForm" :"nplurals=1; plural=0;"
}
@@ -14,7 +14,10 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
throw new RuntimeException($err);
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';
@@ -26,23 +26,12 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -320,24 +309,6 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -351,27 +322,19 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -387,7 +350,7 @@ class InstalledVersions
}
}
if (self::$installed !== array() && !$copiedLocalDir) {
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
@@ -236,7 +236,7 @@ class RequestHandlerController extends Controller {
*
* @param string $recipientProvider The address of the recipent's provider
* @param string $token The token used for the invitation
* @param string $userID The userID of the recipient at the recipient's provider
* @param string $userId The userId of the recipient at the recipient's provider
* @param string $email The email address of the recipient
* @param string $name The display name of the recipient
*
@@ -251,8 +251,8 @@ class RequestHandlerController extends Controller {
#[PublicPage]
#[NoCSRFRequired]
#[BruteForceProtection(action: 'inviteAccepted')]
public function inviteAccepted(string $recipientProvider, string $token, string $userID, string $email, string $name): JSONResponse {
$this->logger->debug('Processing share invitation for ' . $userID . ' with token ' . $token . ' and email ' . $email . ' and name ' . $name);
public function inviteAccepted(string $recipientProvider, string $token, string $userId, string $email, string $name): JSONResponse {
$this->logger->debug('Processing share invitation for ' . $userId . ' with token ' . $token . ' and email ' . $email . ' and name ' . $name);
$updated = $this->timeFactory->getTime();
@@ -309,7 +309,7 @@ class RequestHandlerController extends Controller {
$invitation->setRecipientEmail($email);
$invitation->setRecipientName($name);
$invitation->setRecipientProvider($recipientProvider);
$invitation->setRecipientUserId($userID);
$invitation->setRecipientUserId($userId);
$invitation->setAcceptedAt($updated);
$invitation = $this->federatedInviteMapper->update($invitation);
+3 -3
View File
@@ -354,7 +354,7 @@
"required": [
"recipientProvider",
"token",
"userID",
"userId",
"email",
"name"
],
@@ -367,9 +367,9 @@
"type": "string",
"description": "The token used for the invitation"
},
"userID": {
"userId": {
"type": "string",
"description": "The userID of the recipient at the recipient's provider"
"description": "The userId of the recipient at the recipient's provider"
},
"email": {
"type": "string",
+4 -1
View File
@@ -14,7 +14,10 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
throw new RuntimeException($err);
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';
@@ -26,23 +26,12 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -320,24 +309,6 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -351,27 +322,19 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -387,7 +350,7 @@ class InstalledVersions
}
}
if (self::$installed !== array() && !$copiedLocalDir) {
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
@@ -23,4 +23,6 @@ return array(
'OCA\\Comments\\Notification\\Listener' => $baseDir . '/../lib/Notification/Listener.php',
'OCA\\Comments\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php',
'OCA\\Comments\\Search\\CommentsSearchProvider' => $baseDir . '/../lib/Search/CommentsSearchProvider.php',
'OCA\\Comments\\Search\\LegacyProvider' => $baseDir . '/../lib/Search/LegacyProvider.php',
'OCA\\Comments\\Search\\Result' => $baseDir . '/../lib/Search/Result.php',
);
@@ -38,6 +38,8 @@ class ComposerStaticInitComments
'OCA\\Comments\\Notification\\Listener' => __DIR__ . '/..' . '/../lib/Notification/Listener.php',
'OCA\\Comments\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php',
'OCA\\Comments\\Search\\CommentsSearchProvider' => __DIR__ . '/..' . '/../lib/Search/CommentsSearchProvider.php',
'OCA\\Comments\\Search\\LegacyProvider' => __DIR__ . '/..' . '/../lib/Search/LegacyProvider.php',
'OCA\\Comments\\Search\\Result' => __DIR__ . '/..' . '/../lib/Search/Result.php',
);
public static function getInitializer(ClassLoader $loader)
+1 -1
View File
@@ -19,7 +19,7 @@ OC.L10N.register(
"New comment" : "Новы каментарый",
"Write a comment …" : "Напішыце каментарый …",
"Post comment" : "Апублікаваць каментарый",
"@ for mentions, : for emoji, / for smart picker" : "@ - згадкі, : - эмодзі, / - smart picker",
"@ for mentions, : for emoji, / for smart picker" : "@ - згадкі, : - эмодзі, / - разумны выбар",
"Could not reload comments" : "Не ўдалося перазагрузіць каментарыі",
"Failed to mark comments as read" : "Не атрымалася пазначыць каментарыі як прачытаныя",
"Unable to load the comments list" : "Не ўдалося загрузіць спіс каментарыяў",
+1 -1
View File
@@ -17,7 +17,7 @@
"New comment" : "Новы каментарый",
"Write a comment …" : "Напішыце каментарый …",
"Post comment" : "Апублікаваць каментарый",
"@ for mentions, : for emoji, / for smart picker" : "@ - згадкі, : - эмодзі, / - smart picker",
"@ for mentions, : for emoji, / for smart picker" : "@ - згадкі, : - эмодзі, / - разумны выбар",
"Could not reload comments" : "Не ўдалося перазагрузіць каментарыі",
"Failed to mark comments as read" : "Не атрымалася пазначыць каментарыі як прачытаныя",
"Unable to load the comments list" : "Не ўдалося загрузіць спіс каментарыяў",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Smazat komentář",
"Cancel edit" : "Zrušit úpravu",
"New comment" : "Nový komentář",
"Write a comment …" : "Napsat komentář …",
"Post comment" : "Odeslat komentář",
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Smazat komentář",
"Cancel edit" : "Zrušit úpravu",
"New comment" : "Nový komentář",
"Write a comment …" : "Napsat komentář …",
"Post comment" : "Odeslat komentář",
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Slet kommentar",
"Cancel edit" : "Annullér redigering",
"New comment" : "Ny kommentar",
"Write a comment …" : "Skriv kommentar …",
"Post comment" : "Skriv kommentar",
"@ for mentions, : for emoji, / for smart picker" : "\"@\" for at omtale, \":\" for emojis, \"/\" for Smart Vælger",
"Could not reload comments" : "Kunne ikke indlæse kommentarer",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Slet kommentar",
"Cancel edit" : "Annullér redigering",
"New comment" : "Ny kommentar",
"Write a comment …" : "Skriv kommentar …",
"Post comment" : "Skriv kommentar",
"@ for mentions, : for emoji, / for smart picker" : "\"@\" for at omtale, \":\" for emojis, \"/\" for Smart Vælger",
"Could not reload comments" : "Kunne ikke indlæse kommentarer",
+1 -1
View File
@@ -17,7 +17,7 @@ OC.L10N.register(
"Delete comment" : "Kommentar löschen",
"Cancel edit" : "Bearbeiten abbrechen",
"New comment" : "Neuer Kommentar",
"Write a comment …" : "Einen Kommentar schreiben …",
"Write a comment …" : "Schreiben Sie einen Kommentar  …",
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
+1 -1
View File
@@ -15,7 +15,7 @@
"Delete comment" : "Kommentar löschen",
"Cancel edit" : "Bearbeiten abbrechen",
"New comment" : "Neuer Kommentar",
"Write a comment …" : "Einen Kommentar schreiben …",
"Write a comment …" : "Schreiben Sie einen Kommentar  …",
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Delete comment",
"Cancel edit" : "Cancel edit",
"New comment" : "New comment",
"Write a comment …" : "Write a comment …",
"Post comment" : "Post comment",
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
"Could not reload comments" : "Could not reload comments",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Delete comment",
"Cancel edit" : "Cancel edit",
"New comment" : "New comment",
"Write a comment …" : "Write a comment …",
"Post comment" : "Post comment",
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
"Could not reload comments" : "Could not reload comments",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Supprimer le commentaire",
"Cancel edit" : "Annuler les modifications",
"New comment" : "Nouveau commentaire",
"Write a comment …" : "Écrire un commentaire …",
"Post comment" : "Publier le commentaire",
"@ for mentions, : for emoji, / for smart picker" : "@ pour les mentions, : pour les émojis, / pour le sélecteur intelligent",
"Could not reload comments" : "Impossible de recharger les commentaires",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Supprimer le commentaire",
"Cancel edit" : "Annuler les modifications",
"New comment" : "Nouveau commentaire",
"Write a comment …" : "Écrire un commentaire …",
"Post comment" : "Publier le commentaire",
"@ for mentions, : for emoji, / for smart picker" : "@ pour les mentions, : pour les émojis, / pour le sélecteur intelligent",
"Could not reload comments" : "Impossible de recharger les commentaires",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Elimina commento",
"Cancel edit" : "Annulla modifica",
"New comment" : "Nuovo commento",
"Write a comment …" : "Scrivi un commento ...",
"Post comment" : "Pubblica commento",
"@ for mentions, : for emoji, / for smart picker" : "@ per menzioni, : per emoji, / per selettore intelligente",
"Could not reload comments" : "Impossibile ricaricare i commenti",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Elimina commento",
"Cancel edit" : "Annulla modifica",
"New comment" : "Nuovo commento",
"Write a comment …" : "Scrivi un commento ...",
"Post comment" : "Pubblica commento",
"@ for mentions, : for emoji, / for smart picker" : "@ per menzioni, : per emoji, / per selettore intelligente",
"Could not reload comments" : "Impossibile ricaricare i commenti",
-37
View File
@@ -1,37 +0,0 @@
OC.L10N.register(
"comments",
{
"Comments" : "ຄໍາເຫັນ",
"You commented" : "ທ່ານໄດ້ສະແດງຄຳເຫັນ",
"{author} commented" : "{author} commented",
"You commented on %1$s" : "You commented on %1$s",
"You commented on {file}" : "You commented on {file}",
"%1$s commented on %2$s" : "%1$s commented on %2$s",
"{author} commented on {file}" : "{author} commented on {file}",
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
"Files" : "ຟາຍ",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "You were mentioned on \"{file}\", in a comment by an account that has since been deleted",
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
"Edit comment" : "ແກ້ໄຂຄຳເຫັນ",
"Delete comment" : "ລົບຄຳເຫັນ",
"Cancel edit" : "Cancel edit",
"New comment" : "New comment",
"Write a comment …" : "Write a comment …",
"Post comment" : "Post comment",
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
"Could not reload comments" : "Could not reload comments",
"Failed to mark comments as read" : "Failed to mark comments as read",
"Unable to load the comments list" : "Unable to load the comments list",
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
"No more messages" : "No more messages",
"Retry" : "Retry",
"_1 new comment_::_{unread} new comments_" : ["{unread} new comments"],
"Comment" : "Comment",
"An error occurred while trying to edit the comment" : "An error occurred while trying to edit the comment",
"Comment deleted" : "Comment deleted",
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
"Write a comment …" : "Write a comment …"
},
"nplurals=1; plural=0;");
-35
View File
@@ -1,35 +0,0 @@
{ "translations": {
"Comments" : "ຄໍາເຫັນ",
"You commented" : "ທ່ານໄດ້ສະແດງຄຳເຫັນ",
"{author} commented" : "{author} commented",
"You commented on %1$s" : "You commented on %1$s",
"You commented on {file}" : "You commented on {file}",
"%1$s commented on %2$s" : "%1$s commented on %2$s",
"{author} commented on {file}" : "{author} commented on {file}",
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
"Files" : "ຟາຍ",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "You were mentioned on \"{file}\", in a comment by an account that has since been deleted",
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
"Edit comment" : "ແກ້ໄຂຄຳເຫັນ",
"Delete comment" : "ລົບຄຳເຫັນ",
"Cancel edit" : "Cancel edit",
"New comment" : "New comment",
"Write a comment …" : "Write a comment …",
"Post comment" : "Post comment",
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
"Could not reload comments" : "Could not reload comments",
"Failed to mark comments as read" : "Failed to mark comments as read",
"Unable to load the comments list" : "Unable to load the comments list",
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
"No more messages" : "No more messages",
"Retry" : "Retry",
"_1 new comment_::_{unread} new comments_" : ["{unread} new comments"],
"Comment" : "Comment",
"An error occurred while trying to edit the comment" : "An error occurred while trying to edit the comment",
"Comment deleted" : "Comment deleted",
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
"Write a comment …" : "Write a comment …"
},"pluralForm" :"nplurals=1; plural=0;"
}
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Удалить комментарий",
"Cancel edit" : "Отменить правку",
"New comment" : "Новый комментарий",
"Write a comment …" : "Написать комментарий …",
"Post comment" : "Опубликовать комментарий",
"@ for mentions, : for emoji, / for smart picker" : "@ для упоминаний, : для эмодзи, / для интеллектуального выбора",
"Could not reload comments" : "Не удалось перезагрузить комментарии",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Удалить комментарий",
"Cancel edit" : "Отменить правку",
"New comment" : "Новый комментарий",
"Write a comment …" : "Написать комментарий …",
"Post comment" : "Опубликовать комментарий",
"@ for mentions, : for emoji, / for smart picker" : "@ для упоминаний, : для эмодзи, / для интеллектуального выбора",
"Could not reload comments" : "Не удалось перезагрузить комментарии",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Обриши коментар",
"Cancel edit" : "Поништи измену",
"New comment" : "Нови коментар",
"Write a comment …" : "Напишите коментар …",
"Post comment" : "Објави коментар",
"@ for mentions, : for emoji, / for smart picker" : "@ за помињања, : за емођи, / за паметни бирач",
"Could not reload comments" : "Коментари не могу поново да се учитају",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Обриши коментар",
"Cancel edit" : "Поништи измену",
"New comment" : "Нови коментар",
"Write a comment …" : "Напишите коментар …",
"Post comment" : "Објави коментар",
"@ for mentions, : for emoji, / for smart picker" : "@ за помињања, : за емођи, / за паметни бирач",
"Could not reload comments" : "Коментари не могу поново да се учитају",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Yorumu sil",
"Cancel edit" : "Düzenlemeyi iptal et",
"New comment" : "Yorum ekle",
"Write a comment …" : "Bir yorum yazın…",
"Post comment" : "Yorum gönder",
"@ for mentions, : for emoji, / for smart picker" : "Anmalar için @, emojiler için :, akıllı seçici için /",
"Could not reload comments" : "Yorumlar yeniden yüklenemedi",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Yorumu sil",
"Cancel edit" : "Düzenlemeyi iptal et",
"New comment" : "Yorum ekle",
"Write a comment …" : "Bir yorum yazın…",
"Post comment" : "Yorum gönder",
"@ for mentions, : for emoji, / for smart picker" : "Anmalar için @, emojiler için :, akıllı seçici için /",
"Could not reload comments" : "Yorumlar yeniden yüklenemedi",
+2 -4
View File
@@ -4,9 +4,9 @@ OC.L10N.register(
"Comments" : "باھا",
"You commented" : "باھا بەردىڭىز",
"{author} commented" : "{author} باھا بەردى",
"You commented on %1$s" : "سىز %1$s غا باھا بەردىڭىز",
"You commented on %1$s" : "سىز%1 $ s غا باھا بەردىڭىز",
"You commented on {file}" : "سىز {file} گە باھا بەردىڭىز",
"%1$s commented on %2$s" : "%1$s بولسا %2$s غا باھا بەردى",
"%1$s commented on %2$s" : "%1 $ s%2 $ s غا باھا بەردى",
"{author} commented on {file}" : "{author} بولسا {file} گە باھا بەردى",
"<strong>Comments</strong> for files" : "ھۆججەتلەر ئۈچۈن <strong> باھا </ strong>",
"Files" : "ھۆججەتلەر",
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "باھانى ئۆچۈرۈڭ",
"Cancel edit" : "تەھرىرلەشنى ئەمەلدىن قالدۇرۇڭ",
"New comment" : "يېڭى باھا",
"Write a comment …" : "بىر ئىنكاس يېزىڭ  ...",
"Post comment" : "ئىنكاس يېزىڭ",
"@ for mentions, : for emoji, / for smart picker" : "@ تىلغا ئېلىش ئۈچۈن ،: emoji ئۈچۈن ، / ئەقلىي ئىقتىدارلىق تاللىغۇچ ئۈچۈن",
"Could not reload comments" : "ئىنكاسلارنى قايتا يۈكلىيەلمىدى",
@@ -26,7 +25,6 @@ OC.L10N.register(
"No comments yet, start the conversation!" : "تېخى باھا يوق ، سۆھبەتنى باشلاڭ!",
"No more messages" : "باشقا ئۇچۇر يوق",
"Retry" : "قايتا سىناڭ",
"_1 new comment_::_{unread} new comments_" : ["1 يېڭى ئىنكاس","{unread} يېڭى ئىنكاسلار"],
"Comment" : "باھا",
"An error occurred while trying to edit the comment" : "باھانى تەھرىرلىمەكچى بولغاندا خاتالىق كۆرۈلدى",
"Comment deleted" : "باھا ئۆچۈرۈلدى",
+2 -4
View File
@@ -2,9 +2,9 @@
"Comments" : "باھا",
"You commented" : "باھا بەردىڭىز",
"{author} commented" : "{author} باھا بەردى",
"You commented on %1$s" : "سىز %1$s غا باھا بەردىڭىز",
"You commented on %1$s" : "سىز%1 $ s غا باھا بەردىڭىز",
"You commented on {file}" : "سىز {file} گە باھا بەردىڭىز",
"%1$s commented on %2$s" : "%1$s بولسا %2$s غا باھا بەردى",
"%1$s commented on %2$s" : "%1 $ s%2 $ s غا باھا بەردى",
"{author} commented on {file}" : "{author} بولسا {file} گە باھا بەردى",
"<strong>Comments</strong> for files" : "ھۆججەتلەر ئۈچۈن <strong> باھا </ strong>",
"Files" : "ھۆججەتلەر",
@@ -15,7 +15,6 @@
"Delete comment" : "باھانى ئۆچۈرۈڭ",
"Cancel edit" : "تەھرىرلەشنى ئەمەلدىن قالدۇرۇڭ",
"New comment" : "يېڭى باھا",
"Write a comment …" : "بىر ئىنكاس يېزىڭ  ...",
"Post comment" : "ئىنكاس يېزىڭ",
"@ for mentions, : for emoji, / for smart picker" : "@ تىلغا ئېلىش ئۈچۈن ،: emoji ئۈچۈن ، / ئەقلىي ئىقتىدارلىق تاللىغۇچ ئۈچۈن",
"Could not reload comments" : "ئىنكاسلارنى قايتا يۈكلىيەلمىدى",
@@ -24,7 +23,6 @@
"No comments yet, start the conversation!" : "تېخى باھا يوق ، سۆھبەتنى باشلاڭ!",
"No more messages" : "باشقا ئۇچۇر يوق",
"Retry" : "قايتا سىناڭ",
"_1 new comment_::_{unread} new comments_" : ["1 يېڭى ئىنكاس","{unread} يېڭى ئىنكاسلار"],
"Comment" : "باھا",
"An error occurred while trying to edit the comment" : "باھانى تەھرىرلىمەكچى بولغاندا خاتالىق كۆرۈلدى",
"Comment deleted" : "باھا ئۆچۈرۈلدى",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Вилучити коментар",
"Cancel edit" : "Скасувати редагування",
"New comment" : "Новий коментар",
"Write a comment …" : "Додайте коментар …",
"Post comment" : "Опублікувати коментар",
"@ for mentions, : for emoji, / for smart picker" : "@ згадати, : емоційки, / асистент вибору",
"Could not reload comments" : "Не вдалося перезавантажити коментарі",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Вилучити коментар",
"Cancel edit" : "Скасувати редагування",
"New comment" : "Новий коментар",
"Write a comment …" : "Додайте коментар …",
"Post comment" : "Опублікувати коментар",
"@ for mentions, : for emoji, / for smart picker" : "@ згадати, : емоційки, / асистент вибору",
"Could not reload comments" : "Не вдалося перезавантажити коментарі",
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "刪除留言",
"Cancel edit" : "取消編輯",
"New comment" : "新評論",
"Write a comment …" : "發表評論 ...",
"Post comment" : "張貼留言",
"@ for mentions, : for emoji, / for smart picker" : "“@” 表示提及,“:” 表示表情符號,“/” 表示智慧型選擇器",
"Could not reload comments" : "無法重新加載評論",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "刪除留言",
"Cancel edit" : "取消編輯",
"New comment" : "新評論",
"Write a comment …" : "發表評論 ...",
"Post comment" : "張貼留言",
"@ for mentions, : for emoji, / for smart picker" : "“@” 表示提及,“:” 表示表情符號,“/” 表示智慧型選擇器",
"Could not reload comments" : "無法重新加載評論",
@@ -27,10 +27,6 @@ class CommentersSorter implements ISorter {
* @param array $context
*/
public function sort(array &$sortArray, array $context): void {
if (!isset($context['itemType'], $context['itemId'])) {
return;
}
$commenters = $this->retrieveCommentsInformation($context['itemType'], $context['itemId']);
if (count($commenters) === 0) {
return;
@@ -8,13 +8,6 @@ declare(strict_types=1);
*/
namespace OCA\Comments\Search;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\Files\Folder;
use OCP\Files\InvalidPathException;
use OCP\Files\IRootFolder;
use OCP\Files\Node;
use OCP\Files\NotFoundException;
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUser;
@@ -23,14 +16,14 @@ use OCP\Search\IProvider;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
use function array_map;
class CommentsSearchProvider implements IProvider {
public function __construct(
private IUserManager $userManager,
private IL10N $l10n,
private IURLGenerator $urlGenerator,
private ICommentsManager $commentsManager,
private IRootFolder $rootFolder,
private LegacyProvider $legacyProvider,
) {
}
@@ -51,76 +44,30 @@ class CommentsSearchProvider implements IProvider {
}
public function search(IUser $user, ISearchQuery $query): SearchResult {
$userFolder = $this->rootFolder->getUserFolder($user->getUID());
if ($userFolder === null) {
return SearchResult::complete($this->l10n->t('Comments'), []);
}
$result = [];
$numComments = 50;
$offset = 0;
while (count($result) < $numComments) {
$comments = $this->commentsManager->search($query->getTerm(), 'files', '', 'comment', $offset, $numComments);
foreach ($comments as $comment) {
if ($comment->getActorType() !== 'users') {
continue;
}
$displayName = $this->commentsManager->resolveDisplayName('user', $comment->getActorId());
try {
$file = $this->getFileForComment($userFolder, $comment);
$isUser = $this->userManager->userExists($comment->getActorId());
$avatarUrl = $isUser
? $this->urlGenerator->linkToRouteAbsolute('core.avatar.getAvatar', ['userId' => $comment->getActorId(), 'size' => 42])
: $this->urlGenerator->linkToRouteAbsolute('core.GuestAvatar.getAvatar', ['guestName' => $comment->getActorId(), 'size' => 42]);
$link = $this->urlGenerator->linkToRoute(
'files.View.showFile',
['fileid' => $file->getId()]
);
$result[] = new SearchResultEntry(
$avatarUrl,
$displayName,
$file->getPath(),
$link,
'',
true
);
} catch (NotFoundException|InvalidPathException $e) {
continue;
}
}
if (count($comments) < $numComments) {
// Didn't find more comments when we tried to get, so there are no more comments.
break;
}
$offset += $numComments;
$numComments = 50 - count($result);
}
return SearchResult::complete(
$this->l10n->t('Comments'),
$result,
array_map(function (Result $result) {
$path = $result->path;
$isUser = $this->userManager->userExists($result->authorId);
$avatarUrl = $isUser
? $this->urlGenerator->linkToRouteAbsolute('core.avatar.getAvatar', ['userId' => $result->authorId, 'size' => 42])
: $this->urlGenerator->linkToRouteAbsolute('core.GuestAvatar.getAvatar', ['guestName' => $result->authorId, 'size' => 42]);
$link = $this->urlGenerator->linkToRoute(
'files.View.showFile',
['fileid' => $result->fileId]
);
$searchResultEntry = new SearchResultEntry(
$avatarUrl,
$result->name,
$path,
$link,
'',
true
);
$searchResultEntry->addAttribute('fileId', (string)$result->fileId);
$searchResultEntry->addAttribute('path', $path);
return $searchResultEntry;
}, $this->legacyProvider->search($query->getTerm()))
);
}
/**
* @throws NotFoundException
*/
protected function getFileForComment(Folder $userFolder, IComment $comment): Node {
$nodes = $userFolder->getById((int)$comment->getObjectId());
if (empty($nodes)) {
throw new NotFoundException('File not found');
}
return array_shift($nodes);
}
}
@@ -0,0 +1,99 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Comments\Search;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\Files\Folder;
use OCP\Files\InvalidPathException;
use OCP\Files\Node;
use OCP\Files\NotFoundException;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Search\Provider;
use OCP\Server;
use function count;
class LegacyProvider extends Provider {
/**
* Search for $query
*
* @param string $query
* @return array An array of OCP\Search\Result's
* @since 7.0.0
*/
public function search($query): array {
$cm = Server::get(ICommentsManager::class);
$us = Server::get(IUserSession::class);
$user = $us->getUser();
if (!$user instanceof IUser) {
return [];
}
$uf = \OC::$server->getUserFolder($user->getUID());
if ($uf === null) {
return [];
}
$result = [];
$numComments = 50;
$offset = 0;
while (count($result) < $numComments) {
/** @var IComment[] $comments */
$comments = $cm->search($query, 'files', '', 'comment', $offset, $numComments);
foreach ($comments as $comment) {
if ($comment->getActorType() !== 'users') {
continue;
}
$displayName = $cm->resolveDisplayName('user', $comment->getActorId());
try {
$file = $this->getFileForComment($uf, $comment);
$result[] = new Result($query,
$comment,
$displayName,
$file->getPath(),
$file->getId(),
);
} catch (NotFoundException|InvalidPathException $e) {
continue;
}
}
if (count($comments) < $numComments) {
// Didn't find more comments when we tried to get, so there are no more comments.
return $result;
}
$offset += $numComments;
$numComments = 50 - count($result);
}
return $result;
}
/**
* @param Folder $userFolder
* @param IComment $comment
* @return Node
* @throws NotFoundException
*/
protected function getFileForComment(Folder $userFolder, IComment $comment): Node {
$nodes = $userFolder->getById((int)$comment->getObjectId());
if (empty($nodes)) {
throw new NotFoundException('File not found');
}
return array_shift($nodes);
}
}
+109
View File
@@ -0,0 +1,109 @@
<?php
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Comments\Search;
use OCP\Comments\IComment;
use OCP\Files\NotFoundException;
use OCP\Search\Result as BaseResult;
/**
* @deprecated 20.0.0
*/
class Result extends BaseResult {
/**
* @deprecated 20.0.0
*/
public $type = 'comment';
/**
* @deprecated 20.0.0
*/
public $comment;
/**
* @deprecated 20.0.0
*/
public $authorId;
/**
* @deprecated 20.0.0
*/
public $path;
/**
* @deprecated 20.0.0
*/
public $fileName;
/**
* @throws NotFoundException
* @deprecated 20.0.0
*/
public function __construct(
string $search,
IComment $comment,
/**
* @deprecated 20.0.0
*/
public string $authorName,
string $path,
/**
* @deprecated 20.0.0
*/
public int $fileId,
) {
parent::__construct(
$comment->getId(),
$comment->getMessage()
/* @todo , [link to file] */
);
$this->comment = $this->getRelevantMessagePart($comment->getMessage(), $search);
$this->authorId = $comment->getActorId();
$this->fileName = basename($path);
$this->path = $this->getVisiblePath($path);
}
/**
* @throws NotFoundException
*/
protected function getVisiblePath(string $path): string {
$segments = explode('/', trim($path, '/'), 3);
if (!isset($segments[2])) {
throw new NotFoundException('Path not inside visible section');
}
return $segments[2];
}
/**
* @throws NotFoundException
*/
protected function getRelevantMessagePart(string $message, string $search): string {
$start = mb_stripos($message, $search);
if ($start === false) {
throw new NotFoundException('Comment section not found');
}
$end = $start + mb_strlen($search);
if ($start <= 25) {
$start = 0;
$prefix = '';
} else {
$start -= 25;
$prefix = '…';
}
if ((mb_strlen($message) - $end) <= 25) {
$end = mb_strlen($message);
$suffix = '';
} else {
$end += 25;
$suffix = '…';
}
return $prefix . mb_substr($message, $start, $end - $start) . $suffix;
}
}
+2 -3
View File
@@ -27,7 +27,6 @@ export default defineComponent({
key: 'editor',
},
userData: {},
currentResourceId: this.resourceId,
}
},
methods: {
@@ -41,8 +40,8 @@ export default defineComponent({
const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {
params: {
search,
itemType: this.resourceType,
itemId: this.currentResourceId,
itemType: 'files',
itemId: this.resourceId,
sorter: 'commenters|share-recipients',
limit: loadState('comments', 'maxAutoCompleteResults'),
},
+3 -7
View File
@@ -110,6 +110,7 @@ export default {
loading: false,
done: false,
currentResourceId: this.resourceId,
offset: 0,
comments: [],
@@ -157,7 +158,7 @@ export default {
async update(resourceId) {
this.currentResourceId = resourceId
this.resetState()
await this.getComments()
this.getComments()
},
/**
@@ -205,13 +206,8 @@ export default {
this.done = true
}
// Ensure actor id is a string
for (const comment of comments) {
comment.props.actorId = comment.props.actorId.toString()
}
// Insert results
this.comments = [...this.comments, ...comments]
this.comments.push(...comments)
// Increase offset for next fetch
this.offset += DEFAULT_LIMIT
@@ -24,9 +24,10 @@ use Test\TestCase;
/**
* Class ApplicationTest
*
* @group DB
*
* @package OCA\Comments\Tests\Unit\AppInfo
*/
#[\PHPUnit\Framework\Attributes\Group('DB')]
class ApplicationTest extends TestCase {
protected function setUp(): void {
parent::setUp();
@@ -14,7 +14,10 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
throw new RuntimeException($err);
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';
@@ -26,23 +26,12 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -320,24 +309,6 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -351,27 +322,19 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -387,7 +350,7 @@ class InstalledVersions
}
}
if (self::$installed !== array() && !$copiedLocalDir) {
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
-9
View File
@@ -1,9 +0,0 @@
OC.L10N.register(
"contactsinteraction",
{
"Recently contacted" : "Yaqinda bog'langan",
"Contacts Interaction" : "Kontaktlar o'zaro ta'siri",
"Manages interaction between accounts and contacts" : "Hisoblar va kontaktlar o'rtasidagi o'zaro aloqani boshqaradi",
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Hisoblar va kontaktlarning o'zaro aloqalari haqida ma'lumotlarni to'plang va ma'lumotlar uchun manzillar kitobini taqdim eting"
},
"nplurals=1; plural=0;");
-7
View File
@@ -1,7 +0,0 @@
{ "translations": {
"Recently contacted" : "Yaqinda bog'langan",
"Contacts Interaction" : "Kontaktlar o'zaro ta'siri",
"Manages interaction between accounts and contacts" : "Hisoblar va kontaktlar o'rtasidagi o'zaro aloqani boshqaradi",
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Hisoblar va kontaktlarning o'zaro aloqalari haqida ma'lumotlarni to'plang va ma'lumotlar uchun manzillar kitobini taqdim eting"
},"pluralForm" :"nplurals=1; plural=0;"
}
@@ -94,7 +94,7 @@ class RecentContactMapper extends QBMapper {
->setMaxResults(1);
$cursor = $select->executeQuery();
$row = $cursor->fetchAssociative();
$row = $cursor->fetch();
if ($row === false) {
return null;
@@ -53,7 +53,7 @@ class FixVcardCategory implements IRepairStep {
->set('card', $query->createParameter('card'))
->where($query->expr()->eq('id', $query->createParameter('id')));
while ($card = $cardsWithTranslatedCategory->fetchAssociative()) {
while ($card = $cardsWithTranslatedCategory->fetch()) {
$output->advance(1);
try {
@@ -17,7 +17,9 @@ use Sabre\VObject\Component\VCard;
use Sabre\VObject\UUIDUtil;
use Test\TestCase;
#[\PHPUnit\Framework\Attributes\Group('DB')]
/**
* @group DB
*/
class RecentContactMapperTest extends TestCase {
private RecentContactMapper $recentContactMapper;
private ITimeFactory $time;
+4 -1
View File
@@ -14,7 +14,10 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
throw new RuntimeException($err);
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';
@@ -26,23 +26,12 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -320,24 +309,6 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -351,27 +322,19 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -387,7 +350,7 @@ class InstalledVersions
}
}
if (self::$installed !== array() && !$copiedLocalDir) {
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
-1
View File
@@ -20,7 +20,6 @@ OC.L10N.register(
"Edit widgets" : "Tilpas widgets",
"Get more widgets from the App Store" : "Få flere widgets fra App Store",
"Weather service" : "Vejret",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv anmoder din {productName} server om vejrdata på dine vegne, så vejrtjenesten ikke modtager personlige oplysninger.",
"Weather data from Met.no" : "Vejr-data leveres af Met.no",
"geocoding with Nominatim" : "Geocoding med Nominatim",
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData",
-1
View File
@@ -18,7 +18,6 @@
"Edit widgets" : "Tilpas widgets",
"Get more widgets from the App Store" : "Få flere widgets fra App Store",
"Weather service" : "Vejret",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv anmoder din {productName} server om vejrdata på dine vegne, så vejrtjenesten ikke modtager personlige oplysninger.",
"Weather data from Met.no" : "Vejr-data leveres af Met.no",
"geocoding with Nominatim" : "Geocoding med Nominatim",
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData",
-1
View File
@@ -20,7 +20,6 @@ OC.L10N.register(
"Edit widgets" : "Modifica widget",
"Get more widgets from the App Store" : "Ottieni altri widget dal negozio delle applicazioni",
"Weather service" : "Servizio meteo",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Per la tua riservatezza, i dati meteorologici sono richiesti dal tuo server {productName} per tuo conto, per cui il servizio meteo non riceve informazioni personali.",
"Weather data from Met.no" : "Dati meteo da Met.no",
"geocoding with Nominatim" : "geocodifica conh Nominatim",
"elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData",
-1
View File
@@ -18,7 +18,6 @@
"Edit widgets" : "Modifica widget",
"Get more widgets from the App Store" : "Ottieni altri widget dal negozio delle applicazioni",
"Weather service" : "Servizio meteo",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Per la tua riservatezza, i dati meteorologici sono richiesti dal tuo server {productName} per tuo conto, per cui il servizio meteo non riceve informazioni personali.",
"Weather data from Met.no" : "Dati meteo da Met.no",
"geocoding with Nominatim" : "geocodifica conh Nominatim",
"elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData",
+1 -4
View File
@@ -14,13 +14,10 @@ OC.L10N.register(
"Good evening, {name}" : "خەيرلىك كەچ ، {name}",
"Hello" : "ياخشىمۇسىز",
"Hello, {name}" : "ياخشىمۇسىز ، {name}",
"Happy birthday 🥳🤩🎂🎉" : "تۇغۇلغان كۈنىڭىزگە مۇبارەك 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "{name}! تۇغۇلغان كۈنىڭىزگە مۇبارەك 🥳🤩🎂🎉",
"Customize" : "خاسلاشتۇر",
"Customize" : "Customize",
"Edit widgets" : "كىچىك قوراللارنى تەھرىرلەش",
"Get more widgets from the App Store" : "ئەپ دۇكىنىدىن تېخىمۇ كۆپ كىچىك قوراللارغا ئېرىشىڭ",
"Weather service" : "ھاۋارايى مۇلازىمىتى",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "شەخسىي مەخپىيەتلىكىڭىز ئۈچۈن، {productName} مۇلازىمېتىرىڭىز سىزنىڭ نامىڭىزدا ھاۋارايى سانلىق مەلۇماتلىرىنى تەلەپ قىلىدۇ، شۇڭا ھاۋارايى مۇلازىمىتى ھېچقانداق شەخسىي ئۇچۇر تاپشۇرۇۋالمايدۇ.",
"Weather data from Met.no" : "Met.no دىن كەلگەن ھاۋارايى سانلىق مەلۇماتلىرى",
"geocoding with Nominatim" : "Nominatim بىلەن جۇغراپىيىلىك كودلاش",
"elevation data from OpenTopoData" : "OpenTopoData دىن ئېگىزلىك سانلىق مەلۇماتلىرى",
+1 -4
View File
@@ -12,13 +12,10 @@
"Good evening, {name}" : "خەيرلىك كەچ ، {name}",
"Hello" : "ياخشىمۇسىز",
"Hello, {name}" : "ياخشىمۇسىز ، {name}",
"Happy birthday 🥳🤩🎂🎉" : "تۇغۇلغان كۈنىڭىزگە مۇبارەك 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "{name}! تۇغۇلغان كۈنىڭىزگە مۇبارەك 🥳🤩🎂🎉",
"Customize" : "خاسلاشتۇر",
"Customize" : "Customize",
"Edit widgets" : "كىچىك قوراللارنى تەھرىرلەش",
"Get more widgets from the App Store" : "ئەپ دۇكىنىدىن تېخىمۇ كۆپ كىچىك قوراللارغا ئېرىشىڭ",
"Weather service" : "ھاۋارايى مۇلازىمىتى",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "شەخسىي مەخپىيەتلىكىڭىز ئۈچۈن، {productName} مۇلازىمېتىرىڭىز سىزنىڭ نامىڭىزدا ھاۋارايى سانلىق مەلۇماتلىرىنى تەلەپ قىلىدۇ، شۇڭا ھاۋارايى مۇلازىمىتى ھېچقانداق شەخسىي ئۇچۇر تاپشۇرۇۋالمايدۇ.",
"Weather data from Met.no" : "Met.no دىن كەلگەن ھاۋارايى سانلىق مەلۇماتلىرى",
"geocoding with Nominatim" : "Nominatim بىلەن جۇغراپىيىلىك كودلاش",
"elevation data from OpenTopoData" : "OpenTopoData دىن ئېگىزلىك سانلىق مەلۇماتلىرى",
+3 -11
View File
@@ -81,7 +81,7 @@ $linkCheckPlugin = new PublicLinkCheckPlugin();
$filesDropPlugin = new FilesDropPlugin();
/** @var string $baseuri defined in public.php */
$server = $serverFactory->createServer(true, $baseuri, $requestUri, $authPlugin, function (\Sabre\DAV\Server $server) use ($baseuri, $requestUri, $authBackend, $linkCheckPlugin, $filesDropPlugin) {
$server = $serverFactory->createServer(true, $baseuri, $requestUri, $authPlugin, function (\Sabre\DAV\Server $server) use ($authBackend, $linkCheckPlugin, $filesDropPlugin) {
// GET must be allowed for e.g. showing images and allowing Zip downloads
if ($server->httpRequest->getMethod() !== 'GET') {
// If this is *not* a GET request we only allow access to public DAV from AJAX or when Server2Server is allowed
@@ -103,16 +103,8 @@ $server = $serverFactory->createServer(true, $baseuri, $requestUri, $authPlugin,
$previousLog = Filesystem::logWarningWhenAddingStorageWrapper(false);
/** @psalm-suppress MissingClosureParamType */
Filesystem::addStorageWrapper('sharePermissions', function ($mountPoint, $storage) use ($requestUri, $baseuri, $share) {
$mask = $share->getPermissions() | Constants::PERMISSION_SHARE;
// For chunked uploads it is necessary to have read and delete permission,
// so the temporary directory, chunks and destination file can be read and delete after the assembly.
if (str_starts_with(substr($requestUri, strlen($baseuri) - 1), '/uploads/')) {
$mask |= Constants::PERMISSION_READ | Constants::PERMISSION_DELETE;
}
return new PermissionsMask(['storage' => $storage, 'mask' => $mask]);
Filesystem::addStorageWrapper('sharePermissions', function ($mountPoint, $storage) use ($share) {
return new PermissionsMask(['storage' => $storage, 'mask' => $share->getPermissions() | Constants::PERMISSION_SHARE]);
});
/** @psalm-suppress MissingClosureParamType */
+4 -1
View File
@@ -14,7 +14,10 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
throw new RuntimeException($err);
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';
@@ -26,23 +26,12 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -320,24 +309,6 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -351,27 +322,19 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -387,7 +350,7 @@ class InstalledVersions
}
}
if (self::$installed !== array() && !$copiedLocalDir) {
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
@@ -206,7 +206,6 @@ return array(
'OCA\\DAV\\Comments\\EntityCollection' => $baseDir . '/../lib/Comments/EntityCollection.php',
'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir . '/../lib/Comments/EntityTypeCollection.php',
'OCA\\DAV\\Comments\\RootCollection' => $baseDir . '/../lib/Comments/RootCollection.php',
'OCA\\DAV\\ConfigLexicon' => $baseDir . '/../lib/ConfigLexicon.php',
'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir . '/../lib/Connector/LegacyDAVACL.php',
'OCA\\DAV\\Connector\\LegacyPublicAuth' => $baseDir . '/../lib/Connector/LegacyPublicAuth.php',
'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
@@ -221,7 +221,6 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Comments\\EntityCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityCollection.php',
'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityTypeCollection.php',
'OCA\\DAV\\Comments\\RootCollection' => __DIR__ . '/..' . '/../lib/Comments/RootCollection.php',
'OCA\\DAV\\ConfigLexicon' => __DIR__ . '/..' . '/../lib/ConfigLexicon.php',
'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__ . '/..' . '/../lib/Connector/LegacyDAVACL.php',
'OCA\\DAV\\Connector\\LegacyPublicAuth' => __DIR__ . '/..' . '/../lib/Connector/LegacyPublicAuth.php',
'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
+36 -36
View File
@@ -73,7 +73,19 @@ OC.L10N.register(
"Where: %s" : "المكان: %s",
"%1$s via %2$s" : "%1$s عبر %2$s",
"In the past on %1$s for the entire day" : "في الماضي في %1$s لكامل اليوم",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["في %n دقيقة في %1$s لكامل اليوم","في %1$s for the entire day","في %n دقيقة في %1$s لكامل اليوم","في %n دقائق في %1$s لكامل اليوم","في %n دقيقة في %1$s لكامل اليوم","في %n دقيقة في %1$s لكامل اليوم"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["في %n ساعة في %1$s لكامل اليوم","في ساعة واحدة في %1$s لكامل اليوم","في %n ساعة في %1$s لكامل اليوم","في %n ساعات في %1$s لكامل اليوم","في %n ساعة في %1$s لكامل اليوم","في %n ساعة في %1$s لكل اليوم"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["في%n يوم في %1$s لكامل اليوم","في يوم واحد في %1$s لكامل اليوم","في %n يوم في %1$s لكامل اليوم","في %n أيام في %1$s لكامل ايوم","في %n يوم في %1$s لكامل اليوم","في %n يوم في %1$s لكامل اليوم"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["في %n أسبوع في %1$s طيلة اليوم","في أسبوع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم","في %n أسابيع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["في %n شهر في %1$s طيلة اليوم","في شهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم","في %n أشهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["في %n سنة في %1$s طيلة اليوم","في سنة في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم","في %n سنوات في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم"],
"In the past on %1$s between %2$s - %3$s" : "في الماضي في %1$s بين %2$s - %3$s",
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["في %n دقيقة في %1$s بين %2$s - %3$s","في دقيقة فقي %1$s بين %2$s - %3$s","في %n دقيقة فقي %1$s بين %2$s - %3$s","في %n دقائق في %1$s بين %2$s - %3$s","في %n دقيقة في %1$s بين %2$s - %3$s","في %n دقيقة في %1$s بين %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["في %n ساعة في %1$s بين %2$s - %3$s","في ساعة واحدة %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s","في %n ساعات في %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["في%n يوم في %1$s بين %2$s - %3$s","في يوم واحد في %1$s بين %2$s - %3$s","في %n يوم %1$s بين %2$s - %3$s","في %n أيام في %1$s بين %2$s - %3$s","في %n يوم في %1$s بين %2$s - %3$s","في %n يوم في %1$s بين %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["في %n أسبوع في %1$s بين %2$s - %3$s","في أسبوع واحد في %1$s بين %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s","في %n أسابيع في %1$s في %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["في %n شهر في %1$s بين %2$s - %3$s","في شهر واحد في %1$s بين %2$s - %3$s","في %n شهر في %1$s بين %2$s - %3$s","في %n شهور في %1$s بين %2$s - %3$s","في %n شهر في %1$s بين %2$s - %3$s","In %n months on %1$s between %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["في %n سنة في %1$s بين %2$s - %3$s","في سنة واحدة في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s","في %n سنوات في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s"],
"Could not generate when statement" : "يتعذّر تكوين عبارة \"متى\"",
"Every Day for the entire day" : "كل يوم لكامل اليوم",
"Every Day for the entire day until %1$s" : "كل يوم كامل اليوم حتى %1$s",
@@ -111,8 +123,26 @@ OC.L10N.register(
"On specific dates for the entire day until %1$s" : "في تورايخ محددة كامل اليوم حتى%1$s",
"On specific dates between %1$s - %2$s until %3$s" : "في تواريخ محددة بين %1$s - %2$s حتى %3$s",
"In the past on %1$s" : "في الماضي في %1$s",
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["في %n دقيقة في %1$s","في دقيقة واحدة في %1$s","في %n دقيقة في %1$s","في %n دقائق في %1$s","في %n دقيقة في %1$s","في %n دقيقة في %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["في %n ساعة في %1$s","في ساعة واحدة في%1$s","في %n ساعة في %1$s","في %n ساعات في %1$s","في %n ساعة في %1$s","في %n ساعة في %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["في %n يوم في %1$s","في يوم واحد في%1$s","في %n يوم في %1$s","في %n أيام في %1$s","في %n يوم في%1$s","في %n يوم في %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["في %n أسبوع في %1$s","في أسبوع واحد في %1$s","في %n أسبوع في %1$s","في %n أسابيع في %1$s","في %n أسبوع في %1$s","في %n أسبوع في %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["في %n شهر في %1$s","في شهر واحد في %1$s","في %n شهر في %1$s","في %n أشهر في %1$s","في %n شهر في %1$s","في %n شهر في %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["في %n سنة في %1$s","في سنة واحدة في %1$s","في %n سنة في %1$s","في %n سنوات في %1$s","في %n سنة في %1$s","في %n سنة في %1$s"],
"In the past on %1$s then on %2$s" : "في الماضي في %1$s ثم في %2$s",
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["في %n دقيقة في %1$s ثم في %2$s","في دقيقة واحدة في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s","فيب %n دقائق في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["في %n ساعة في %1$s ثم في %2$s","في ساعة واحدة في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s","في %n ساعات في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["في %n يوم في %1$s ثم في %2$s","في يوم واحد في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s","في %n أيام في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["في %n أسبوع في %1$s ثم في %2$s","في أسبوع واحد في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s","في %n أسابيع في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["في %n شهر في %1$s ثم في %2$s","في شهر واحد في %1$s ثم في %2$s","في %n شهر في %1$s ثم في %2$s","في %n شهور في %1$s ثم في %2$s","في %n شهر في %1$sثم في %2$s","في %n شهر في %1$s ثم في %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["في %n سنة في %1$s ثم في %2$s","في سنة واحدة في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s","في %n سنوات في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "في الماضي في %1$s ثم في %2$s و %3$s",
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["في %n دقيقة في %1$s ثم في %2$s و %3$s","في دقيقة واحدة في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s","في %n دقائق في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["في %n ساعة في %1$s ثم في %2$s و %3$s","في ساعة واحدة في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s","في %n ساعات في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["في %n يوم في %1$s ثم في %2$s و %3$s","في يوم واحد في %1$s ثم ف %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s","في %n أيام في %1$s ثم في %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["في %n أسبوع في %1$s ثم في %2$s و %3$s","في أسبوع واحد في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s","في %n أسابيع في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["في %n شهر في %1$s ثم في %2$s و %3$s","في شهر واحد في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s","في %n شهور في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["في%n سنة في %1$s ثم في %2$s و %3$s","في سنة واحدة في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s","في %n سنوات في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s"],
"Could not generate next recurrence statement" : "يتعذّر توليد عبارة التكرار التالي",
"Cancelled: %1$s" : "مُلغىً: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" تمّ إلغاؤه",
@@ -242,6 +272,8 @@ OC.L10N.register(
"Last day (inclusive)" : "آخر يوم (متضمن)",
"Out of office replacement (optional)" : "البديل لمن هو خارج المكتب (إختياري)",
"Name of the replacement" : "اسم البديل",
"No results." : "لا نتائج",
"Start typing." : "أبدا الكتابة",
"Short absence status" : "حالة الغياب القصير",
"Long absence Message" : "رسالة الغياب الطويل",
"Save" : "حفظ",
@@ -268,6 +300,10 @@ OC.L10N.register(
"Reset to default" : "اعادة تعيين الافتراضيات",
"Import contacts" : "استيراد جهات اتصال",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "استيراد ملف .cvf جديد سوف يؤدي إلى حذف جهات الاتصال التلقائية الحالية واستبدالها بالجديدة. هل ترغب في الاستمرار؟",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
"Configure your next absence period." : "تهيئة فترة غيابك القادمة.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "قم أيضاً بتنصيب {calendarappstoreopen} تطبيق التقويم {linkclose}, أو {calendardocopen} أوصل جهازك و موبايلك للمُزامنة ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "رجاءُ، تأكّد من الإعداد الصحيح لـ {emailopen} خادم البريد الالكتروني {linkclose}.",
"Calendar server" : "خادم التقويم",
@@ -280,47 +316,11 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "أرسل إشعارات للتذكير إلى المشتركين بالتقويم كذلك",
"Reminders are always sent to organizers and attendees." : "إشعارات التذكير يتم إرسالها دائماً إلى مُنظّم أو مُنظّمي الحدث و المستهدفين بحضوره.",
"Enable notifications for events via push" : "تمكين الإشعارات حول الأحداث عن طريق أسلوب دفع الإشعارات Push",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
"Configure your next absence period." : "تهيئة فترة غيابك القادمة.",
"There was an error updating your attendance status." : "حدث خطأ في تحديث حالة حضورك.",
"Please contact the organizer directly." : "يرجى الاتصال بالمنظم مباشرةً",
"Are you accepting the invitation?" : "هل تقبل الدعوة؟",
"Tentative" : "مبدئي",
"Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["في %n دقيقة في %1$s لكامل اليوم","في %1$s for the entire day","في %n دقيقة في %1$s لكامل اليوم","في %n دقائق في %1$s لكامل اليوم","في %n دقيقة في %1$s لكامل اليوم","في %n دقيقة في %1$s لكامل اليوم"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["في %n ساعة في %1$s لكامل اليوم","في ساعة واحدة في %1$s لكامل اليوم","في %n ساعة في %1$s لكامل اليوم","في %n ساعات في %1$s لكامل اليوم","في %n ساعة في %1$s لكامل اليوم","في %n ساعة في %1$s لكل اليوم"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["في%n يوم في %1$s لكامل اليوم","في يوم واحد في %1$s لكامل اليوم","في %n يوم في %1$s لكامل اليوم","في %n أيام في %1$s لكامل ايوم","في %n يوم في %1$s لكامل اليوم","في %n يوم في %1$s لكامل اليوم"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["في %n أسبوع في %1$s طيلة اليوم","في أسبوع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم","في %n أسابيع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["في %n شهر في %1$s طيلة اليوم","في شهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم","في %n أشهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["في %n سنة في %1$s طيلة اليوم","في سنة في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم","في %n سنوات في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["في %n دقيقة في %1$s بين %2$s - %3$s","في دقيقة فقي %1$s بين %2$s - %3$s","في %n دقيقة فقي %1$s بين %2$s - %3$s","في %n دقائق في %1$s بين %2$s - %3$s","في %n دقيقة في %1$s بين %2$s - %3$s","في %n دقيقة في %1$s بين %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["في %n ساعة في %1$s بين %2$s - %3$s","في ساعة واحدة %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s","في %n ساعات في %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["في%n يوم في %1$s بين %2$s - %3$s","في يوم واحد في %1$s بين %2$s - %3$s","في %n يوم %1$s بين %2$s - %3$s","في %n أيام في %1$s بين %2$s - %3$s","في %n يوم في %1$s بين %2$s - %3$s","في %n يوم في %1$s بين %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["في %n أسبوع في %1$s بين %2$s - %3$s","في أسبوع واحد في %1$s بين %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s","في %n أسابيع في %1$s في %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["في %n شهر في %1$s بين %2$s - %3$s","في شهر واحد في %1$s بين %2$s - %3$s","في %n شهر في %1$s بين %2$s - %3$s","في %n شهور في %1$s بين %2$s - %3$s","في %n شهر في %1$s بين %2$s - %3$s","In %n months on %1$s between %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["في %n سنة في %1$s بين %2$s - %3$s","في سنة واحدة في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s","في %n سنوات في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["في %n دقيقة في %1$s","في دقيقة واحدة في %1$s","في %n دقيقة في %1$s","في %n دقائق في %1$s","في %n دقيقة في %1$s","في %n دقيقة في %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["في %n ساعة في %1$s","في ساعة واحدة في%1$s","في %n ساعة في %1$s","في %n ساعات في %1$s","في %n ساعة في %1$s","في %n ساعة في %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["في %n يوم في %1$s","في يوم واحد في%1$s","في %n يوم في %1$s","في %n أيام في %1$s","في %n يوم في%1$s","في %n يوم في %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["في %n أسبوع في %1$s","في أسبوع واحد في %1$s","في %n أسبوع في %1$s","في %n أسابيع في %1$s","في %n أسبوع في %1$s","في %n أسبوع في %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["في %n شهر في %1$s","في شهر واحد في %1$s","في %n شهر في %1$s","في %n أشهر في %1$s","في %n شهر في %1$s","في %n شهر في %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["في %n سنة في %1$s","في سنة واحدة في %1$s","في %n سنة في %1$s","في %n سنوات في %1$s","في %n سنة في %1$s","في %n سنة في %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["في %n دقيقة في %1$s ثم في %2$s","في دقيقة واحدة في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s","فيب %n دقائق في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["في %n ساعة في %1$s ثم في %2$s","في ساعة واحدة في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s","في %n ساعات في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["في %n يوم في %1$s ثم في %2$s","في يوم واحد في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s","في %n أيام في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["في %n أسبوع في %1$s ثم في %2$s","في أسبوع واحد في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s","في %n أسابيع في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["في %n شهر في %1$s ثم في %2$s","في شهر واحد في %1$s ثم في %2$s","في %n شهر في %1$s ثم في %2$s","في %n شهور في %1$s ثم في %2$s","في %n شهر في %1$sثم في %2$s","في %n شهر في %1$s ثم في %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["في %n سنة في %1$s ثم في %2$s","في سنة واحدة في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s","في %n سنوات في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["في %n دقيقة في %1$s ثم في %2$s و %3$s","في دقيقة واحدة في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s","في %n دقائق في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["في %n ساعة في %1$s ثم في %2$s و %3$s","في ساعة واحدة في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s","في %n ساعات في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["في %n يوم في %1$s ثم في %2$s و %3$s","في يوم واحد في %1$s ثم ف %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s","في %n أيام في %1$s ثم في %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["في %n أسبوع في %1$s ثم في %2$s و %3$s","في أسبوع واحد في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s","في %n أسابيع في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["في %n شهر في %1$s ثم في %2$s و %3$s","في شهر واحد في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s","في %n شهور في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["في%n سنة في %1$s ثم في %2$s و %3$s","في سنة واحدة في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s","في %n سنوات في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s"],
"No results." : "لا نتائج",
"Start typing." : "أبدا الكتابة",
"Time zone:" : "منطقة زمنية:"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
+36 -36
View File
@@ -71,7 +71,19 @@
"Where: %s" : "المكان: %s",
"%1$s via %2$s" : "%1$s عبر %2$s",
"In the past on %1$s for the entire day" : "في الماضي في %1$s لكامل اليوم",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["في %n دقيقة في %1$s لكامل اليوم","في %1$s for the entire day","في %n دقيقة في %1$s لكامل اليوم","في %n دقائق في %1$s لكامل اليوم","في %n دقيقة في %1$s لكامل اليوم","في %n دقيقة في %1$s لكامل اليوم"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["في %n ساعة في %1$s لكامل اليوم","في ساعة واحدة في %1$s لكامل اليوم","في %n ساعة في %1$s لكامل اليوم","في %n ساعات في %1$s لكامل اليوم","في %n ساعة في %1$s لكامل اليوم","في %n ساعة في %1$s لكل اليوم"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["في%n يوم في %1$s لكامل اليوم","في يوم واحد في %1$s لكامل اليوم","في %n يوم في %1$s لكامل اليوم","في %n أيام في %1$s لكامل ايوم","في %n يوم في %1$s لكامل اليوم","في %n يوم في %1$s لكامل اليوم"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["في %n أسبوع في %1$s طيلة اليوم","في أسبوع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم","في %n أسابيع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["في %n شهر في %1$s طيلة اليوم","في شهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم","في %n أشهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["في %n سنة في %1$s طيلة اليوم","في سنة في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم","في %n سنوات في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم"],
"In the past on %1$s between %2$s - %3$s" : "في الماضي في %1$s بين %2$s - %3$s",
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["في %n دقيقة في %1$s بين %2$s - %3$s","في دقيقة فقي %1$s بين %2$s - %3$s","في %n دقيقة فقي %1$s بين %2$s - %3$s","في %n دقائق في %1$s بين %2$s - %3$s","في %n دقيقة في %1$s بين %2$s - %3$s","في %n دقيقة في %1$s بين %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["في %n ساعة في %1$s بين %2$s - %3$s","في ساعة واحدة %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s","في %n ساعات في %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["في%n يوم في %1$s بين %2$s - %3$s","في يوم واحد في %1$s بين %2$s - %3$s","في %n يوم %1$s بين %2$s - %3$s","في %n أيام في %1$s بين %2$s - %3$s","في %n يوم في %1$s بين %2$s - %3$s","في %n يوم في %1$s بين %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["في %n أسبوع في %1$s بين %2$s - %3$s","في أسبوع واحد في %1$s بين %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s","في %n أسابيع في %1$s في %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["في %n شهر في %1$s بين %2$s - %3$s","في شهر واحد في %1$s بين %2$s - %3$s","في %n شهر في %1$s بين %2$s - %3$s","في %n شهور في %1$s بين %2$s - %3$s","في %n شهر في %1$s بين %2$s - %3$s","In %n months on %1$s between %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["في %n سنة في %1$s بين %2$s - %3$s","في سنة واحدة في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s","في %n سنوات في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s"],
"Could not generate when statement" : "يتعذّر تكوين عبارة \"متى\"",
"Every Day for the entire day" : "كل يوم لكامل اليوم",
"Every Day for the entire day until %1$s" : "كل يوم كامل اليوم حتى %1$s",
@@ -109,8 +121,26 @@
"On specific dates for the entire day until %1$s" : "في تورايخ محددة كامل اليوم حتى%1$s",
"On specific dates between %1$s - %2$s until %3$s" : "في تواريخ محددة بين %1$s - %2$s حتى %3$s",
"In the past on %1$s" : "في الماضي في %1$s",
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["في %n دقيقة في %1$s","في دقيقة واحدة في %1$s","في %n دقيقة في %1$s","في %n دقائق في %1$s","في %n دقيقة في %1$s","في %n دقيقة في %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["في %n ساعة في %1$s","في ساعة واحدة في%1$s","في %n ساعة في %1$s","في %n ساعات في %1$s","في %n ساعة في %1$s","في %n ساعة في %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["في %n يوم في %1$s","في يوم واحد في%1$s","في %n يوم في %1$s","في %n أيام في %1$s","في %n يوم في%1$s","في %n يوم في %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["في %n أسبوع في %1$s","في أسبوع واحد في %1$s","في %n أسبوع في %1$s","في %n أسابيع في %1$s","في %n أسبوع في %1$s","في %n أسبوع في %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["في %n شهر في %1$s","في شهر واحد في %1$s","في %n شهر في %1$s","في %n أشهر في %1$s","في %n شهر في %1$s","في %n شهر في %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["في %n سنة في %1$s","في سنة واحدة في %1$s","في %n سنة في %1$s","في %n سنوات في %1$s","في %n سنة في %1$s","في %n سنة في %1$s"],
"In the past on %1$s then on %2$s" : "في الماضي في %1$s ثم في %2$s",
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["في %n دقيقة في %1$s ثم في %2$s","في دقيقة واحدة في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s","فيب %n دقائق في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["في %n ساعة في %1$s ثم في %2$s","في ساعة واحدة في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s","في %n ساعات في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["في %n يوم في %1$s ثم في %2$s","في يوم واحد في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s","في %n أيام في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["في %n أسبوع في %1$s ثم في %2$s","في أسبوع واحد في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s","في %n أسابيع في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["في %n شهر في %1$s ثم في %2$s","في شهر واحد في %1$s ثم في %2$s","في %n شهر في %1$s ثم في %2$s","في %n شهور في %1$s ثم في %2$s","في %n شهر في %1$sثم في %2$s","في %n شهر في %1$s ثم في %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["في %n سنة في %1$s ثم في %2$s","في سنة واحدة في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s","في %n سنوات في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "في الماضي في %1$s ثم في %2$s و %3$s",
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["في %n دقيقة في %1$s ثم في %2$s و %3$s","في دقيقة واحدة في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s","في %n دقائق في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["في %n ساعة في %1$s ثم في %2$s و %3$s","في ساعة واحدة في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s","في %n ساعات في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["في %n يوم في %1$s ثم في %2$s و %3$s","في يوم واحد في %1$s ثم ف %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s","في %n أيام في %1$s ثم في %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["في %n أسبوع في %1$s ثم في %2$s و %3$s","في أسبوع واحد في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s","في %n أسابيع في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["في %n شهر في %1$s ثم في %2$s و %3$s","في شهر واحد في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s","في %n شهور في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["في%n سنة في %1$s ثم في %2$s و %3$s","في سنة واحدة في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s","في %n سنوات في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s"],
"Could not generate next recurrence statement" : "يتعذّر توليد عبارة التكرار التالي",
"Cancelled: %1$s" : "مُلغىً: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" تمّ إلغاؤه",
@@ -240,6 +270,8 @@
"Last day (inclusive)" : "آخر يوم (متضمن)",
"Out of office replacement (optional)" : "البديل لمن هو خارج المكتب (إختياري)",
"Name of the replacement" : "اسم البديل",
"No results." : "لا نتائج",
"Start typing." : "أبدا الكتابة",
"Short absence status" : "حالة الغياب القصير",
"Long absence Message" : "رسالة الغياب الطويل",
"Save" : "حفظ",
@@ -266,6 +298,10 @@
"Reset to default" : "اعادة تعيين الافتراضيات",
"Import contacts" : "استيراد جهات اتصال",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "استيراد ملف .cvf جديد سوف يؤدي إلى حذف جهات الاتصال التلقائية الحالية واستبدالها بالجديدة. هل ترغب في الاستمرار؟",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
"Configure your next absence period." : "تهيئة فترة غيابك القادمة.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "قم أيضاً بتنصيب {calendarappstoreopen} تطبيق التقويم {linkclose}, أو {calendardocopen} أوصل جهازك و موبايلك للمُزامنة ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "رجاءُ، تأكّد من الإعداد الصحيح لـ {emailopen} خادم البريد الالكتروني {linkclose}.",
"Calendar server" : "خادم التقويم",
@@ -278,47 +314,11 @@
"Send reminder notifications to calendar sharees as well" : "أرسل إشعارات للتذكير إلى المشتركين بالتقويم كذلك",
"Reminders are always sent to organizers and attendees." : "إشعارات التذكير يتم إرسالها دائماً إلى مُنظّم أو مُنظّمي الحدث و المستهدفين بحضوره.",
"Enable notifications for events via push" : "تمكين الإشعارات حول الأحداث عن طريق أسلوب دفع الإشعارات Push",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
"Configure your next absence period." : "تهيئة فترة غيابك القادمة.",
"There was an error updating your attendance status." : "حدث خطأ في تحديث حالة حضورك.",
"Please contact the organizer directly." : "يرجى الاتصال بالمنظم مباشرةً",
"Are you accepting the invitation?" : "هل تقبل الدعوة؟",
"Tentative" : "مبدئي",
"Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["في %n دقيقة في %1$s لكامل اليوم","في %1$s for the entire day","في %n دقيقة في %1$s لكامل اليوم","في %n دقائق في %1$s لكامل اليوم","في %n دقيقة في %1$s لكامل اليوم","في %n دقيقة في %1$s لكامل اليوم"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["في %n ساعة في %1$s لكامل اليوم","في ساعة واحدة في %1$s لكامل اليوم","في %n ساعة في %1$s لكامل اليوم","في %n ساعات في %1$s لكامل اليوم","في %n ساعة في %1$s لكامل اليوم","في %n ساعة في %1$s لكل اليوم"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["في%n يوم في %1$s لكامل اليوم","في يوم واحد في %1$s لكامل اليوم","في %n يوم في %1$s لكامل اليوم","في %n أيام في %1$s لكامل ايوم","في %n يوم في %1$s لكامل اليوم","في %n يوم في %1$s لكامل اليوم"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["في %n أسبوع في %1$s طيلة اليوم","في أسبوع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم","في %n أسابيع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم","في %n أسبوع في %1$s طيلة اليوم"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["في %n شهر في %1$s طيلة اليوم","في شهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم","في %n أشهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم","في %n شهر في %1$s طيلة اليوم"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["في %n سنة في %1$s طيلة اليوم","في سنة في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم","في %n سنوات في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم","في %n سنة في %1$s طيلة اليوم"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["في %n دقيقة في %1$s بين %2$s - %3$s","في دقيقة فقي %1$s بين %2$s - %3$s","في %n دقيقة فقي %1$s بين %2$s - %3$s","في %n دقائق في %1$s بين %2$s - %3$s","في %n دقيقة في %1$s بين %2$s - %3$s","في %n دقيقة في %1$s بين %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["في %n ساعة في %1$s بين %2$s - %3$s","في ساعة واحدة %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s","في %n ساعات في %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s","في %n ساعة في %1$s بين %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["في%n يوم في %1$s بين %2$s - %3$s","في يوم واحد في %1$s بين %2$s - %3$s","في %n يوم %1$s بين %2$s - %3$s","في %n أيام في %1$s بين %2$s - %3$s","في %n يوم في %1$s بين %2$s - %3$s","في %n يوم في %1$s بين %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["في %n أسبوع في %1$s بين %2$s - %3$s","في أسبوع واحد في %1$s بين %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s","في %n أسابيع في %1$s في %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s","في %n أسبوع في %1$s بين %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["في %n شهر في %1$s بين %2$s - %3$s","في شهر واحد في %1$s بين %2$s - %3$s","في %n شهر في %1$s بين %2$s - %3$s","في %n شهور في %1$s بين %2$s - %3$s","في %n شهر في %1$s بين %2$s - %3$s","In %n months on %1$s between %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["في %n سنة في %1$s بين %2$s - %3$s","في سنة واحدة في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s","في %n سنوات في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s","في %n سنة في %1$s بين %2$s - %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["في %n دقيقة في %1$s","في دقيقة واحدة في %1$s","في %n دقيقة في %1$s","في %n دقائق في %1$s","في %n دقيقة في %1$s","في %n دقيقة في %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["في %n ساعة في %1$s","في ساعة واحدة في%1$s","في %n ساعة في %1$s","في %n ساعات في %1$s","في %n ساعة في %1$s","في %n ساعة في %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["في %n يوم في %1$s","في يوم واحد في%1$s","في %n يوم في %1$s","في %n أيام في %1$s","في %n يوم في%1$s","في %n يوم في %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["في %n أسبوع في %1$s","في أسبوع واحد في %1$s","في %n أسبوع في %1$s","في %n أسابيع في %1$s","في %n أسبوع في %1$s","في %n أسبوع في %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["في %n شهر في %1$s","في شهر واحد في %1$s","في %n شهر في %1$s","في %n أشهر في %1$s","في %n شهر في %1$s","في %n شهر في %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["في %n سنة في %1$s","في سنة واحدة في %1$s","في %n سنة في %1$s","في %n سنوات في %1$s","في %n سنة في %1$s","في %n سنة في %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["في %n دقيقة في %1$s ثم في %2$s","في دقيقة واحدة في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s","فيب %n دقائق في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s","في %n دقيقة في %1$s ثم في %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["في %n ساعة في %1$s ثم في %2$s","في ساعة واحدة في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s","في %n ساعات في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s","في %n ساعة في %1$s ثم في %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["في %n يوم في %1$s ثم في %2$s","في يوم واحد في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s","في %n أيام في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s","في %n يوم في %1$s ثم في %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["في %n أسبوع في %1$s ثم في %2$s","في أسبوع واحد في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s","في %n أسابيع في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s","في %n أسبوع في %1$s ثم في %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["في %n شهر في %1$s ثم في %2$s","في شهر واحد في %1$s ثم في %2$s","في %n شهر في %1$s ثم في %2$s","في %n شهور في %1$s ثم في %2$s","في %n شهر في %1$sثم في %2$s","في %n شهر في %1$s ثم في %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["في %n سنة في %1$s ثم في %2$s","في سنة واحدة في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s","في %n سنوات في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s","في %n سنة في %1$s ثم في %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["في %n دقيقة في %1$s ثم في %2$s و %3$s","في دقيقة واحدة في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s","في %n دقائق في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s","في %n دقيقة في %1$s ثم في %2$s و %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["في %n ساعة في %1$s ثم في %2$s و %3$s","في ساعة واحدة في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s","في %n ساعات في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s","في %n ساعة في %1$s ثم في %2$s و %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["في %n يوم في %1$s ثم في %2$s و %3$s","في يوم واحد في %1$s ثم ف %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s","في %n أيام في %1$s ثم في %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s","في %n يوم في %1$s ثم في %2$s و %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["في %n أسبوع في %1$s ثم في %2$s و %3$s","في أسبوع واحد في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s","في %n أسابيع في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s","في %n أسبوع في %1$s ثم في %2$s و %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["في %n شهر في %1$s ثم في %2$s و %3$s","في شهر واحد في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s","في %n شهور في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s","في %n شهر في %1$s ثم في %2$s و %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["في%n سنة في %1$s ثم في %2$s و %3$s","في سنة واحدة في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s","في %n سنوات في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s","في %n سنة في %1$s ثم في %2$s و %3$s"],
"No results." : "لا نتائج",
"Start typing." : "أبدا الكتابة",
"Time zone:" : "منطقة زمنية:"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
}
+4 -4
View File
@@ -198,6 +198,10 @@ OC.L10N.register(
"Import" : "Importa",
"Error while saving settings" : "Hebo un error mentanto se guardaba la configuración",
"Reset to default" : "Reafitar los valores",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configura'l próximu periodu d'ausencia",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instala tamién l'{calendarappstoreopen}aplicación Calendariu{linkclose} o {calendardocopen}conecta'l veceru pa ordenadores y/o móviles pa sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrate de que configuresti afayadizamente'l {emailopen}sirvidor de corréu electrónicu{linkclose}.",
"Calendar server" : "Sirvidor de calendarios",
@@ -210,10 +214,6 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Unvia tamién avisos de recordatoriu pa les persones coles que se compartiere'l calendariu",
"Reminders are always sent to organizers and attendees." : "Los recordatorios únviense siempres a organizadores y asistentes",
"Enable notifications for events via push" : "Acriva los avisos automáticos pa los eventos",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configura'l próximu periodu d'ausencia",
"There was an error updating your attendance status." : "Hebo un error al anovar l'estáu de l'asistencia.",
"Please contact the organizer directly." : "Ponte en contautu direutamente cola organización.",
"Are you accepting the invitation?" : "¿Aceptes la invitación?",
+4 -4
View File
@@ -196,6 +196,10 @@
"Import" : "Importa",
"Error while saving settings" : "Hebo un error mentanto se guardaba la configuración",
"Reset to default" : "Reafitar los valores",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configura'l próximu periodu d'ausencia",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instala tamién l'{calendarappstoreopen}aplicación Calendariu{linkclose} o {calendardocopen}conecta'l veceru pa ordenadores y/o móviles pa sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrate de que configuresti afayadizamente'l {emailopen}sirvidor de corréu electrónicu{linkclose}.",
"Calendar server" : "Sirvidor de calendarios",
@@ -208,10 +212,6 @@
"Send reminder notifications to calendar sharees as well" : "Unvia tamién avisos de recordatoriu pa les persones coles que se compartiere'l calendariu",
"Reminders are always sent to organizers and attendees." : "Los recordatorios únviense siempres a organizadores y asistentes",
"Enable notifications for events via push" : "Acriva los avisos automáticos pa los eventos",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configura'l próximu periodu d'ausencia",
"There was an error updating your attendance status." : "Hebo un error al anovar l'estáu de l'asistencia.",
"Please contact the organizer directly." : "Ponte en contautu direutamente cola organización.",
"Are you accepting the invitation?" : "¿Aceptes la invitación?",
+3 -4
View File
@@ -186,12 +186,14 @@ OC.L10N.register(
"Delete slot" : "Изтриване на слот",
"No working hours set" : "Няма зададено работно време",
"Add slot" : "Добавяне на слот",
"Weekdays" : "Делнични дни",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично задаване на потребителският статус на „Не безпокойте“ извън достъпността, за заглушаване на всички известия.",
"Cancel" : "Отказ",
"Import" : "Импортиране /внасяне/",
"Error while saving settings" : "Грешка при запазване на настройките",
"Reset to default" : "Настройки по подразбиране",
"Availability" : "Работно време",
"Absence" : "Отсъствия",
"Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Също така инсталирайте приложението {calendarappstoreopen}Календар{linkclose} или {calendardocopen}, свържете вашия настолен компютър и мобилен телефон за синхронизиране ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Моля, уверете се, че сте настроили правилно {emailopen} имейл сървъра{linkclose}.",
"Calendar server" : "Сървър на календар",
@@ -204,9 +206,6 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Изпращане на известия за напомняния и до споделящите календар",
"Reminders are always sent to organizers and attendees." : "Напомнянията винаги се изпращат до организаторите и присъстващите.",
"Enable notifications for events via push" : "Активиране на известията за събития чрез push",
"Availability" : "Работно време",
"Absence" : "Отсъствия",
"Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"There was an error updating your attendance status." : "Възникна грешка при актуализиране на състоянието на присъствието Ви.",
"Please contact the organizer directly." : "Моля, свържете се директно с организатора.",
"Are you accepting the invitation?" : "Приемате ли поканата?",
+3 -4
View File
@@ -184,12 +184,14 @@
"Delete slot" : "Изтриване на слот",
"No working hours set" : "Няма зададено работно време",
"Add slot" : "Добавяне на слот",
"Weekdays" : "Делнични дни",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично задаване на потребителският статус на „Не безпокойте“ извън достъпността, за заглушаване на всички известия.",
"Cancel" : "Отказ",
"Import" : "Импортиране /внасяне/",
"Error while saving settings" : "Грешка при запазване на настройките",
"Reset to default" : "Настройки по подразбиране",
"Availability" : "Работно време",
"Absence" : "Отсъствия",
"Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Също така инсталирайте приложението {calendarappstoreopen}Календар{linkclose} или {calendardocopen}, свържете вашия настолен компютър и мобилен телефон за синхронизиране ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Моля, уверете се, че сте настроили правилно {emailopen} имейл сървъра{linkclose}.",
"Calendar server" : "Сървър на календар",
@@ -202,9 +204,6 @@
"Send reminder notifications to calendar sharees as well" : "Изпращане на известия за напомняния и до споделящите календар",
"Reminders are always sent to organizers and attendees." : "Напомнянията винаги се изпращат до организаторите и присъстващите.",
"Enable notifications for events via push" : "Активиране на известията за събития чрез push",
"Availability" : "Работно време",
"Absence" : "Отсъствия",
"Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"There was an error updating your attendance status." : "Възникна грешка при актуализиране на състоянието на присъствието Ви.",
"Please contact the organizer directly." : "Моля, свържете се директно с организатора.",
"Are you accepting the invitation?" : "Приемате ли поканата?",
+36 -36
View File
@@ -73,7 +73,19 @@ OC.L10N.register(
"Where: %s" : "Ubicació: %s",
"%1$s via %2$s" : "%1$s mitjançant %2$s",
"In the past on %1$s for the entire day" : "En el passat a %1$s durant tot el dia",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["En un minut a %1$s durant tot el dia","En %n minuts a %1$s durant tot el dia"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["En una hora a %1$s durant tot el dia","En %n hores a %1$s durant tot el dia"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["En un dia a %1$s durant tot el dia","En %n dies a %1$s durant tot el dia"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["En una setmana a %1$s durant tot el dia","En %n setmanes a %1$s durant tot el dia"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["En un mes el %1$s durant tot el dia","En %n mesos el %1$s durant tot el dia"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["En un any a %1$s durant tot el dia","En %n anys a %1$s durant tot el dia"],
"In the past on %1$s between %2$s - %3$s" : "En el passat el dia %1$s entre les %2$s i les %3$s",
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["D'aquí a un minut el %1$s entre les %2$s i les %3$s","Daquí a %n minuts el %1$s entre les %2$s i les %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["D'aquí a una hora el %1$s entre les %2$s i les %3$s","Daquí a %n hores el %1$s entre les %2$s i les %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["En un dia el %1$s entre les %2$s i les %3$s","En %n dies el %1$s entre les %2$s i les %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["En una setmana el %1$s entre les %2$s i les %3$s","En %n setmanes el %1$s entre les %2$s i les %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["D'aquí a un mes el %1$s entre les %2$s i les %3$s","Daquí a %n mesos el %1$s entre les %2$s i les %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["D'aquí a un any el %1$s entre les %2$s i les %3$s","Daquí %n anys el %1$s entre les %2$s i les %3$s"],
"Could not generate when statement" : "No s'ha pogut generar la declaració de quan",
"Every Day for the entire day" : "Cada dia durant tot el dia",
"Every Day for the entire day until %1$s" : "Cada dia durant tot el dia fins a les %1$s",
@@ -111,8 +123,26 @@ OC.L10N.register(
"On specific dates for the entire day until %1$s" : "En dates específiques durant tot el dia fins a les %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "En dates específiques entre les %1$s i les %2$s fins a %3$s",
"In the past on %1$s" : "En el passat a %1$s",
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["En un minut a %1$s durant tot el dia","En %n minuts a %1$s durant tot el dia"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["D'aquí a una hora a %1$s","Daquí %n hores a %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["En un dia el %1$s","En %n dies el %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["D'aquí a una setmana el %1$s","Daquí %n setmanes el %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["D'aquí a un mes el %1$s","Daquí %n mesos el %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["D'aquí a un any el %1$s","Daquí %n anys el %1$s"],
"In the past on %1$s then on %2$s" : "En el passat el %1$s i després el %2$s",
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["D'aquí a un minut el %1$s i després el %2$s","Daquí a %n minuts el %1$s i després el %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["D'aquí a una hora el %1$s i després el %2$s","Daquí %n hores el %1$s i després el %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["En un dia el %1$s i després el %2$s","En %n dies el %1$s i després el %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["D'aquí a una setmana el %1$s i després el %2$s","Daquí %n setmanes el %1$s i després el %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["D'aquí a un mes el %1$s i després el %2$s","Daquí %n mesos el %1$s i després el %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["D'aquí a un any el %1$s i després el %2$s","Daquí %n anys el %1$s i després el %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "En el passat el %1$s, després el %2$s i el %3$s",
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["D'aquí a un minut el %1$s i després el %2$s i el %3$s","Daquí a %n minuts el %1$s i després el %2$s i el %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["D'aquí a una hora el %1$s i després el %2$s i el %3$s","Daquí a %n hores el %1$s i després el %2$s i el %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["D'aquí a un dia el %1$s i després el %2$s i el %3$s","Daquí a %n dies el %1$s i després el %2$s i el %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["D'aquí a una setmana el %1$s i després el %2$s i el %3$s","Daquí a %n setmanes el %1$s i després el %2$s i el %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["D'aquí a un mes el %1$s i després el %2$s i el %3$s","Daquí a %n mesos el %1$s i després el %2$s i el %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["D'aquí a un any el %1$s i després el %2$s i el %3$s","Daquí a %n anys el %1$s i després el %2$s i el %3$s"],
"Could not generate next recurrence statement" : "No s'ha pogut generar la següent instrucció de recurrència",
"Cancelled: %1$s" : "S'ha cancel·lat: %1$s",
"\"%1$s\" has been canceled" : "S'ha cancel·lat «%1$s»",
@@ -242,6 +272,8 @@ OC.L10N.register(
"Last day (inclusive)" : "Darrer dia (inclòs)",
"Out of office replacement (optional)" : "Substitució fora de l'oficina (opcional)",
"Name of the replacement" : "Nom del substitut",
"No results." : "Cap resultat.",
"Start typing." : "Comença a escriure.",
"Short absence status" : "Estat d'absència breu",
"Long absence Message" : "Missatge d'absència llarga",
"Save" : "Desa",
@@ -261,6 +293,10 @@ OC.L10N.register(
"Import" : "Importa",
"Error while saving settings" : "S'ha produït un error en desar els paràmetres",
"Reset to default" : "Reinicialitza els valors per defecte",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
"Configure your next absence period." : "Configureu el pròxim període d'absència.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instal·leu també {calendarappstoreopen}l'aplicació Calendari{linkclose} o {calendardocopen}connecteu el vostre dispositiu d'escriptori i el mòbil per a sincronitzar-los ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Assegureu-vos de configurar correctament el{emailopen}servidor de correu electrònic{linkclose}.",
"Calendar server" : "Servidor de calendari",
@@ -273,47 +309,11 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Envia també notificacions de recordatori als usuaris amb qui s'ha compartit el calendari",
"Reminders are always sent to organizers and attendees." : "Sempre s'envien recordatoris als organitzadors i als assistents.",
"Enable notifications for events via push" : "Habilita les notificacions automàtiques per als esdeveniments",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
"Configure your next absence period." : "Configureu el pròxim període d'absència.",
"There was an error updating your attendance status." : "S'ha produït un error en actualitzar l'estat d'assistència.",
"Please contact the organizer directly." : "Contacteu amb l'organització directament.",
"Are you accepting the invitation?" : "Accepteu la invitació?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència.",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["En un minut a %1$s durant tot el dia","En %n minuts a %1$s durant tot el dia"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["En una hora a %1$s durant tot el dia","En %n hores a %1$s durant tot el dia"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["En un dia a %1$s durant tot el dia","En %n dies a %1$s durant tot el dia"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["En una setmana a %1$s durant tot el dia","En %n setmanes a %1$s durant tot el dia"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["En un mes el %1$s durant tot el dia","En %n mesos el %1$s durant tot el dia"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["En un any a %1$s durant tot el dia","En %n anys a %1$s durant tot el dia"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["D'aquí a un minut el %1$s entre les %2$s i les %3$s","Daquí a %n minuts el %1$s entre les %2$s i les %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["D'aquí a una hora el %1$s entre les %2$s i les %3$s","Daquí a %n hores el %1$s entre les %2$s i les %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["En un dia el %1$s entre les %2$s i les %3$s","En %n dies el %1$s entre les %2$s i les %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["En una setmana el %1$s entre les %2$s i les %3$s","En %n setmanes el %1$s entre les %2$s i les %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["D'aquí a un mes el %1$s entre les %2$s i les %3$s","Daquí a %n mesos el %1$s entre les %2$s i les %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["D'aquí a un any el %1$s entre les %2$s i les %3$s","Daquí %n anys el %1$s entre les %2$s i les %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["En un minut a %1$s durant tot el dia","En %n minuts a %1$s durant tot el dia"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["D'aquí a una hora a %1$s","Daquí %n hores a %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["En un dia el %1$s","En %n dies el %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["D'aquí a una setmana el %1$s","Daquí %n setmanes el %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["D'aquí a un mes el %1$s","Daquí %n mesos el %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["D'aquí a un any el %1$s","Daquí %n anys el %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["D'aquí a un minut el %1$s i després el %2$s","Daquí a %n minuts el %1$s i després el %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["D'aquí a una hora el %1$s i després el %2$s","Daquí %n hores el %1$s i després el %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["En un dia el %1$s i després el %2$s","En %n dies el %1$s i després el %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["D'aquí a una setmana el %1$s i després el %2$s","Daquí %n setmanes el %1$s i després el %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["D'aquí a un mes el %1$s i després el %2$s","Daquí %n mesos el %1$s i després el %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["D'aquí a un any el %1$s i després el %2$s","Daquí %n anys el %1$s i després el %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["D'aquí a un minut el %1$s i després el %2$s i el %3$s","Daquí a %n minuts el %1$s i després el %2$s i el %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["D'aquí a una hora el %1$s i després el %2$s i el %3$s","Daquí a %n hores el %1$s i després el %2$s i el %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["D'aquí a un dia el %1$s i després el %2$s i el %3$s","Daquí a %n dies el %1$s i després el %2$s i el %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["D'aquí a una setmana el %1$s i després el %2$s i el %3$s","Daquí a %n setmanes el %1$s i després el %2$s i el %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["D'aquí a un mes el %1$s i després el %2$s i el %3$s","Daquí a %n mesos el %1$s i després el %2$s i el %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["D'aquí a un any el %1$s i després el %2$s i el %3$s","Daquí a %n anys el %1$s i després el %2$s i el %3$s"],
"No results." : "Cap resultat.",
"Start typing." : "Comença a escriure.",
"Time zone:" : "Fus horari:"
},
"nplurals=2; plural=(n != 1);");
+36 -36
View File
@@ -71,7 +71,19 @@
"Where: %s" : "Ubicació: %s",
"%1$s via %2$s" : "%1$s mitjançant %2$s",
"In the past on %1$s for the entire day" : "En el passat a %1$s durant tot el dia",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["En un minut a %1$s durant tot el dia","En %n minuts a %1$s durant tot el dia"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["En una hora a %1$s durant tot el dia","En %n hores a %1$s durant tot el dia"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["En un dia a %1$s durant tot el dia","En %n dies a %1$s durant tot el dia"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["En una setmana a %1$s durant tot el dia","En %n setmanes a %1$s durant tot el dia"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["En un mes el %1$s durant tot el dia","En %n mesos el %1$s durant tot el dia"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["En un any a %1$s durant tot el dia","En %n anys a %1$s durant tot el dia"],
"In the past on %1$s between %2$s - %3$s" : "En el passat el dia %1$s entre les %2$s i les %3$s",
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["D'aquí a un minut el %1$s entre les %2$s i les %3$s","Daquí a %n minuts el %1$s entre les %2$s i les %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["D'aquí a una hora el %1$s entre les %2$s i les %3$s","Daquí a %n hores el %1$s entre les %2$s i les %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["En un dia el %1$s entre les %2$s i les %3$s","En %n dies el %1$s entre les %2$s i les %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["En una setmana el %1$s entre les %2$s i les %3$s","En %n setmanes el %1$s entre les %2$s i les %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["D'aquí a un mes el %1$s entre les %2$s i les %3$s","Daquí a %n mesos el %1$s entre les %2$s i les %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["D'aquí a un any el %1$s entre les %2$s i les %3$s","Daquí %n anys el %1$s entre les %2$s i les %3$s"],
"Could not generate when statement" : "No s'ha pogut generar la declaració de quan",
"Every Day for the entire day" : "Cada dia durant tot el dia",
"Every Day for the entire day until %1$s" : "Cada dia durant tot el dia fins a les %1$s",
@@ -109,8 +121,26 @@
"On specific dates for the entire day until %1$s" : "En dates específiques durant tot el dia fins a les %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "En dates específiques entre les %1$s i les %2$s fins a %3$s",
"In the past on %1$s" : "En el passat a %1$s",
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["En un minut a %1$s durant tot el dia","En %n minuts a %1$s durant tot el dia"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["D'aquí a una hora a %1$s","Daquí %n hores a %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["En un dia el %1$s","En %n dies el %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["D'aquí a una setmana el %1$s","Daquí %n setmanes el %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["D'aquí a un mes el %1$s","Daquí %n mesos el %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["D'aquí a un any el %1$s","Daquí %n anys el %1$s"],
"In the past on %1$s then on %2$s" : "En el passat el %1$s i després el %2$s",
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["D'aquí a un minut el %1$s i després el %2$s","Daquí a %n minuts el %1$s i després el %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["D'aquí a una hora el %1$s i després el %2$s","Daquí %n hores el %1$s i després el %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["En un dia el %1$s i després el %2$s","En %n dies el %1$s i després el %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["D'aquí a una setmana el %1$s i després el %2$s","Daquí %n setmanes el %1$s i després el %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["D'aquí a un mes el %1$s i després el %2$s","Daquí %n mesos el %1$s i després el %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["D'aquí a un any el %1$s i després el %2$s","Daquí %n anys el %1$s i després el %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "En el passat el %1$s, després el %2$s i el %3$s",
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["D'aquí a un minut el %1$s i després el %2$s i el %3$s","Daquí a %n minuts el %1$s i després el %2$s i el %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["D'aquí a una hora el %1$s i després el %2$s i el %3$s","Daquí a %n hores el %1$s i després el %2$s i el %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["D'aquí a un dia el %1$s i després el %2$s i el %3$s","Daquí a %n dies el %1$s i després el %2$s i el %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["D'aquí a una setmana el %1$s i després el %2$s i el %3$s","Daquí a %n setmanes el %1$s i després el %2$s i el %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["D'aquí a un mes el %1$s i després el %2$s i el %3$s","Daquí a %n mesos el %1$s i després el %2$s i el %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["D'aquí a un any el %1$s i després el %2$s i el %3$s","Daquí a %n anys el %1$s i després el %2$s i el %3$s"],
"Could not generate next recurrence statement" : "No s'ha pogut generar la següent instrucció de recurrència",
"Cancelled: %1$s" : "S'ha cancel·lat: %1$s",
"\"%1$s\" has been canceled" : "S'ha cancel·lat «%1$s»",
@@ -240,6 +270,8 @@
"Last day (inclusive)" : "Darrer dia (inclòs)",
"Out of office replacement (optional)" : "Substitució fora de l'oficina (opcional)",
"Name of the replacement" : "Nom del substitut",
"No results." : "Cap resultat.",
"Start typing." : "Comença a escriure.",
"Short absence status" : "Estat d'absència breu",
"Long absence Message" : "Missatge d'absència llarga",
"Save" : "Desa",
@@ -259,6 +291,10 @@
"Import" : "Importa",
"Error while saving settings" : "S'ha produït un error en desar els paràmetres",
"Reset to default" : "Reinicialitza els valors per defecte",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
"Configure your next absence period." : "Configureu el pròxim període d'absència.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instal·leu també {calendarappstoreopen}l'aplicació Calendari{linkclose} o {calendardocopen}connecteu el vostre dispositiu d'escriptori i el mòbil per a sincronitzar-los ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Assegureu-vos de configurar correctament el{emailopen}servidor de correu electrònic{linkclose}.",
"Calendar server" : "Servidor de calendari",
@@ -271,47 +307,11 @@
"Send reminder notifications to calendar sharees as well" : "Envia també notificacions de recordatori als usuaris amb qui s'ha compartit el calendari",
"Reminders are always sent to organizers and attendees." : "Sempre s'envien recordatoris als organitzadors i als assistents.",
"Enable notifications for events via push" : "Habilita les notificacions automàtiques per als esdeveniments",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
"Configure your next absence period." : "Configureu el pròxim període d'absència.",
"There was an error updating your attendance status." : "S'ha produït un error en actualitzar l'estat d'assistència.",
"Please contact the organizer directly." : "Contacteu amb l'organització directament.",
"Are you accepting the invitation?" : "Accepteu la invitació?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència.",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["En un minut a %1$s durant tot el dia","En %n minuts a %1$s durant tot el dia"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["En una hora a %1$s durant tot el dia","En %n hores a %1$s durant tot el dia"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["En un dia a %1$s durant tot el dia","En %n dies a %1$s durant tot el dia"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["En una setmana a %1$s durant tot el dia","En %n setmanes a %1$s durant tot el dia"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["En un mes el %1$s durant tot el dia","En %n mesos el %1$s durant tot el dia"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["En un any a %1$s durant tot el dia","En %n anys a %1$s durant tot el dia"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["D'aquí a un minut el %1$s entre les %2$s i les %3$s","Daquí a %n minuts el %1$s entre les %2$s i les %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["D'aquí a una hora el %1$s entre les %2$s i les %3$s","Daquí a %n hores el %1$s entre les %2$s i les %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["En un dia el %1$s entre les %2$s i les %3$s","En %n dies el %1$s entre les %2$s i les %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["En una setmana el %1$s entre les %2$s i les %3$s","En %n setmanes el %1$s entre les %2$s i les %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["D'aquí a un mes el %1$s entre les %2$s i les %3$s","Daquí a %n mesos el %1$s entre les %2$s i les %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["D'aquí a un any el %1$s entre les %2$s i les %3$s","Daquí %n anys el %1$s entre les %2$s i les %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["En un minut a %1$s durant tot el dia","En %n minuts a %1$s durant tot el dia"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["D'aquí a una hora a %1$s","Daquí %n hores a %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["En un dia el %1$s","En %n dies el %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["D'aquí a una setmana el %1$s","Daquí %n setmanes el %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["D'aquí a un mes el %1$s","Daquí %n mesos el %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["D'aquí a un any el %1$s","Daquí %n anys el %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["D'aquí a un minut el %1$s i després el %2$s","Daquí a %n minuts el %1$s i després el %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["D'aquí a una hora el %1$s i després el %2$s","Daquí %n hores el %1$s i després el %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["En un dia el %1$s i després el %2$s","En %n dies el %1$s i després el %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["D'aquí a una setmana el %1$s i després el %2$s","Daquí %n setmanes el %1$s i després el %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["D'aquí a un mes el %1$s i després el %2$s","Daquí %n mesos el %1$s i després el %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["D'aquí a un any el %1$s i després el %2$s","Daquí %n anys el %1$s i després el %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["D'aquí a un minut el %1$s i després el %2$s i el %3$s","Daquí a %n minuts el %1$s i després el %2$s i el %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["D'aquí a una hora el %1$s i després el %2$s i el %3$s","Daquí a %n hores el %1$s i després el %2$s i el %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["D'aquí a un dia el %1$s i després el %2$s i el %3$s","Daquí a %n dies el %1$s i després el %2$s i el %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["D'aquí a una setmana el %1$s i després el %2$s i el %3$s","Daquí a %n setmanes el %1$s i després el %2$s i el %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["D'aquí a un mes el %1$s i després el %2$s i el %3$s","Daquí a %n mesos el %1$s i després el %2$s i el %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["D'aquí a un any el %1$s i després el %2$s i el %3$s","Daquí a %n anys el %1$s i després el %2$s i el %3$s"],
"No results." : "Cap resultat.",
"Start typing." : "Comença a escriure.",
"Time zone:" : "Fus horari:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+36 -37
View File
@@ -73,7 +73,19 @@ OC.L10N.register(
"Where: %s" : "Kde: %s",
"%1$s via %2$s" : "%1$s prostřednictvím %2$s",
"In the past on %1$s for the entire day" : "V minulosti %1$s po celý den",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za minutu %2$s po celý den","Za %n minuty %1$s po celý den","Za %n minut %1$s po celý den","Za %n minuty %1$s po celý den"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za hodinu %1$s po celý den","Za %n hodiny %1$s po celý den","Za %n hodin %1$s po celý den","Za %n hodiny %1$s po celý den"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Za den %1$s po celý den","Za %n dny %1$s po celý den","Za %n dnů %1$s po celý den","Za %n dny %1$s po celý den"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Za týden %1$s po celý den","Za %n týdny %1$s po celý den","Za %n týdnů %1$s po celý den","Za %n týdny %1$s po celý den"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Za měsíc %2$s po celý den","Za %n měsíce %1$s po celý den","Za %n měsíců %1$s po celý den","Za %n měsíce %1$s po celý den"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Za rok %1$s po celý den","Za %n roky %1$s po celý den","Za %n let %1$s po celý den","Za %n roky %1$s po celý den"],
"In the past on %1$s between %2$s - %3$s" : "V minulosti %1$s mezi %2$s - %3$s",
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Za minutu %1$s mezi %2$s - %3$s","Za %n minuty %1$s mezi %2$s - %3$s","Za %n minut %1$s mezi %2$s - %3$s","Za %n minuty %1$s mezi %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Za hodinu %1$s mezi %2$s - %3$s ","Za %n hodiny %1$s mezi %2$s - %3$s","Za %n hodin %1$s mezi %2$s - %3$s","Za %n hodiny %1$s mezi %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Za den %1$s mezi %2$s - %3$s","Za %n dny %1$s mezi %2$s - %3$s","Za %n dnů %1$s mezi %2$s - %3$s","Za %n dny %1$s mezi %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Za týden %1$s mezi %2$s - %3$s","Za %n týdny %1$s mezi %2$s - %3$s","Za %n týdnů %1$s mezi %2$s - %3$s","Za %n týdny %1$s mezi %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Za měsíc %1$s mezi %2$s - %3$s","Za %n měsíce %1$s mezi %2$s - %3$s","Za %n měsíců %1$s mezi %2$s - %3$s","Za %n měsíce %1$s mezi %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Za rok %1$s mezi %2$s - %3$s","Za %n roky %1$s mezi %2$s - %3$s","Za %n let %1$s mezi %2$s - %3$s","Za %n roky %1$s mezi %2$s - %3$s"],
"Could not generate when statement" : "Nepodařilo se vytvořit výrok kdy",
"Every Day for the entire day" : "Každý den pro celý den",
"Every Day for the entire day until %1$s" : "Každý den pro celý den až do %1$s",
@@ -111,8 +123,26 @@ OC.L10N.register(
"On specific dates for the entire day until %1$s" : "V konkrétních datech pro celý den až do %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "V konkrétních datech mezi %1$s - %2$s až do %3$s",
"In the past on %1$s" : "V minulosti %1$s",
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Za minutu %1$s","Za %n minuty %1$s","Za %n minut %1$s","Za %n minuty %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["Za hodinu %1$s","Za %n hodiny %1$s","Za %n hodin %1$s","Za %n hodiny %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["Za den %1$s","Za %n dny %1$s","Za %n dnů %1$s","Za %n dny %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["Za týden %1$s","Za %n týdny %1$s","Za %n týdnů %1$s","Za %n týdny %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["Za měsíce %1$s","Za %n měsíce %1$s","Za %n měsíců %1$s","Za %n měsíce %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["Za rok %1$s","Za %n roky %1$s","Za %n let %1$s","Za %n roky %1$s"],
"In the past on %1$s then on %2$s" : "V minulosti %1$s, pak %2$s ",
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Za minutu %1$s, poté %2$s","Za %n minuty %1$s, poté %2$s","Za %n minut %1$s, poté %2$s ","Za %n minuty %1$s, poté %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Za hodinu %1$s, poté %2$s","Za %n hodiny %1$s, poté %2$s","Za %n hodin %1$s, poté %2$s","Za %n hodiny %1$s, poté %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Za den %1$s, poté %2$s","Za %n dny %1$s, poté %2$s","Za %n dnů %1$s, poté %2$s","Za %n dny %1$s, poté %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Za týden %1$s, poté %2$s","Za %n týdny %1$s, poté %2$s","Za %n týdnů %1$s, poté %2$s","Za %n týdny %1$s, poté %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Za měsíc %1$s, poté %2$s","Za %n měsíce %1$s, poté %2$s","Za %n měsíců %1$s, poté %2$s","Za %n měsíce %1$s, poté %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Za rok %1$s, poté %2$s","Za %n roky %1$s, poté %2$s","Za %n let %1$s, poté %2$s","Za %n roky %1$s, poté %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "V minulosti %1$s, poté %2$s a %3$s ",
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Za minutu %1$s, poté %2$s a %3$s ","Za %n minuty %1$s, poté %2$s a %3$s ","Za %n minut %1$s, poté %2$s a %3$s ","Za %n minuty %1$s, poté %2$s a %3$s "],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Za hodinu %1$s, poté %2$s a %3$s","Za %n hodiny %1$s, poté %2$s a %3$s","Za %n hodin %1$s, poté %2$s a %3$s","Za %n hodiny %1$s, poté %2$s a %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Za den %1$s, poté %2$s a %3$s","Za %n dny %1$s, poté %2$s a %3$s","Za %n dnů %1$s, poté %2$s a %3$s","Za %n dny %1$s, poté %2$s a %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Za týden %1$s, poté %2$s a %3$s","Za %n týdny %1$s, poté %2$s a %3$s","Za %n týdnů %1$s, poté %2$s a %3$s","Za %n týdny %1$s, poté %2$s a %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Za měsíc %1$s, poté %2$s a %3$s","Za %n měsíce %1$s, poté %2$s a %3$s","Za %n měsíců %1$s, poté %2$s a %3$s","Za %n měsíce %1$s, poté %2$s a %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Za rok %1$s, poté %2$s a %3$s","Za %n roky %1$s, poté %2$s a %3$s","Za %n let %1$s, poté %2$s a %3$s","Za %n roky %1$s, poté %2$s a %3$s"],
"Could not generate next recurrence statement" : "Nepodařilo se vytvořit výrok o příštím opakování",
"Cancelled: %1$s" : "Zrušeno: %1$s",
"\"%1$s\" has been canceled" : "„%1$s“ bylo zrušeno",
@@ -222,7 +252,6 @@ OC.L10N.register(
"Completed on %s" : "Dokončeno %s",
"Due on %s by %s" : "Termín do %s od %s",
"Due on %s" : "Termín do %s",
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Vítejte v Nextcloud Kalendáři!\n\nToto je událost pro ukázku prozkoumejte flexibilitu plánování pomoc Nextcloud Kalendáře upravením čeho chcete!\n\nS Nextcloud Kalendářem je možné:\n- Jednoduše vytvářet, upravovat a spravovat události.\n- Vytvářet vícero kalendářů a sdílet je s kolegy, přáteli či rodinou.\n- Zjišťovat dostupnost a zobrazovat své doby nedostupnosti ostatním.\n- Hladce napojovat na aplikace a zřízení prostřednictvím CalDAV.\n- Přizpůsobit si svůj dojem z používání: plánovat opakující se události, upravovat notifikace a ostatní nastavení.",
"Example event - open me!" : "Událost pro ukázku otevřete ji!",
"System Address Book" : "Systémový adresář kontaktů",
"The system address book contains contact information for all users in your instance." : "Systémový adresář kontaktů obsahuje informace pro všechny uživatele ve vámi využívané instanci.",
@@ -250,6 +279,8 @@ OC.L10N.register(
"Last day (inclusive)" : "Poslední den (včetně)",
"Out of office replacement (optional)" : "Zástup když mimo kancelář (volitelné)",
"Name of the replacement" : "Jméno zástupu",
"No results." : "Nic nenalezeno.",
"Start typing." : "Začněte psát.",
"Short absence status" : "Stav krátké nepřítomnosti",
"Long absence Message" : "Zpráva pro dlouhou nepřítomnost",
"Save" : "Uložit",
@@ -284,6 +315,10 @@ OC.L10N.register(
"Import calendar event" : "Naimportovat událost kalendáře",
"Uploading a new event will overwrite the existing one." : "Nahrání nové události přepíše tu existující.",
"Upload event" : "Nahrát událost",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
"Configure your next absence period." : "Nastavte období své nepřítomnosti.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Také nainstalujte {calendarappstoreopen}aplikaci Kalendář{linkclose}, nebo {calendardocopen}připojte svůj počítač a telefon pro synchronizaci ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Ověřte, že jste správně nastavili {emailopen}e-mailový server{linkclose}.",
"Calendar server" : "Kalendářový server",
@@ -298,47 +333,11 @@ OC.L10N.register(
"Enable notifications for events via push" : "Upozorňovat na události prostřednictvím služby push",
"Example content" : "Obsah pro ukázku",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Obsah pro ukázku slouží pro předvedení funkcí Nextcloud. Výchozí obsah je dodáván s Nextcloud a je možné ho nahradit uživatelsky určeným.",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
"Configure your next absence period." : "Nastavte období své nepřítomnosti.",
"There was an error updating your attendance status." : "Vyskytla se chyba při aktualizaci vašeho stavu účasti.",
"Please contact the organizer directly." : "Kontaktujte organizátora přímo.",
"Are you accepting the invitation?" : "Přijímáte pozvání?",
"Tentative" : "Nezávazně",
"Your attendance was updated successfully." : "Vaše účast byla úspěšně aktualizována.",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za minutu %2$s po celý den","Za %n minuty %1$s po celý den","Za %n minut %1$s po celý den","Za %n minuty %1$s po celý den"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za hodinu %1$s po celý den","Za %n hodiny %1$s po celý den","Za %n hodin %1$s po celý den","Za %n hodiny %1$s po celý den"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Za den %1$s po celý den","Za %n dny %1$s po celý den","Za %n dnů %1$s po celý den","Za %n dny %1$s po celý den"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Za týden %1$s po celý den","Za %n týdny %1$s po celý den","Za %n týdnů %1$s po celý den","Za %n týdny %1$s po celý den"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Za měsíc %2$s po celý den","Za %n měsíce %1$s po celý den","Za %n měsíců %1$s po celý den","Za %n měsíce %1$s po celý den"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Za rok %1$s po celý den","Za %n roky %1$s po celý den","Za %n let %1$s po celý den","Za %n roky %1$s po celý den"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Za minutu %1$s mezi %2$s - %3$s","Za %n minuty %1$s mezi %2$s - %3$s","Za %n minut %1$s mezi %2$s - %3$s","Za %n minuty %1$s mezi %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Za hodinu %1$s mezi %2$s - %3$s ","Za %n hodiny %1$s mezi %2$s - %3$s","Za %n hodin %1$s mezi %2$s - %3$s","Za %n hodiny %1$s mezi %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Za den %1$s mezi %2$s - %3$s","Za %n dny %1$s mezi %2$s - %3$s","Za %n dnů %1$s mezi %2$s - %3$s","Za %n dny %1$s mezi %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Za týden %1$s mezi %2$s - %3$s","Za %n týdny %1$s mezi %2$s - %3$s","Za %n týdnů %1$s mezi %2$s - %3$s","Za %n týdny %1$s mezi %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Za měsíc %1$s mezi %2$s - %3$s","Za %n měsíce %1$s mezi %2$s - %3$s","Za %n měsíců %1$s mezi %2$s - %3$s","Za %n měsíce %1$s mezi %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Za rok %1$s mezi %2$s - %3$s","Za %n roky %1$s mezi %2$s - %3$s","Za %n let %1$s mezi %2$s - %3$s","Za %n roky %1$s mezi %2$s - %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Za minutu %1$s","Za %n minuty %1$s","Za %n minut %1$s","Za %n minuty %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["Za hodinu %1$s","Za %n hodiny %1$s","Za %n hodin %1$s","Za %n hodiny %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["Za den %1$s","Za %n dny %1$s","Za %n dnů %1$s","Za %n dny %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["Za týden %1$s","Za %n týdny %1$s","Za %n týdnů %1$s","Za %n týdny %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["Za měsíce %1$s","Za %n měsíce %1$s","Za %n měsíců %1$s","Za %n měsíce %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["Za rok %1$s","Za %n roky %1$s","Za %n let %1$s","Za %n roky %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Za minutu %1$s, poté %2$s","Za %n minuty %1$s, poté %2$s","Za %n minut %1$s, poté %2$s ","Za %n minuty %1$s, poté %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Za hodinu %1$s, poté %2$s","Za %n hodiny %1$s, poté %2$s","Za %n hodin %1$s, poté %2$s","Za %n hodiny %1$s, poté %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Za den %1$s, poté %2$s","Za %n dny %1$s, poté %2$s","Za %n dnů %1$s, poté %2$s","Za %n dny %1$s, poté %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Za týden %1$s, poté %2$s","Za %n týdny %1$s, poté %2$s","Za %n týdnů %1$s, poté %2$s","Za %n týdny %1$s, poté %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Za měsíc %1$s, poté %2$s","Za %n měsíce %1$s, poté %2$s","Za %n měsíců %1$s, poté %2$s","Za %n měsíce %1$s, poté %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Za rok %1$s, poté %2$s","Za %n roky %1$s, poté %2$s","Za %n let %1$s, poté %2$s","Za %n roky %1$s, poté %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Za minutu %1$s, poté %2$s a %3$s ","Za %n minuty %1$s, poté %2$s a %3$s ","Za %n minut %1$s, poté %2$s a %3$s ","Za %n minuty %1$s, poté %2$s a %3$s "],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Za hodinu %1$s, poté %2$s a %3$s","Za %n hodiny %1$s, poté %2$s a %3$s","Za %n hodin %1$s, poté %2$s a %3$s","Za %n hodiny %1$s, poté %2$s a %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Za den %1$s, poté %2$s a %3$s","Za %n dny %1$s, poté %2$s a %3$s","Za %n dnů %1$s, poté %2$s a %3$s","Za %n dny %1$s, poté %2$s a %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Za týden %1$s, poté %2$s a %3$s","Za %n týdny %1$s, poté %2$s a %3$s","Za %n týdnů %1$s, poté %2$s a %3$s","Za %n týdny %1$s, poté %2$s a %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Za měsíc %1$s, poté %2$s a %3$s","Za %n měsíce %1$s, poté %2$s a %3$s","Za %n měsíců %1$s, poté %2$s a %3$s","Za %n měsíce %1$s, poté %2$s a %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Za rok %1$s, poté %2$s a %3$s","Za %n roky %1$s, poté %2$s a %3$s","Za %n let %1$s, poté %2$s a %3$s","Za %n roky %1$s, poté %2$s a %3$s"],
"No results." : "Nic nenalezeno.",
"Start typing." : "Začněte psát.",
"Time zone:" : "Časové pásmo:"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
+36 -37
View File
@@ -71,7 +71,19 @@
"Where: %s" : "Kde: %s",
"%1$s via %2$s" : "%1$s prostřednictvím %2$s",
"In the past on %1$s for the entire day" : "V minulosti %1$s po celý den",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za minutu %2$s po celý den","Za %n minuty %1$s po celý den","Za %n minut %1$s po celý den","Za %n minuty %1$s po celý den"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za hodinu %1$s po celý den","Za %n hodiny %1$s po celý den","Za %n hodin %1$s po celý den","Za %n hodiny %1$s po celý den"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Za den %1$s po celý den","Za %n dny %1$s po celý den","Za %n dnů %1$s po celý den","Za %n dny %1$s po celý den"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Za týden %1$s po celý den","Za %n týdny %1$s po celý den","Za %n týdnů %1$s po celý den","Za %n týdny %1$s po celý den"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Za měsíc %2$s po celý den","Za %n měsíce %1$s po celý den","Za %n měsíců %1$s po celý den","Za %n měsíce %1$s po celý den"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Za rok %1$s po celý den","Za %n roky %1$s po celý den","Za %n let %1$s po celý den","Za %n roky %1$s po celý den"],
"In the past on %1$s between %2$s - %3$s" : "V minulosti %1$s mezi %2$s - %3$s",
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Za minutu %1$s mezi %2$s - %3$s","Za %n minuty %1$s mezi %2$s - %3$s","Za %n minut %1$s mezi %2$s - %3$s","Za %n minuty %1$s mezi %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Za hodinu %1$s mezi %2$s - %3$s ","Za %n hodiny %1$s mezi %2$s - %3$s","Za %n hodin %1$s mezi %2$s - %3$s","Za %n hodiny %1$s mezi %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Za den %1$s mezi %2$s - %3$s","Za %n dny %1$s mezi %2$s - %3$s","Za %n dnů %1$s mezi %2$s - %3$s","Za %n dny %1$s mezi %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Za týden %1$s mezi %2$s - %3$s","Za %n týdny %1$s mezi %2$s - %3$s","Za %n týdnů %1$s mezi %2$s - %3$s","Za %n týdny %1$s mezi %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Za měsíc %1$s mezi %2$s - %3$s","Za %n měsíce %1$s mezi %2$s - %3$s","Za %n měsíců %1$s mezi %2$s - %3$s","Za %n měsíce %1$s mezi %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Za rok %1$s mezi %2$s - %3$s","Za %n roky %1$s mezi %2$s - %3$s","Za %n let %1$s mezi %2$s - %3$s","Za %n roky %1$s mezi %2$s - %3$s"],
"Could not generate when statement" : "Nepodařilo se vytvořit výrok kdy",
"Every Day for the entire day" : "Každý den pro celý den",
"Every Day for the entire day until %1$s" : "Každý den pro celý den až do %1$s",
@@ -109,8 +121,26 @@
"On specific dates for the entire day until %1$s" : "V konkrétních datech pro celý den až do %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "V konkrétních datech mezi %1$s - %2$s až do %3$s",
"In the past on %1$s" : "V minulosti %1$s",
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Za minutu %1$s","Za %n minuty %1$s","Za %n minut %1$s","Za %n minuty %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["Za hodinu %1$s","Za %n hodiny %1$s","Za %n hodin %1$s","Za %n hodiny %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["Za den %1$s","Za %n dny %1$s","Za %n dnů %1$s","Za %n dny %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["Za týden %1$s","Za %n týdny %1$s","Za %n týdnů %1$s","Za %n týdny %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["Za měsíce %1$s","Za %n měsíce %1$s","Za %n měsíců %1$s","Za %n měsíce %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["Za rok %1$s","Za %n roky %1$s","Za %n let %1$s","Za %n roky %1$s"],
"In the past on %1$s then on %2$s" : "V minulosti %1$s, pak %2$s ",
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Za minutu %1$s, poté %2$s","Za %n minuty %1$s, poté %2$s","Za %n minut %1$s, poté %2$s ","Za %n minuty %1$s, poté %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Za hodinu %1$s, poté %2$s","Za %n hodiny %1$s, poté %2$s","Za %n hodin %1$s, poté %2$s","Za %n hodiny %1$s, poté %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Za den %1$s, poté %2$s","Za %n dny %1$s, poté %2$s","Za %n dnů %1$s, poté %2$s","Za %n dny %1$s, poté %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Za týden %1$s, poté %2$s","Za %n týdny %1$s, poté %2$s","Za %n týdnů %1$s, poté %2$s","Za %n týdny %1$s, poté %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Za měsíc %1$s, poté %2$s","Za %n měsíce %1$s, poté %2$s","Za %n měsíců %1$s, poté %2$s","Za %n měsíce %1$s, poté %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Za rok %1$s, poté %2$s","Za %n roky %1$s, poté %2$s","Za %n let %1$s, poté %2$s","Za %n roky %1$s, poté %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "V minulosti %1$s, poté %2$s a %3$s ",
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Za minutu %1$s, poté %2$s a %3$s ","Za %n minuty %1$s, poté %2$s a %3$s ","Za %n minut %1$s, poté %2$s a %3$s ","Za %n minuty %1$s, poté %2$s a %3$s "],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Za hodinu %1$s, poté %2$s a %3$s","Za %n hodiny %1$s, poté %2$s a %3$s","Za %n hodin %1$s, poté %2$s a %3$s","Za %n hodiny %1$s, poté %2$s a %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Za den %1$s, poté %2$s a %3$s","Za %n dny %1$s, poté %2$s a %3$s","Za %n dnů %1$s, poté %2$s a %3$s","Za %n dny %1$s, poté %2$s a %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Za týden %1$s, poté %2$s a %3$s","Za %n týdny %1$s, poté %2$s a %3$s","Za %n týdnů %1$s, poté %2$s a %3$s","Za %n týdny %1$s, poté %2$s a %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Za měsíc %1$s, poté %2$s a %3$s","Za %n měsíce %1$s, poté %2$s a %3$s","Za %n měsíců %1$s, poté %2$s a %3$s","Za %n měsíce %1$s, poté %2$s a %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Za rok %1$s, poté %2$s a %3$s","Za %n roky %1$s, poté %2$s a %3$s","Za %n let %1$s, poté %2$s a %3$s","Za %n roky %1$s, poté %2$s a %3$s"],
"Could not generate next recurrence statement" : "Nepodařilo se vytvořit výrok o příštím opakování",
"Cancelled: %1$s" : "Zrušeno: %1$s",
"\"%1$s\" has been canceled" : "„%1$s“ bylo zrušeno",
@@ -220,7 +250,6 @@
"Completed on %s" : "Dokončeno %s",
"Due on %s by %s" : "Termín do %s od %s",
"Due on %s" : "Termín do %s",
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Vítejte v Nextcloud Kalendáři!\n\nToto je událost pro ukázku prozkoumejte flexibilitu plánování pomoc Nextcloud Kalendáře upravením čeho chcete!\n\nS Nextcloud Kalendářem je možné:\n- Jednoduše vytvářet, upravovat a spravovat události.\n- Vytvářet vícero kalendářů a sdílet je s kolegy, přáteli či rodinou.\n- Zjišťovat dostupnost a zobrazovat své doby nedostupnosti ostatním.\n- Hladce napojovat na aplikace a zřízení prostřednictvím CalDAV.\n- Přizpůsobit si svůj dojem z používání: plánovat opakující se události, upravovat notifikace a ostatní nastavení.",
"Example event - open me!" : "Událost pro ukázku otevřete ji!",
"System Address Book" : "Systémový adresář kontaktů",
"The system address book contains contact information for all users in your instance." : "Systémový adresář kontaktů obsahuje informace pro všechny uživatele ve vámi využívané instanci.",
@@ -248,6 +277,8 @@
"Last day (inclusive)" : "Poslední den (včetně)",
"Out of office replacement (optional)" : "Zástup když mimo kancelář (volitelné)",
"Name of the replacement" : "Jméno zástupu",
"No results." : "Nic nenalezeno.",
"Start typing." : "Začněte psát.",
"Short absence status" : "Stav krátké nepřítomnosti",
"Long absence Message" : "Zpráva pro dlouhou nepřítomnost",
"Save" : "Uložit",
@@ -282,6 +313,10 @@
"Import calendar event" : "Naimportovat událost kalendáře",
"Uploading a new event will overwrite the existing one." : "Nahrání nové události přepíše tu existující.",
"Upload event" : "Nahrát událost",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
"Configure your next absence period." : "Nastavte období své nepřítomnosti.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Také nainstalujte {calendarappstoreopen}aplikaci Kalendář{linkclose}, nebo {calendardocopen}připojte svůj počítač a telefon pro synchronizaci ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Ověřte, že jste správně nastavili {emailopen}e-mailový server{linkclose}.",
"Calendar server" : "Kalendářový server",
@@ -296,47 +331,11 @@
"Enable notifications for events via push" : "Upozorňovat na události prostřednictvím služby push",
"Example content" : "Obsah pro ukázku",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Obsah pro ukázku slouží pro předvedení funkcí Nextcloud. Výchozí obsah je dodáván s Nextcloud a je možné ho nahradit uživatelsky určeným.",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
"Configure your next absence period." : "Nastavte období své nepřítomnosti.",
"There was an error updating your attendance status." : "Vyskytla se chyba při aktualizaci vašeho stavu účasti.",
"Please contact the organizer directly." : "Kontaktujte organizátora přímo.",
"Are you accepting the invitation?" : "Přijímáte pozvání?",
"Tentative" : "Nezávazně",
"Your attendance was updated successfully." : "Vaše účast byla úspěšně aktualizována.",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za minutu %2$s po celý den","Za %n minuty %1$s po celý den","Za %n minut %1$s po celý den","Za %n minuty %1$s po celý den"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za hodinu %1$s po celý den","Za %n hodiny %1$s po celý den","Za %n hodin %1$s po celý den","Za %n hodiny %1$s po celý den"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Za den %1$s po celý den","Za %n dny %1$s po celý den","Za %n dnů %1$s po celý den","Za %n dny %1$s po celý den"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Za týden %1$s po celý den","Za %n týdny %1$s po celý den","Za %n týdnů %1$s po celý den","Za %n týdny %1$s po celý den"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Za měsíc %2$s po celý den","Za %n měsíce %1$s po celý den","Za %n měsíců %1$s po celý den","Za %n měsíce %1$s po celý den"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Za rok %1$s po celý den","Za %n roky %1$s po celý den","Za %n let %1$s po celý den","Za %n roky %1$s po celý den"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Za minutu %1$s mezi %2$s - %3$s","Za %n minuty %1$s mezi %2$s - %3$s","Za %n minut %1$s mezi %2$s - %3$s","Za %n minuty %1$s mezi %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Za hodinu %1$s mezi %2$s - %3$s ","Za %n hodiny %1$s mezi %2$s - %3$s","Za %n hodin %1$s mezi %2$s - %3$s","Za %n hodiny %1$s mezi %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Za den %1$s mezi %2$s - %3$s","Za %n dny %1$s mezi %2$s - %3$s","Za %n dnů %1$s mezi %2$s - %3$s","Za %n dny %1$s mezi %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Za týden %1$s mezi %2$s - %3$s","Za %n týdny %1$s mezi %2$s - %3$s","Za %n týdnů %1$s mezi %2$s - %3$s","Za %n týdny %1$s mezi %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Za měsíc %1$s mezi %2$s - %3$s","Za %n měsíce %1$s mezi %2$s - %3$s","Za %n měsíců %1$s mezi %2$s - %3$s","Za %n měsíce %1$s mezi %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Za rok %1$s mezi %2$s - %3$s","Za %n roky %1$s mezi %2$s - %3$s","Za %n let %1$s mezi %2$s - %3$s","Za %n roky %1$s mezi %2$s - %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Za minutu %1$s","Za %n minuty %1$s","Za %n minut %1$s","Za %n minuty %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["Za hodinu %1$s","Za %n hodiny %1$s","Za %n hodin %1$s","Za %n hodiny %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["Za den %1$s","Za %n dny %1$s","Za %n dnů %1$s","Za %n dny %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["Za týden %1$s","Za %n týdny %1$s","Za %n týdnů %1$s","Za %n týdny %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["Za měsíce %1$s","Za %n měsíce %1$s","Za %n měsíců %1$s","Za %n měsíce %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["Za rok %1$s","Za %n roky %1$s","Za %n let %1$s","Za %n roky %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Za minutu %1$s, poté %2$s","Za %n minuty %1$s, poté %2$s","Za %n minut %1$s, poté %2$s ","Za %n minuty %1$s, poté %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Za hodinu %1$s, poté %2$s","Za %n hodiny %1$s, poté %2$s","Za %n hodin %1$s, poté %2$s","Za %n hodiny %1$s, poté %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Za den %1$s, poté %2$s","Za %n dny %1$s, poté %2$s","Za %n dnů %1$s, poté %2$s","Za %n dny %1$s, poté %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Za týden %1$s, poté %2$s","Za %n týdny %1$s, poté %2$s","Za %n týdnů %1$s, poté %2$s","Za %n týdny %1$s, poté %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Za měsíc %1$s, poté %2$s","Za %n měsíce %1$s, poté %2$s","Za %n měsíců %1$s, poté %2$s","Za %n měsíce %1$s, poté %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Za rok %1$s, poté %2$s","Za %n roky %1$s, poté %2$s","Za %n let %1$s, poté %2$s","Za %n roky %1$s, poté %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Za minutu %1$s, poté %2$s a %3$s ","Za %n minuty %1$s, poté %2$s a %3$s ","Za %n minut %1$s, poté %2$s a %3$s ","Za %n minuty %1$s, poté %2$s a %3$s "],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Za hodinu %1$s, poté %2$s a %3$s","Za %n hodiny %1$s, poté %2$s a %3$s","Za %n hodin %1$s, poté %2$s a %3$s","Za %n hodiny %1$s, poté %2$s a %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Za den %1$s, poté %2$s a %3$s","Za %n dny %1$s, poté %2$s a %3$s","Za %n dnů %1$s, poté %2$s a %3$s","Za %n dny %1$s, poté %2$s a %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Za týden %1$s, poté %2$s a %3$s","Za %n týdny %1$s, poté %2$s a %3$s","Za %n týdnů %1$s, poté %2$s a %3$s","Za %n týdny %1$s, poté %2$s a %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Za měsíc %1$s, poté %2$s a %3$s","Za %n měsíce %1$s, poté %2$s a %3$s","Za %n měsíců %1$s, poté %2$s a %3$s","Za %n měsíce %1$s, poté %2$s a %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Za rok %1$s, poté %2$s a %3$s","Za %n roky %1$s, poté %2$s a %3$s","Za %n let %1$s, poté %2$s a %3$s","Za %n roky %1$s, poté %2$s a %3$s"],
"No results." : "Nic nenalezeno.",
"Start typing." : "Začněte psát.",
"Time zone:" : "Časové pásmo:"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}
+36 -42
View File
@@ -73,7 +73,19 @@ OC.L10N.register(
"Where: %s" : "Hvor: %s",
"%1$s via %2$s" : "%1$s via %2$s",
"In the past on %1$s for the entire day" : "Tidligere den %1$s for hele dagen",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Om et minut på %1$s for hele dagen","Om %n minutter den %1$s for hele dagen"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Om en time på %1$s for hele dagen","Om %n timer den %1$s for hele dagen"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Om en dag på %1$s for hele dagen","Om %n dage den %1$s for hele dagen"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Om en uge på %1$s for hele dagen","Om %n uger den %1$s for hele dagen"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Om en måned på %1$s for hele dagen","Om %n måneder den %1$s for hele dagen"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Om et år på %1$s for hele dagen","Om %n år den %1$s for hele dagen"],
"In the past on %1$s between %2$s - %3$s" : "Tidligere den %1$s mellem %2$s - %3$s",
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Om et minut på %1$s mellem %2$s - %3$s","Om %n minutter den %1$s mellem %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Om en time på %1$s mellem %2$s - %3$s","Om %n timer den %1$s mellem %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Om en dag på %1$s mellem %2$s - %3$s","Om %n dage den %1$s mellem %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Om en uge på %1$s mellem %2$s - %3$s","Om %n uger den %1$s mellem %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Om en måned på %1$s mellem %2$s - %3$s","Om %n måneder den %1$s mellem %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Om et år på %1$s mellem %2$s - %3$s","Om %n år den %1$s mellem %2$s - %3$s"],
"Could not generate when statement" : "Kunne ikke generere when sætning",
"Every Day for the entire day" : "Hver dag hele dagen",
"Every Day for the entire day until %1$s" : "Hver dag hele dagen indtil %1$s",
@@ -111,8 +123,26 @@ OC.L10N.register(
"On specific dates for the entire day until %1$s" : "På specifikke datoer for hele dagen indtil %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "På specifikke datoer mellem %1$s - %2$s indtil %3$s",
"In the past on %1$s" : "Tidligere den %1$s",
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Om et minut på %1$s","Om %n minutter den %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["Om en time på %1$s","Om %n timer den %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["I en dag på %1$s","Om %n dage den %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["I en uge på %1$s","Om %n uger den %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["I en måned på %1$s","Om %n måneder den %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["I et år på %1$s","Om %n år den %1$s"],
"In the past on %1$s then on %2$s" : "Tidligere på %1$s derefter den %2$s",
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Om et minut på %1$s så på %2$s","Om %n minutter den %1$s derefter den %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["I en time på %1$s så på %2$s","Om %n timer den %1$s derefter den %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["I en dag på %1$s så på %2$s","Om %n dage den %1$s derefter den %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["I en uge på %1$s så på %2$s","Om %n uger den %1$s derefter den %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["I en måned på %1$s så på %2$s","Om %n måneder den %1$s derefter den %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["I et år på %1$s så på %2$s","Om %n år den %1$s derefter den %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "Tidligere den %1$s derefter den %2$s og %3$s",
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["I et minut på %1$s så på %2$s og %3$s","Om %n minutter den %1$s derefter den %2$s og %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["I en time på %1$s så på %2$s og %3$s","Om %n timer den %1$s derefter den %2$s og %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["I en dag på %1$s så på %2$s og %3$s","Om %n dage den %1$s derefter den %2$s og %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["I en uge på %1$s så på %2$s og %3$s","Om %n uger den %1$s derefter den %2$s og %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["I en måned på %1$s så på %2$s og %3$s","Om %n måneder den %1$s derefter den %2$s og %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["I et år på %1$s så på %2$s og %3$s","Om %n år den %1$s derefter den %2$s og %3$s"],
"Could not generate next recurrence statement" : "Kunne ikke generere næste gentagelseserklæring",
"Cancelled: %1$s" : "Annullerede: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" er blevet annulleret",
@@ -190,8 +220,6 @@ OC.L10N.register(
"{actor} updated contact {card} in address book {addressbook}" : "{actor} opdaterede kontakten {card} i adressebog {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Du opdaterede kontakten {card} i adressebog {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "En <strong>kontakt</strong> eller <strong>adressebog</strong> blev ændret",
"System address book disabled" : "Systemadressebog deaktiveret",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Adressebogen for systemkontakter er automatisk blevet deaktiveret under opgraderingen. Det betyder, at adressebogen ikke længere vil være tilgængelig for brugere i kontaktappen eller andre klienter. Adressebogen for systemkontakter blev deaktiveret, fordi antallet af kontakter i adressebogen oversteg det maksimale anbefalede antal kontakter. Denne grænse er indstillet for at forhindre problemer med ydeevnen. Du kan genaktivere systemadressebogen med følgende kommando {command}",
"Accounts" : "Konti",
"System address book which holds all accounts" : "Systemets adressebog, som indeholder alle konti",
"File is not updatable: %1$s" : "Filen kan ikke updateres: %1$s",
@@ -230,10 +258,6 @@ OC.L10N.register(
"DAV system address book" : "DAV system adressebog",
"No outstanding DAV system address book sync." : "Ingen udestående synkronisering af DAV-systemets adressebog.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "DAV-systemets adressebogssynkronisering er ikke kørt endnu, da din instans har mere end 1000 brugere, eller fordi der opstod en fejl. Kør det manuelt ved at kalde \"occ dav:sync-system-addressbook\".",
"DAV system address book size" : "Størrelse på DAV systemets adressebog",
"The system address book is disabled" : "Systemets adressebog er deaktiveret",
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Systemadressebogen er aktiveret, men indeholder mere end den konfigurerede grænse på %d kontakter",
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Systemadressebogen er aktiveret og indeholder mindre end den konfigurerede grænse på %d kontakter",
"WebDAV endpoint" : "WebDAV endpoint",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Kunne ikke kontrollere, at din webserver er korrekt konfigureret til at tillade filsynkronisering over WebDAV. Tjek venligst manuelt.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Din webserver er endnu ikke sat korrekt op til at tillade filsynkronisering, fordi WebDAV-grænsefladen ser ud til at være i stykker.",
@@ -250,6 +274,8 @@ OC.L10N.register(
"Last day (inclusive)" : "Sidste dag (indklusiv)",
"Out of office replacement (optional)" : "Ikke på kontoret udskiftning (valgfrit)",
"Name of the replacement" : "Navn på udskiftning",
"No results." : "Ingen resultater.",
"Start typing." : "Begynd at skrive.",
"Short absence status" : "Kort fraværsstatus",
"Long absence Message" : "Langt fravær besked",
"Save" : "Gem",
@@ -284,6 +310,10 @@ OC.L10N.register(
"Import calendar event" : "Importér kalenderbegivenhed",
"Uploading a new event will overwrite the existing one." : "Upload af en ny begivenhed vil overskrive den eksisterende.",
"Upload event" : "Upload begivenhed",
"Availability" : "tilgængelighed",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer dine arbejdstider, vil andre se, når du er fraværende, når de booker et møde.",
"Absence" : "Fravær",
"Configure your next absence period." : "Konfigurer din næste fraværsperiode.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installer også {calendarappstoreopen}Kalender-appen{linkclose}, eller {calendardocopen}tilslut dit skrivebord og din mobil til synkronisering ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Sørg for at konfigurere {emailopen}e-mail-serveren{linkclose} korrekt.",
"Calendar server" : "Kalenderserver",
@@ -298,47 +328,11 @@ OC.L10N.register(
"Enable notifications for events via push" : "Aktiver notifikationer for begivenheder via push",
"Example content" : "Eksempelindhold",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Eksempelindhold fremviser funktionerne i Nextcloud. Standardindhold leveres med Nextcloud, og kan erstattes af brugerdefineret indhold.",
"Availability" : "tilgængelighed",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer dine arbejdstider, vil andre se, når du er fraværende, når de booker et møde.",
"Absence" : "Fravær",
"Configure your next absence period." : "Konfigurer din næste fraværsperiode.",
"There was an error updating your attendance status." : "Der opstod en fejl under opdatering af din fremmødestatus.",
"Please contact the organizer directly." : "Kontakt venligst arrangøren direkte.",
"Are you accepting the invitation?" : "Accepter du invitationen?",
"Tentative" : "Foreløbig",
"Your attendance was updated successfully." : "Dit tilstedeværelse blev opdateret.",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Om et minut på %1$s for hele dagen","Om %n minutter den %1$s for hele dagen"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Om en time på %1$s for hele dagen","Om %n timer den %1$s for hele dagen"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Om en dag på %1$s for hele dagen","Om %n dage den %1$s for hele dagen"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Om en uge på %1$s for hele dagen","Om %n uger den %1$s for hele dagen"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Om en måned på %1$s for hele dagen","Om %n måneder den %1$s for hele dagen"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Om et år på %1$s for hele dagen","Om %n år den %1$s for hele dagen"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Om et minut på %1$s mellem %2$s - %3$s","Om %n minutter den %1$s mellem %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Om en time på %1$s mellem %2$s - %3$s","Om %n timer den %1$s mellem %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Om en dag på %1$s mellem %2$s - %3$s","Om %n dage den %1$s mellem %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Om en uge på %1$s mellem %2$s - %3$s","Om %n uger den %1$s mellem %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Om en måned på %1$s mellem %2$s - %3$s","Om %n måneder den %1$s mellem %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Om et år på %1$s mellem %2$s - %3$s","Om %n år den %1$s mellem %2$s - %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Om et minut på %1$s","Om %n minutter den %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["Om en time på %1$s","Om %n timer den %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["I en dag på %1$s","Om %n dage den %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["I en uge på %1$s","Om %n uger den %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["I en måned på %1$s","Om %n måneder den %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["I et år på %1$s","Om %n år den %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Om et minut på %1$s så på %2$s","Om %n minutter den %1$s derefter den %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["I en time på %1$s så på %2$s","Om %n timer den %1$s derefter den %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["I en dag på %1$s så på %2$s","Om %n dage den %1$s derefter den %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["I en uge på %1$s så på %2$s","Om %n uger den %1$s derefter den %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["I en måned på %1$s så på %2$s","Om %n måneder den %1$s derefter den %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["I et år på %1$s så på %2$s","Om %n år den %1$s derefter den %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["I et minut på %1$s så på %2$s og %3$s","Om %n minutter den %1$s derefter den %2$s og %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["I en time på %1$s så på %2$s og %3$s","Om %n timer den %1$s derefter den %2$s og %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["I en dag på %1$s så på %2$s og %3$s","Om %n dage den %1$s derefter den %2$s og %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["I en uge på %1$s så på %2$s og %3$s","Om %n uger den %1$s derefter den %2$s og %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["I en måned på %1$s så på %2$s og %3$s","Om %n måneder den %1$s derefter den %2$s og %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["I et år på %1$s så på %2$s og %3$s","Om %n år den %1$s derefter den %2$s og %3$s"],
"No results." : "Ingen resultater.",
"Start typing." : "Begynd at skrive.",
"Time zone:" : "Tidszone:"
},
"nplurals=2; plural=(n != 1);");

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