Commit 740ec626 authored by Sergey Shadrin's avatar Sergey Shadrin

[#124455] Update to core 11.2.3

- Updated dockerfile and docker compose files
- Updated all modules and core
- quickedit, pet, drush_language and paragraphs_browser_previewer just downloaded and patched because no d11 published versions exists. Later need to add in composer.json
parent 1a824a03

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

FROM nginx:stable-alpine as nginx-base
FROM nginx:1.26.2-alpine3.20 AS nginx-base
RUN apk add --no-cache bash
COPY provision/docker-images/nginx/nginx.conf /etc/nginx/nginx.conf
......@@ -12,18 +12,23 @@ RUN chown -R nginx:0 /var/cache/nginx && \
EXPOSE 8080
STOPSIGNAL SIGTERM
USER nginx
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["nginx"]
FROM php:8.3-fpm-alpine as php-fpm-base
FROM php:8.3.14-fpm-alpine3.20 AS php-fpm-base
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
RUN set -xe; \
apk add --update --no-cache -t .php-run-deps \
bash \
freetype \
icu-libs \
icu-data-full \
libbz2 \
libevent \
libjpeg-turbo \
......@@ -31,24 +36,54 @@ RUN set -xe; \
libmcrypt \
libpng \
libuuid \
zlib \
libmemcached \
libmemcached-libs \
libwebp \
libxml2 \
libxslt \
libzip \
yaml && \
imagemagick-libs \
imagemagick \
xvfb \
yaml \
libstdc++ \
libx11 \
libxrender \
libxext \
ca-certificates \
libssl3 \
fontconfig \
freetype \
ttf-dejavu \
ttf-droid \
ttf-freefont \
ttf-liberation && \
apk add --no-cache --virtual .build-deps \
msttcorefonts-installer \
# Install microsoft fonts
&& update-ms-fonts \
&& fc-cache -f \
# Clean up when done
&& rm -rf /tmp/* \
&& apk del .build-deps && \
apk add --update --no-cache -t .php-build-deps \
g++ \
make \
autoconf \
libzip-dev \
linux-headers \
icu-dev \
bzip2-dev \
freetype-dev \
zlib-dev \
libmemcached-dev \
libmcrypt-dev \
jpeg-dev \
libjpeg-turbo-dev \
libpng-dev \
libwebp-dev \
imagemagick-dev \
unixodbc-dev \
yaml-dev && \
docker-php-ext-install \
......@@ -61,22 +96,27 @@ RUN set -xe; \
opcache \
pcntl \
pdo_mysql \
zip && \
sockets \
zip; \
docker-php-ext-configure gd \
--with-webp \
--with-freetype \
--with-jpeg && \
--with-jpeg; \
NPROC=$(getconf _NPROCESSORS_ONLN) && \
docker-php-ext-install "-j${NPROC}" gd && \
install-php-extensions Imagick/imagick@28f27044e435a2b203e32675e942eb8de620ee58 && \
sed -i 's/<\/policymap>/ <policy domain="coder" rights="read" pattern="PDF" \/>\n<\/policymap>/' /etc/ImageMagick-7/policy.xml && \
pecl channel-update pecl.php.net && \
pecl install yaml-2.2.3 \
apcu-5.1.23 \
uploadprogress-2.0.2 \
mcrypt-1.0.7 && \
mcrypt-1.0.7 \
memcache-8.2 && \
docker-php-ext-enable yaml \
apcu \
uploadprogress \
mcrypt && \
mcrypt \
memcache && \
apk del --purge .php-build-deps && \
rm -rf \
/usr/src/php/ext/ast \
......@@ -85,11 +125,21 @@ RUN set -xe; \
/usr/lib/php/build \
/tmp/* \
/root/.composer \
/var/cache/apk/*
USER www-data
/var/cache/apk/*; \
curl "https://github.com/tideways/php-xhprof-extension/archive/v5.0.4.tar.gz" -fsL -o ./php-xhprof-extension.tar.gz && \
tar xf ./php-xhprof-extension.tar.gz && \
cd php-xhprof-extension-5.0.4 && \
apk add --update --no-cache build-base autoconf && \
phpize && \
./configure && \
make && \
make install; \
rm -rf ./php-xhprof-extension.tar.gz ./php-xhprof-extension-5.0.4; \
docker-php-ext-enable tideways_xhprof
USER www-data
FROM php-fpm-base as cli-base
FROM php-fpm-base AS cli-base
USER root
RUN apk add --update --no-cache -t .build-deps \
git \
......@@ -103,28 +153,14 @@ WORKDIR /var/www/html
ENTRYPOINT ["/bin/bash", "-c"]
CMD ["tail -f /dev/null"]
FROM cli-base as builder
COPY app/composer.json app/composer.lock /var/www/html/
COPY app/patches /var/www/html/patches
COPY app /var/www/html
FROM nginx-base as nginx
COPY --from=builder --chown=root:root /var/www/html/docroot /var/www/html/docroot
FROM php-fpm-base as php-fpm
COPY --from=builder --chown=root:root /var/www/html /var/www/html
FROM cli-base as cli
COPY --from=builder --chown=root:root /var/www/html /var/www/html
FROM php-fpm-base as php-fpm-local
FROM php-fpm-base AS php-fpm-local
USER root
RUN apk add --update --no-cache -t .php-build-deps \
g++ \
make \
linux-headers \
autoconf && \
pecl install xdebug-3.3.1 && \
RUN apk add --update --no-cache -t .php-build-deps \
g++ \
make \
autoconf \
linux-headers && \
pecl install xdebug-3.3.1 && \
apk del --purge .php-build-deps && \
rm -rf \
/usr/src/php/ext/ast \
......@@ -135,14 +171,26 @@ RUN apk add --update --no-cache -t .php-build-deps \
/root/.composer \
/var/cache/apk/*
COPY provision/docker-images/php-fpm-local/docker-entrypoint.sh /usr/local/bin/
COPY provision/docker-images/php-fpm/docker-entrypoint.sh /usr/local/bin/
COPY provision/docker-images/php-fpm/php.ini /usr/local/etc/php/conf.d/docker.ini
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["php-fpm"]
FROM cli-base as cli-local
FROM cli-base AS cli-local
USER root
RUN echo "export PATH=$PATH:/var/www/html/vendor/bin" >> ~/.bashrc
COPY provision/docker-images/cli-local/docker-entrypoint.sh /usr/local/bin/
COPY provision/docker-images/cli-local/php-cli.ini /usr/local/etc/php/conf.d/cli.ini
COPY provision/docker-images/cli-local/php.ini /usr/local/etc/php/conf.d/cli.ini
ENV PATH "$PATH:/var/www/html/vendor/bin"
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["tail","-f","/dev/null"]
FROM cli-base AS crond-local
USER root
RUN apk add --update apk-cron && rm -rf /var/cache/apk/* && chmod u+s /usr/sbin/crond
COPY provision/docker-images/crond/docker-entrypoint.sh /usr/local/bin/
WORKDIR /var/www/html
ENV PATH "$PATH:/var/www/html/vendor/bin"
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
FROM mariadb:10.6 AS mariadb-local
COPY provision/docker-images/mariadb/docker.cnf /etc/mysql/conf.d/docker.cnf
# Drupal git normalization
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
# @see https://www.drupal.org/node/1542048
# Normally these settings would be done with macro attributes for improved
# readability and easier maintenance. However macros can only be defined at the
# repository root directory. Drupal avoids making any assumptions about where it
# is installed.
# Define text file attributes.
# - Treat them as text.
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
# - Detect whitespace errors.
# - Exposed by default in `git diff --color` on the CLI.
# - Validate with `git diff --check`.
# - Deny applying with `git apply --whitespace=error-all`.
# - Fix automatically with `git apply --whitespace=fix`.
*.config text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.dist text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.engine text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
*.inc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.install text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.lock text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.map text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.md text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.module text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.po text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.profile text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.script text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.sh text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.sql text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.svg text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.theme text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.twig text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.txt text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.xml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.yml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
# PHPStan's baseline uses tabs instead of spaces.
core/.phpstan-baseline.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tabwidth=2 diff=php linguist-language=php
# Define binary file attributes.
# - Do not treat them as text.
# - Include binary diff in patches instead of "binary files differ."
*.avif -text diff
*.eot -text diff
*.exe -text diff
*.gif -text diff
*.gz -text diff
*.ico -text diff
*.jpeg -text diff
*.jpg -text diff
*.otf -text diff
*.phar -text diff
*.png -text diff
*.svgz -text diff
*.ttf -text diff
*.woff -text diff
*.woff2 -text diff
......@@ -44,7 +44,7 @@ if (str_contains($path, '.php')) {
// fallback to index.php.
do {
$path = dirname($path);
if (preg_match('/\.php$/', $path) && is_file(__DIR__ . $path)) {
if (str_ends_with($path, '.php') && is_file(__DIR__ . $path)) {
// Discovered that the path contains an existing PHP file. Use that as the
// script to include.
$script = ltrim($path, '/');
......
......@@ -22,6 +22,9 @@ DirectoryIndex index.php index.html index.htm
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# Add correct encoding for webp.
AddType image/webp .webp
# Most of the following PHP settings cannot be changed at runtime. See
# sites/default/default.settings.php and
# Drupal\Core\DrupalKernel::bootEnvironment() for settings that can be
......@@ -137,10 +140,6 @@ AddEncoding gzip svgz
RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$
# Allow access to test-specific PHP files:
RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?\.php
# Allow access to Statistics module's custom front controller.
# Copy and adapt this rule to directly execute PHP files in contributed or
# custom modules or to run another PHP application in the same directory.
RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics\.php$
# Deny access to any other PHP files that do not match the rules above.
# Specifically, disallow autoload.php from being served directly.
RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
......
......@@ -10,7 +10,6 @@
* @see index.php
* @see core/install.php
* @see core/rebuild.php
* @see core/modules/statistics/statistics.php
*/
return require __DIR__ . '/vendor/autoload.php';
......@@ -21,106 +21,100 @@
"require": {
"composer/installers": "^2.0",
"cweagans/composer-patches": "^1.7",
"drupal/admin_toolbar": "^3.5",
"drupal/admin_toolbar": "^3.6",
"drupal/backup_migrate": "^5.0",
"drupal/bartik": "^1.0",
"drupal/better_exposed_filters": "^7.0",
"drupal/blazy": "^3.0",
"drupal/bootstrap": "^3.35",
"drupal/captcha": "^2.0",
"drupal/charts": "^5.0",
"drupal/charts": "^5.1",
"drupal/ckeditor5_plugin_pack": "^1.3",
"drupal/classy": "^1.0",
"drupal/color": "^1.0",
"drupal/colorbox": "^2.0",
"drupal/config_filter": "^2.6",
"drupal/color": "^2.0@alpha",
"drupal/colorbox": "^2.1",
"drupal/config_filter": "^2.7",
"drupal/config_ignore": "^3.3",
"drupal/config_pages": "^2.17",
"drupal/config_split": "^2.0",
"drupal/core-composer-scaffold": "10.4.4",
"drupal/core-project-message": "10.4.4",
"drupal/core-recommended": "10.4.4",
"drupal/core-composer-scaffold": "^11",
"drupal/core-project-message": "^11",
"drupal/core-recommended": "^11",
"drupal/crop": "^2.4",
"drupal/csv_serialization": "^4.0",
"drupal/ctools": "^4.1",
"drupal/devel": "^5.3",
"drupal/devel": "^5.4",
"drupal/dropzonejs": "^2.11",
"drupal/drush_language": "^1.0@RC",
"drupal/dynamic_entity_reference": "^3.2",
"drupal/eck": "^2.0",
"drupal/eck": "^2.1@beta",
"drupal/editor_advanced_link": "^2.2",
"drupal/embed": "^1.10",
"drupal/entity_browser": "^2.13",
"drupal/entity_embed": "^1.7",
"drupal/entity_reference_revisions": "^1.12",
"drupal/entity_update": "^3.0",
"drupal/feeds": "^3.0@beta",
"drupal/feeds": "^3.0",
"drupal/field_group": "^3.6",
"drupal/file_mdm": "^3.1",
"drupal/flag": "^4.0@beta",
"drupal/flood_control": "^2.3",
"drupal/flood_control": "^3.0",
"drupal/focal_point": "^2.1",
"drupal/gin": "^3.0@RC",
"drupal/honeypot": "2.1.4",
"drupal/imagick": "^1.11",
"drupal/inline_entity_form": "^1.0@RC",
"drupal/honeypot": "^2.2",
"drupal/imagick": "^1.12",
"drupal/inline_entity_form": "^3.0@RC",
"drupal/jquery_ui": "^1.7",
"drupal/linkit": "^7.0",
"drupal/mailsystem": "^4.5",
"drupal/matomo": "^1.23",
"drupal/matomo": "^2.0@alpha",
"drupal/matomo_reports": "^1.6",
"drupal/media_bulk_upload": "^3.0",
"drupal/media_entity_browser": "^2.0",
"drupal/media_entity_browser": "^3.0",
"drupal/media_file_delete": "^1.3",
"drupal/media_gallery": "^2.2",
"drupal/media_gallery": "^3.0",
"drupal/menu_admin_per_menu": "^1.6",
"drupal/menu_item_extras": "^3.0",
"drupal/menu_item_extras": "^3.1",
"drupal/menu_per_role": "^1.8",
"drupal/metatag": "^2.1",
"drupal/mobile_detect": "^3.0",
"drupal/mobile_detect": "^4.0",
"drupal/module_filter": "^5.0",
"drupal/optional_end_date": "^1.4",
"drupal/paragraphs": "^1.19",
"drupal/paragraphs_browser": "^1.3",
"drupal/paragraphs_browser_previewer": "^2.0",
"drupal/paragraphs_previewer": "^1.9",
"drupal/password_policy": "^4.0",
"drupal/pathauto": "^1.13",
"drupal/pet": "^4.3",
"drupal/poll": "^1.6",
"drupal/quickedit": "^1.0",
"drupal/rabbit_hole": "^1.0@beta",
"drupal/rdf": "^2.0",
"drupal/poll": "^2.0@alpha",
"drupal/rabbit_hole": "^1.0",
"drupal/rdf": "^3.0@beta",
"drupal/redirect": "^1.11",
"drupal/replicate": "^1.2",
"drupal/replicate_ui": "^1.1",
"drupal/replicate": "^1.3",
"drupal/replicate_ui": "^1.2",
"drupal/restrict_ip": "^5.0",
"drupal/restui": "^1.21",
"drupal/restui": "^1.22",
"drupal/route_condition": "^2.0",
"drupal/scheduler": "^2.0",
"drupal/scheduler": "^2.2",
"drupal/seckit": "^2.0",
"drupal/security_review": "^3.1",
"drupal/select2": "^1.15",
"drupal/select2": "^2.0",
"drupal/session_limit": "^2.0",
"drupal/seven": "^1.0@alpha",
"drupal/simple_sitemap": "^4.1",
"drupal/simple_sitemap": "^4.2",
"drupal/slick": "^3.0",
"drupal/slick_entityreference": "^3.0",
"drupal/smart_date": "^4.1",
"drupal/smsframework": "^2.2@RC",
"drupal/smtp": "^1.2",
"drupal/smsframework": "^2.3",
"drupal/smtp": "^1.4",
"drupal/social_api": "^4.0",
"drupal/social_auth": "^4.1",
"drupal/social_auth_vk": "^4.0",
"drupal/sophron": "^2.1",
"drupal/stable": "^2.0",
"drupal/stringoverrides": "^1.8",
"drupal/stringoverrides": "^2.0",
"drupal/svg_image": "^3.2",
"drupal/symfony_mailer": "^1.4",
"drupal/symfony_mailer": "^1.6",
"drupal/taxonomy_access_fix": "^4.0",
"drupal/telephone_validation": "^2.4",
"drupal/telephone_validation": "^2.5",
"drupal/tfa": "^1.10",
"drupal/theme_switcher": "^2.0",
"drupal/time_field": "^2.1",
"drupal/theme_switcher": "^2.1",
"drupal/time_field": "^2.2",
"drupal/token": "^1.15",
"drupal/translatable_config_pages": "^1.0",
"drupal/twig_attributes": "^2.0",
......@@ -128,15 +122,16 @@
"drupal/twig_tweak": "^3.4",
"drupal/tzfield": "^1.11",
"drupal/ultimate_cron": "^2.0@beta",
"drupal/video_embed_field": "^2.5",
"drupal/upgrade_status": "^4.3",
"drupal/video_embed_field": "^3.0@beta",
"drupal/views_aggregator": "^2.1",
"drupal/views_autocomplete_filters": "^2.0",
"drupal/views_bulk_operations": "^4.3",
"drupal/views_data_export": "^1.4",
"drupal/views_data_export": "^1.6",
"drupal/views_infinite_scroll": "^2.0",
"drupal/webform": "^6.2",
"drupal/webform": "^6.3@beta",
"drupal/xls_serialization": "^2.0",
"drush/drush": "^12.4",
"drush/drush": "^13",
"npm-asset/select2": "^4.0",
"oomphinc/composer-installers-extender": "^2.0",
"wikimedia/composer-merge-plugin": "^2.1"
......@@ -236,15 +231,22 @@
"Deprecated function: mb_strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in Drupal\\Component\\Utility\\Html::getId() (line 219 of core/lib/Drupal/Component/Utility/Html.php)": "https://www.drupal.org/files/issues/2023-04-06/3326684-apply-condition1.patch",
"Querying with NULL values results in warning mb_strtolower(): Passing null to parameter is deprecated" : "https://www.drupal.org/files/issues/2022-08-23/3302838-13.patch",
"Replace icons": "./patches/drupal_core/core-icons.patch",
"Remove update module": "./patches/drupal_core/remove-update-module.patch",
"3323621: Exception: Warning: Undefined array key \"preprocess functions\" Drupal\\Core\\Theme\\Registry->mergePreprocessFunctions()": "https://www.drupal.org/files/issues/2022-11-25/3323621-2.patch"
"Remove update module": "./patches/drupal_core/remove-update-module.patch"
},
"drupal/admin_toolbar": {
"Replace icons": "./patches/admin_toolbar/replace-icons.patch"
},
"drupal/select2": {
"3271205: Removing selected option sometimes needs multiple clicks": "https://www.drupal.org/files/issues/2022-04-20/select2-check-indexes-3271205-8.patch",
"3450644: BEF 7.0 compatible": "https://git.drupalcode.org/project/select2/-/merge_requests/36/diffs.patch"
"drupal/quickedit": {
"3434080: Automated Drupal 11 compatibility fixes for quickedit": "patches/quickedit/3434080-41.patch"
},
"drupal/paragraphs_browser_previewer": {
"3433823: Automated Drupal 11 compatibility fixes for paragraphs_browser_previewer": "./patches/paragraphs_browser_previewer/paragraphs_browser_previewer.2.0.1.rector.patch"
},
"drupal/drush_language": {
"3485647: Drupal 11 compatibility": "./patches/drush_language/3485647.patch"
},
"drupal/pet": {
"3433906: Automated Drupal 11 compatibility fixes for pet": "./patches/pet/3433906.patch"
}
}
}
......
This diff is collapsed.
......@@ -7,6 +7,7 @@
"**/.*.json",
".*ignore",
"composer.lock",
"../composer/Metapackage/PinnedDevDependencies/composer.json",
"assets/vendor/**",
"misc/jquery.form.js",
"lib/Drupal/Component/Diff/**",
......@@ -15,25 +16,20 @@
"**/LICENSE.txt",
"../**/LICENSE.txt",
"modules/**/Migrate*Test.php",
"modules/book/tests/fixtures/drupal6.php",
"modules/book/tests/fixtures/drupal7.php",
"modules/ckeditor5/js/build/*",
"modules/forum/tests/fixtures/drupal6.php",
"modules/forum/tests/fixtures/drupal7.php",
"modules/media/tests/fixtures/oembed/*",
"modules/migrate_drupal/tests/fixtures/drupal6.php",
"modules/migrate_drupal/tests/fixtures/drupal7.php",
"modules/navigation/assets/**",
"modules/search/tests/UnicodeTest.txt",
"modules/statistics/tests/fixtures/drupal6.php",
"modules/statistics/tests/fixtures/drupal7.php",
"modules/system/tests/logo.svgz",
"modules/tracker/tests/fixtures/drupal7.php",
"node_modules/*",
"profiles/demo_umami/modules/demo_umami_content/default_content/languages/es/**/*",
"tests/fixtures/config_install/*",
"tests/fixtures/files/*",
"tests/fixtures/phpunit_*.xml",
"tests/Drupal/Tests/Component/Annotation/Doctrine/**",
"tests/PHPStan/vendor/**",
"themes/olivero/fonts/**",
"COPYRIGHT.txt",
"MAINTAINERS.txt",
......@@ -71,12 +67,17 @@
}
],
"flagWords": [
"blacklist",
"blacklisted",
"e-mail",
"grey",
"hte",
"ist",
"please",
"queuing"
"queuing",
"whitelist",
"whitelisted",
"writeable"
],
"overrides": [
{
......
This diff is collapsed.
......@@ -46,6 +46,9 @@ DRUPAL_TEST_CHROMEDRIVER_AUTOSTART=true
# e.g. `--disable-gpu --headless --no-sandbox`.
#DRUPAL_TEST_WEBDRIVER_CHROME_ARGS=
# Use W3C webdriver commands.
#DRUPAL_TEST_WEBDRIVER_W3C=true
# A list of arguments to pass to Webdriver, separated by spaces
# e.g. `--allowed-ips --disable-dev-shm-usage`.
#DRUPAL_TEST_WEBDRIVER_CLI_ARGS=
......
......@@ -2,7 +2,7 @@ assets/vendor/**/*
node_modules/**/*
**/js_test_files/**/*
**/build/**/*
modules/locale/tests/locale_test.js
modules/locale/tests/js/locale_test.js
misc/jquery.form.js
# Ignore deliberately malformed YAML files.
......
......@@ -21,7 +21,7 @@
"_": true,
"Cookies": true,
"Backbone": true,
"Modernizr": true,
"htmx": true,
"loadjs": true,
"Shepherd": true,
"Sortable": true,
......
......@@ -12,8 +12,7 @@
"jQuery": true,
"_": true,
"matchMedia": true,
"Backbone": true,
"Modernizr": true
"Backbone": true
},
"rules": {
"array-bracket-spacing": ["error", "never"],
......
......@@ -26,3 +26,12 @@ nightwatch.settings.json
# Ignore CSpell cache
.cspellcache
# Ignore phpstan cache
phpstan-tmp
# Ignore eslint cache
.eslintcache
# Ignore stylelint cache
.stylelint-cache
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!-- This is a near-copy of phpunit.xml.dist, used to test with upcoming
PHPUnit versions.
Current differences:
* for PHPUnit 11: removed duplicate directories from <testsuites>,
required in PHPUnit 10, but that cause duplication warnings in
PHPUnit 11.
-->
<!-- For how to customize PHPUnit configuration, see core/tests/README.md. -->
<!-- TODO set checkForUnintentionallyCoveredCode="true" once https://www.drupal.org/node/2626832 is resolved. -->
<!-- PHPUnit expects functional tests to be run with either a privileged user
or your current system user. See core/tests/README.md and
https://www.drupal.org/node/2116263 for details.
-->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
bootstrap="tests/bootstrap.php"
colors="true"
beStrictAboutTestsThatDoNotTestAnything="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutChangesToGlobalState="true"
failOnRisky="true"
failOnWarning="true"
displayDetailsOnTestsThatTriggerErrors="true"
displayDetailsOnTestsThatTriggerWarnings="true"
displayDetailsOnTestsThatTriggerDeprecations="true"
cacheResult="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"
cacheDirectory=".phpunit.cache">
<php>
<!-- Set error reporting to E_ALL. -->
<ini name="error_reporting" value="32767"/>
<!-- Do not limit the amount of memory tests take to run. -->
<ini name="memory_limit" value="-1"/>
<!-- Example SIMPLETEST_BASE_URL value: http://localhost -->
<env name="SIMPLETEST_BASE_URL" value=""/>
<!-- Example SIMPLETEST_DB value: mysql://username:password@localhost/database_name#table_prefix -->
<env name="SIMPLETEST_DB" value=""/>
<!-- By default, browser tests will output links that use the base URL set
in SIMPLETEST_BASE_URL. However, if your SIMPLETEST_BASE_URL is an internal
path (such as may be the case in a virtual or Docker-based environment),
you can set the base URL used in the browser test output links to something
reachable from your host machine here. This will allow you to follow them
directly and view the output. -->
<env name="BROWSERTEST_OUTPUT_BASE_URL" value=""/>
<!-- The environment variable SYMFONY_DEPRECATIONS_HELPER is used to configure
the behavior of the deprecation tests.
Drupal core's testing framework is setting this variable to its defaults.
Projects with their own requirements need to manage this variable
explicitly.
-->
<!-- To disable deprecation testing completely uncomment the next line. -->
<!-- <env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled"/> -->
<!-- Deprecation errors can be selectively ignored by specifying a file of
regular expression patterns for exclusion.
Uncomment the line below to specify a custom deprecations ignore file.
NOTE: it may be required to specify the full path to the file to run tests
correctly.
-->
<!-- <env name="SYMFONY_DEPRECATIONS_HELPER" value="ignoreFile=.deprecation-ignore.txt"/> -->
<!-- Example for changing the driver class for mink tests MINK_DRIVER_CLASS value: 'Drupal\FunctionalJavascriptTests\DrupalSelenium2Driver' -->
<env name="MINK_DRIVER_CLASS" value=""/>
<!-- Example for changing the driver args to mink tests MINK_DRIVER_ARGS value: '["http://127.0.0.1:8510"]' -->
<env name="MINK_DRIVER_ARGS" value=""/>
<!-- Example for changing the driver args to webdriver tests MINK_DRIVER_ARGS_WEBDRIVER value: '["chrome", { "goog:chromeOptions": { "w3c": false } }, "http://localhost:4444/wd/hub"]' For using the Firefox browser, replace "chrome" with "firefox" -->
<env name="MINK_DRIVER_ARGS_WEBDRIVER" value=""/>
</php>
<extensions>
<!-- Functional tests HTML output logging. -->
<bootstrap class="Drupal\TestTools\Extension\HtmlLogging\HtmlOutputLogger">
<!-- The directory where the browser output will be stored. If a relative
path is specified, it will be relative to the current working directory
of the process running the PHPUnit CLI. In CI environments, this can be
overridden by the value set for the "BROWSERTEST_OUTPUT_DIRECTORY"
environment variable.
-->
<parameter name="outputDirectory" value="sites/simpletest/browser_output"/>
<!-- By default browser tests print the individual links in the test run
report. To avoid overcrowding the output in CI environments, you can
set the "verbose" parameter or the "BROWSERTEST_OUTPUT_VERBOSE"
environment variable to "false". In GitLabCI, the output is saved
anyway as an artifact that can be browsed or downloaded from Gitlab.
-->
<parameter name="verbose" value="true"/>
</bootstrap>
<!-- Debug dump() printer. -->
<bootstrap class="Drupal\TestTools\Extension\Dump\DebugDump">
<parameter name="colors" value="true"/>
<parameter name="printCaller" value="true"/>
</bootstrap>
</extensions>
<testsuites>
<testsuite name="unit-component">
<directory>tests/Drupal/Tests/Component</directory>
</testsuite>
<testsuite name="unit">
<directory>tests/Drupal/Tests</directory>
<exclude>tests/Drupal/Tests/Component</exclude>
<directory>modules/**/tests/src/Unit</directory>
<directory>profiles/**/tests/src/Unit</directory>
<directory>themes/**/tests/src/Unit</directory>
<directory>../modules/*/**/tests/src/Unit</directory>
<directory>../profiles/*/**/tests/src/Unit</directory>
<directory>../themes/*/**/tests/src/Unit</directory>
</testsuite>
<testsuite name="kernel">
<directory>tests/Drupal/KernelTests</directory>
<directory>modules/**/tests/src/Kernel</directory>
<directory>recipes/*/tests/src/Kernel</directory>
<directory>profiles/**/tests/src/Kernel</directory>
<directory>themes/**/tests/src/Kernel</directory>
<directory>../modules/*/**/tests/src/Kernel</directory>
<directory>../profiles/*/**/tests/src/Kernel</directory>
<directory>../themes/*/**/tests/src/Kernel</directory>
</testsuite>
<testsuite name="functional">
<directory>tests/Drupal/FunctionalTests</directory>
<directory>modules/**/tests/src/Functional</directory>
<directory>profiles/**/tests/src/Functional</directory>
<directory>recipes/*/tests/src/Functional</directory>
<directory>themes/**/tests/src/Functional</directory>
<directory>../modules/*/**/tests/src/Functional</directory>
<directory>../profiles/*/**/tests/src/Functional</directory>
<directory>../themes/*/**/tests/src/Functional</directory>
</testsuite>
<testsuite name="functional-javascript">
<directory>tests/Drupal/FunctionalJavascriptTests</directory>
<directory>modules/**/tests/src/FunctionalJavascript</directory>
<directory>recipes/*/tests/src/FunctionalJavascript</directory>
<directory>profiles/**/tests/src/FunctionalJavascript</directory>
<directory>themes/**/tests/src/FunctionalJavascript</directory>
<directory>../modules/*/**/tests/src/FunctionalJavascript</directory>
<directory>../profiles/*/**/tests/src/FunctionalJavascript</directory>
<directory>../themes/*/**/tests/src/FunctionalJavascript</directory>
</testsuite>
<testsuite name="build">
<directory>tests/Drupal/BuildTests</directory>
<directory>modules/**/tests/src/Build</directory>
<directory>../modules/*/**/tests/src/Build</directory>
</testsuite>
</testsuites>
<!-- Settings for coverage reports. -->
<source ignoreSuppressionOfDeprecations="true">
<include>
<directory>./includes</directory>
<directory>./lib</directory>
<directory>./modules</directory>
<directory>../modules</directory>
<directory>../sites</directory>
</include>
<exclude>
<directory>./lib/Drupal/Component</directory>
<directory>./modules/*/src/Tests</directory>
<directory>./modules/*/tests</directory>
<directory>../modules/*/src/Tests</directory>
<directory>../modules/*/tests</directory>
<directory>../modules/*/*/src/Tests</directory>
<directory>../modules/*/*/tests</directory>
</exclude>
</source>
</phpunit>
nodeLinker: node-modules
......@@ -36,10 +36,6 @@ JavaScript
LoadJS - Copyright (c) 2015 Andres Morey
Modernizr - Copyright (c) 2021 The Modernizr Team
Shepherd - Copyright (c) 2021
Sortable - Copyright (c) 2019 All contributors to Sortable
Tabbable - Copyright (c) 2015 David Clark
......
......@@ -15,7 +15,7 @@ QUICKSTART
----------------------
Prerequisites:
- PHP 8.1.0 (or greater) (https://php.net).
- PHP 8.3.0 (or greater) (https://php.net).
In the instructions below, replace the version x.y.z with the specific version
you wish to download. Example: 8.6.0.zip. You can find the latest stable version
......@@ -48,15 +48,15 @@ Drupal requires:
- A web server with PHP support, for example:
- Apache 2.4.7 (or greater) (http://httpd.apache.org/).
- Nginx 1.1 (or greater) (http://nginx.com/).
- PHP 8.1.0 (or greater) (http://php.net/).
- PHP 8.3.0 (or greater) (http://php.net/).
- One of the following databases:
- MySQL 5.7.8 (or greater) (http://www.mysql.com/).
- MariaDB 10.3.7 (or greater) (https://mariadb.org/). MariaDB is a fully
- MySQL 8.0.0 (or greater) (http://www.mysql.com/).
- MariaDB 10.6.0 (or greater) (https://mariadb.org/). MariaDB is a fully
compatible drop-in replacement for MySQL.
- Percona Server 5.7.8 (or greater) (http://www.percona.com/). Percona
- Percona Server 8.0.0 (or greater) (http://www.percona.com/). Percona
Server is a backwards-compatible replacement for MySQL.
- PostgreSQL 10 (or greater) (http://www.postgresql.org/).
- SQLite 3.26 (or greater) (http://www.sqlite.org/).
- PostgreSQL 16 (or greater) (http://www.postgresql.org/).
- SQLite 3.45 (or greater) (http://www.sqlite.org/).
For more detailed information about Drupal requirements, including a list of
PHP extensions and configurations that are required, see "System requirements"
......
This diff is collapsed.
......@@ -17,7 +17,3 @@ Remove update module
Source: ./patches/drupal_core/remove-update-module.patch
3323621: Exception: Warning: Undefined array key "preprocess functions" Drupal\Core\Theme\Registry->mergePreprocessFunctions()
Source: https://www.drupal.org/files/issues/2022-11-25/3323621-2.patch
......@@ -38,6 +38,10 @@ parameters:
# To maximize compatibility and normalize the behavior across user agents,
# the cookie domain should start with a dot.
#
# Sessions themselves will only be synchronized across subdomains if they
# are all served from the same Drupal installation or if some other session
# sharing mechanism is implemented.
#
# @default none
# cookie_domain: '.example.com'
#
......@@ -47,23 +51,6 @@ parameters:
# information.
# @default no value
cookie_samesite: Lax
#
# Set the session ID string length. The length can be between 22 to 256. The
# PHP recommended value is 48. See
# https://www.php.net/manual/session.security.ini.php for more information.
# This value should be kept in sync with
# \Drupal\Core\Session\SessionConfiguration::__construct()
# @default 48
sid_length: 48
#
# Set the number of bits in encoded session ID character. The possible
# values are '4' (0-9, a-f), '5' (0-9, a-v), and '6' (0-9, a-z, A-Z, "-",
# ","). The PHP recommended value is 6. See
# https://www.php.net/manual/session.security.ini.php for more information.
# This value should be kept in sync with
# \Drupal\Core\Session\SessionConfiguration::__construct()
# @default 6
sid_bits_per_character: 6
# By default, Drupal generates a session cookie name based on the full
# domain name. Set the name_suffix to a short random string to ensure this
# session cookie name is unique on different installations on the same
......@@ -216,22 +203,46 @@ parameters:
# Note: By default the configuration is disabled.
cors.config:
enabled: false
# Specify allowed headers, like 'x-allowed-header'.
# Specifies allowed headers and sets the Access-Control-Allow-Headers
# header. For example, ['X-Custom-Header']. See
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
allowedHeaders: []
# Specify allowed request methods, specify ['*'] to allow all possible ones.
# Specifies allowed request methods and sets the
# Access-Control-Allow-Methods header. For example, ['POST', 'GET',
# 'OPTIONS'] or ['*'] to allow all. Note the wildcard is not yet implemented
# in all browsers. See
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
allowedMethods: []
# Configure requests allowed from specific origins. Do not include trailing
# slashes with URLs.
# Configure requests allowed from specific origins and sets the
# Access-Control-Allow-Origin header. For example,
# ['https://www.drupal.org'] or ['*'] to allow any origin to access your
# resource. See
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
allowedOrigins: ['*']
# Configure requests allowed from origins, matching against regex patterns.
allowedOriginsPatterns: []
# Sets the Access-Control-Expose-Headers header.
# Sets the Access-Control-Expose-Headers header. The default is false which
# means the header will not be set. To set the header use a comma delimited
# list within square brackets. For example, ['Content-Type', 'Expires'] or
# ['*'] to expose all headers. Setting exposedHeaders: ['*'] will result in
# a Access-Control-Expose-Headers: * response header. See
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
exposedHeaders: false
# Sets the Access-Control-Max-Age header.
# Setting Access-Control-Max-Age header value to '0' or false will omit this
# from the response. However, setting it to '-1' will explicitly disable
# caching. For example, setting the value to 600 will cache results of a
# preflight request for 10 minutes. See
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age
maxAge: false
# Sets the Access-Control-Allow-Credentials header.
# Sets the Access-Control-Allow-Credentials header if set to true. See
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
supportsCredentials: false
# The maximum number of entities stored in memory. Lowering this number can
# reduce the amount of memory used in long-running processes like migrations,
# however will also increase requests to the database or entity cache backend.
entity.memory_cache.slots: 1000
queue.config:
# The maximum number of seconds to wait if a queue is temporarily suspended.
# This is not applicable when a queue is suspended but does not specify
......
......@@ -67,10 +67,10 @@
* during the same request.
*
* One example of the simplest connection array is shown below. To use the
* sample settings, copy and uncomment the code below between the @code and
* @endcode lines and paste it after the $databases declaration. You will need
* to replace the database username and password and possibly the host and port
* with the appropriate credentials for your database system.
* sample settings, copy and uncomment the code below and paste it after the
* $databases declaration. You will need to replace the database username and
* password and possibly the host and port with the appropriate credentials for
* your database system.
*
* The next section describes how to customize the $databases array for more
* specific needs.
......@@ -144,7 +144,7 @@ $databases = [];
* in deadlocks, the other two options are 'READ UNCOMMITTED' and 'SERIALIZABLE'.
* They are available but not supported; use them at your own risk. For more
* info:
* https://dev.mysql.com/doc/refman/5.7/en/innodb-transaction-isolation-levels.html
* https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html
*
* On your settings.php, change the isolation level:
* @code
......@@ -312,7 +312,7 @@ $settings['hash_salt'] = '';
$settings['update_free_access'] = FALSE;
/**
* Fallback to HTTP for Update Manager and for fetching security advisories.
* Fallback to HTTP for Update Status and for fetching security advisories.
*
* If your site fails to connect to updates.drupal.org over HTTPS (either when
* fetching data on available updates, or when fetching the feed of critical
......@@ -475,30 +475,6 @@ $settings['update_free_access'] = FALSE;
*/
# $settings['class_loader_auto_detect'] = FALSE;
/**
* Authorized file system operations:
*
* The Update Manager module included with Drupal provides a mechanism for
* site administrators to securely install missing updates for the site
* directly through the web user interface. On securely-configured servers,
* the Update manager will require the administrator to provide SSH or FTP
* credentials before allowing the installation to proceed; this allows the
* site to update the new files as the user who owns all the Drupal files,
* instead of as the user the webserver is running as. On servers where the
* webserver user is itself the owner of the Drupal files, the administrator
* will not be prompted for SSH or FTP credentials (note that these server
* setups are common on shared hosting, but are inherently insecure).
*
* Some sites might wish to disable the above functionality, and only update
* the code directly via SSH or FTP themselves. This setting completely
* disables all functionality related to these authorized file operations.
*
* @see https://www.drupal.org/node/244924
*
* Remove the leading hash signs to disable.
*/
# $settings['allow_authorize_operations'] = FALSE;
/**
* Default mode for directories and files written by Drupal.
*
......@@ -724,17 +700,6 @@ $settings['container_yamls'][] = $app_root . '/' . $site_path . '/services.yml';
*/
# $settings['container_base_class'] = '\Drupal\Core\DependencyInjection\Container';
/**
* Override the default yaml parser class.
*
* Provide a fully qualified class name here if you would like to provide an
* alternate implementation YAML parser. The class must implement the
* \Drupal\Component\Serialization\SerializationInterface interface.
*
* This setting is deprecated in Drupal 10.3 and removed in Drupal 11.
*/
# $settings['yaml_parser_class'] = NULL;
/**
* Trusted host configuration.
*
......@@ -809,16 +774,6 @@ $settings['entity_update_batch_size'] = 50;
*/
$settings['entity_update_backup'] = TRUE;
/**
* State caching.
*
* State caching uses the cache collector pattern to cache all requested keys
* from the state API in a single cache entry, which can greatly reduce the
* amount of database queries. However, some sites may use state with a
* lot of dynamic keys which could result in a very large cache.
*/
$settings['state_cache'] = TRUE;
/**
* Node migration type.
*
......
......@@ -17,3 +17,14 @@ parameters:
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
logger.channel.config_schema:
parent: logger.channel_base
arguments: [ 'config_schema' ]
config.schema_checker:
class: Drupal\Core\Config\Development\LenientConfigSchemaChecker
arguments:
- '@config.typed'
- '@messenger'
- '@logger.channel.config_schema'
tags:
- { name: event_subscriber }
......@@ -48,6 +48,7 @@ core/.phpstan-baseline.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-sp
# Define binary file attributes.
# - Do not treat them as text.
# - Include binary diff in patches instead of "binary files differ."
*.avif -text diff
*.eot -text diff
*.exe -text diff
*.gif -text diff
......
......@@ -44,7 +44,7 @@ if (str_contains($path, '.php')) {
// fallback to index.php.
do {
$path = dirname($path);
if (preg_match('/\.php$/', $path) && is_file(__DIR__ . $path)) {
if (str_ends_with($path, '.php') && is_file(__DIR__ . $path)) {
// Discovered that the path contains an existing PHP file. Use that as the
// script to include.
$script = ltrim($path, '/');
......
......@@ -22,6 +22,9 @@ DirectoryIndex index.php index.html index.htm
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# Add correct encoding for webp.
AddType image/webp .webp
# Most of the following PHP settings cannot be changed at runtime. See
# sites/default/default.settings.php and
# Drupal\Core\DrupalKernel::bootEnvironment() for settings that can be
......@@ -137,10 +140,6 @@ AddEncoding gzip svgz
RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$
# Allow access to test-specific PHP files:
RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?\.php
# Allow access to Statistics module's custom front controller.
# Copy and adapt this rule to directly execute PHP files in contributed or
# custom modules or to run another PHP application in the same directory.
RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics\.php$
# Deny access to any other PHP files that do not match the rules above.
# Specifically, disallow autoload.php from being served directly.
RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
......
Recipes allow the automation of Drupal module and theme installation and
configuration.
WHAT TO PLACE IN THIS DIRECTORY?
--------------------------------
Placing downloaded and custom recipes in this directory separates downloaded and
custom recipes from Drupal core's recipes. This allows Drupal core to be updated
without overwriting these files.
......@@ -46,7 +46,6 @@ Disallow: /composer/Template/README.txt
Disallow: /modules/README.txt
Disallow: /sites/README.txt
Disallow: /themes/README.txt
Disallow: /web.config
# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
......
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- Don't show directory listings for URLs which map to a directory. -->
<directoryBrowse enabled="false" />
<!--
Caching configuration was not delegated by default. Some hosters may not
delegate the caching configuration to site owners by default and that
may cause errors when users install. Uncomment this if you want to and
are allowed to enable caching.
-->
<!--
<caching>
<profiles>
<add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
<add extension=".html" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" duration="14:00:00" />
</profiles>
</caching>
-->
<rewrite>
<rules>
<rule name="Protect files and directories from prying eyes" stopProcessing="true">
<match url="\.(engine|inc|install|module|profile|po|sh|.*sql|theme|twig|tpl(\.php)?|xtmpl|yml|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format|composer\.(json|lock)|\.htaccess|yarn.lock|package.json)$" />
<action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Forbidden" statusDescription="Access is forbidden." />
</rule>
<rule name="Force simple error message for requests for non-existent favicon.ico" stopProcessing="true">
<match url="favicon\.ico" />
<action type="CustomResponse" statusCode="404" subStatusCode="1" statusReason="File Not Found" statusDescription="The requested file favicon.ico was not found" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
</rule>
<!-- To redirect all users to access the site WITH the 'www.' prefix,
http://example.com/foo will be redirected to http://www.example.com/foo)
adapt and uncomment the following: -->
<!--
<rule name="Redirect to add www" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example\.com$" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="http://www.example.com/{R:1}" />
</rule>
-->
<!-- To redirect all users to access the site WITHOUT the 'www.' prefix,
http://www.example.com/foo will be redirected to http://example.com/foo)
adapt and uncomment the following: -->
<!--
<rule name="Redirect to remove www" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.example\.com$" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="http://example.com/{R:1}" />
</rule>
-->
<!-- Pass all requests not referring directly to files in the filesystem
to index.php. -->
<rule name="Short URLS" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
<!-- If running Windows Server 2008 R2 this can be commented out -->
<!-- httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" />
</httpErrors -->
<defaultDocument>
<!-- Set the default document -->
<files>
<clear />
<add value="index.php" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
{
"type": "object",
"required": [
"extractor",
"template"
],
"properties": {
"label": {
"title": "Label",
"description": "Translatable label",
"type": "string"
},
"description": {
"title": "Description",
"description": "Translatable description",
"type": "string"
},
"enabled": {
"type": "boolean"
},
"version": {
"title": "Version",
"type": "string"
},
"links": {
"title": "External links",
"description": "Both compact and full syntaxes are available",
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"format": "iri-reference"
},
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string",
"format": "iri-reference"
}
}
}
]
}
},
"license": {
"title": "License",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string",
"format": "iri-reference"
},
"gpl-compatible": {
"type": "boolean"
}
}
},
"extractor": {
"title": "Extractor ID",
"description": "The plugin ID of the extractor",
"type": "string",
"pattern": "^[A-Za-z]+\\w*$"
},
"config": {
"title": "Extractor configuration",
"description": "The structure is specific to the extractor plugin",
"type": "object"
},
"settings": {
"title": "Settings",
"description": "Used to build the settings form. Each setting is a JSON schema",
"type": "object",
"patternProperties": {
"^\\w+$": {
"$ref": "http://json-schema.org/draft-04/schema#"
}
},
"additionalProperties": false
},
"template": {
"title": "Twig template",
"type": "string"
},
"library": {
"title": "Asset library",
"description": "The ID of an asset library",
"type": "string",
"pattern": "^\\w+/[A-Za-z]+\\w*$"
}
}
}
\ No newline at end of file
......@@ -2,10 +2,29 @@
"$id": "https://git.drupalcode.org/project/drupal/-/raw/HEAD/core/assets/schemas/v1/metadata-full.schema.json",
"$schema": "http://json-schema.org/draft-04/schema#",
"$defs": {
"propDefinition": {
"$ref": "http://json-schema.org/draft-04/schema#",
"meta:enum": {
"type": "object",
"minItems": 1,
"uniqueItems": true,
"patternProperties": {
"additionalProperties": false,
"^[a-zA-Z0-9_-]*$": {
"type": "string"
}
}
},
"x-translation-context": {
"type": "string",
"title": "Translation Context"
}
},
"slotDefinition": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^[a-zA-Z0-9_-]$": {
"^[a-zA-Z0-9_-]+$": {
"type": "object",
"properties": {
"title": {
......@@ -25,6 +44,26 @@
}
}
}
},
"variantDefinition": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^[a-zA-Z0-9_-]+$": {
"type": "object",
"required": ["title"],
"properties": {
"title": {
"type": "string",
"title": "Title"
},
"description": {
"type": "string",
"title": "Description"
}
}
}
}
}
},
"type": "object",
......@@ -139,11 +178,14 @@
]
},
"props": {
"$ref": "http://json-schema.org/draft-04/schema#"
"$ref": "#/$defs/propDefinition"
},
"slots": {
"$ref": "metadata.schema.json#/$defs/slotDefinition"
},
"variants": {
"$ref": "metadata.schema.json#/$defs/variantDefinition"
},
"template": {
"type": "string",
"title": "Template",
......
......@@ -2,10 +2,29 @@
"$id": "https://git.drupalcode.org/project/drupal/-/raw/HEAD/core/assets/schemas/v1/metadata.schema.json",
"$schema": "http://json-schema.org/draft-04/schema#",
"$defs": {
"propDefinition": {
"$ref": "http://json-schema.org/draft-04/schema#",
"meta:enum": {
"type": "object",
"minItems": 1,
"uniqueItems": true,
"patternProperties": {
"additionalProperties": false,
"^[a-zA-Z0-9_-]*$": {
"type": "string"
}
}
},
"x-translation-context": {
"type": "string",
"title": "Translation Context"
}
},
"slotDefinition": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^[a-zA-Z0-9_-]$": {
"^[a-zA-Z0-9_-]+$": {
"type": "object",
"properties": {
"title": {
......@@ -26,6 +45,26 @@
}
}
},
"variantDefinition": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^[a-zA-Z0-9_-]+$": {
"type": "object",
"required": ["title"],
"properties": {
"title": {
"type": "string",
"title": "Title"
},
"description": {
"type": "string",
"title": "Description"
}
}
}
}
},
"cssAttributes": {
"type": [
"object",
......@@ -187,11 +226,14 @@
]
},
"props": {
"$ref": "http://json-schema.org/draft-04/schema#"
"$ref": "#/$defs/propDefinition"
},
"slots": {
"$ref": "#/$defs/slotDefinition"
},
"variants": {
"$ref": "#/$defs/variantDefinition"
},
"libraryOverrides": {
"$ref": "#/$defs/libraryDefinition"
},
......
// Backbone.js 1.6.0
// Backbone.js 1.6.1
// (c) 2010-2024 Jeremy Ashkenas and DocumentCloud
// Backbone may be freely distributed under the MIT license.
......@@ -44,7 +44,7 @@
var slice = Array.prototype.slice;
// Current version of the library. Keep in sync with `package.json`.
Backbone.VERSION = '1.6.0';
Backbone.VERSION = '1.6.1';
// For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns
// the `$` variable.
......@@ -523,7 +523,9 @@
if (this.idAttribute in attrs) {
var prevId = this.id;
this.id = this.get(this.idAttribute);
this.trigger('changeId', this, prevId, options);
if (this.id !== prevId) {
this.trigger('changeId', this, prevId, options);
}
}
// Trigger all relevant attribute changes.
......
/*!
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
* @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md.
*/(()=>{var e={782:(e,t,r)=>{e.exports=r(237)("./src/core.js")},260:(e,t,r)=>{e.exports=r(237)("./src/upload.js")},237:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};(()=>{"use strict";r.r(o),r.d(o,{CKFinderUploadAdapter:()=>a});var e=r(782),t=r(260);const n="ckCsrfToken",s="abcdefghijklmnopqrstuvwxyz0123456789";function i(){let e=function(e){e=e.toLowerCase();const t=document.cookie.split(";");for(const r of t){const t=r.split("=");if(decodeURIComponent(t[0].trim().toLowerCase())===e)return decodeURIComponent(t[1])}return null}(n);var t,r;return e&&40==e.length||(e=function(e){let t="";const r=new Uint8Array(e);window.crypto.getRandomValues(r);for(let e=0;e<r.length;e++){const o=s.charAt(r[e]%36);t+=Math.random()>.5?o.toUpperCase():o}return t}(40),t=n,r=e,document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(r)+";path=/"),e}class a extends e.Plugin{static get requires(){return[t.FileRepository]}static get pluginName(){return"CKFinderUploadAdapter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.config.get("ckfinder.uploadUrl");e&&(this.editor.plugins.get(t.FileRepository).createUploadAdapter=t=>new d(t,e,this.editor.t))}}class d{constructor(e,t,r){this.loader=e,this.url=t,this.t=r}upload(){return this.loader.file.then((e=>new Promise(((t,r)=>{this._initRequest(),this._initListeners(t,r,e),this._sendRequest(e)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const e=this.xhr=new XMLHttpRequest;e.open("POST",this.url,!0),e.responseType="json"}_initListeners(e,t,r){const o=this.xhr,n=this.loader,s=(0,this.t)("Cannot upload file:")+` ${r.name}.`;o.addEventListener("error",(()=>t(s))),o.addEventListener("abort",(()=>t())),o.addEventListener("load",(()=>{const r=o.response;if(!r||!r.uploaded)return t(r&&r.error&&r.error.message?r.error.message:s);e({default:r.url})})),o.upload&&o.upload.addEventListener("progress",(e=>{e.lengthComputable&&(n.uploadTotal=e.total,n.uploaded=e.loaded)}))}_sendRequest(e){const t=new FormData;t.append("upload",e),t.append("ckCsrfToken",i()),this.xhr.send(t)}}})(),(window.CKEditor5=window.CKEditor5||{}).adapterCkfinder=o})();
\ No newline at end of file
*/(()=>{var e={237:e=>{"use strict";e.exports=CKEditor5.dll},260:(e,t,r)=>{e.exports=r(237)("./src/upload.js")},782:(e,t,r)=>{e.exports=r(237)("./src/core.js")}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};(()=>{"use strict";r.r(o),r.d(o,{CKFinderUploadAdapter:()=>a});var e=r(782),t=r(260);const n="ckCsrfToken",s="abcdefghijklmnopqrstuvwxyz0123456789";function i(){let e=function(e){e=e.toLowerCase();const t=document.cookie.split(";");for(const r of t){const t=r.split("=");if(decodeURIComponent(t[0].trim().toLowerCase())===e)return decodeURIComponent(t[1])}return null}(n);var t,r;return e&&40==e.length||(e=function(e){let t="";const r=new Uint8Array(e);window.crypto.getRandomValues(r);for(let e=0;e<r.length;e++){const o=s.charAt(r[e]%36);t+=Math.random()>.5?o.toUpperCase():o}return t}(40),t=n,r=e,document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(r)+";path=/"),e}class a extends e.Plugin{static get requires(){return[t.FileRepository]}static get pluginName(){return"CKFinderUploadAdapter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.config.get("ckfinder.uploadUrl");e&&(this.editor.plugins.get(t.FileRepository).createUploadAdapter=t=>new d(t,e,this.editor.t))}}class d{loader;url;t;xhr;constructor(e,t,r){this.loader=e,this.url=t,this.t=r}upload(){return this.loader.file.then((e=>new Promise(((t,r)=>{this._initRequest(),this._initListeners(t,r,e),this._sendRequest(e)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const e=this.xhr=new XMLHttpRequest;e.open("POST",this.url,!0),e.responseType="json"}_initListeners(e,t,r){const o=this.xhr,n=this.loader,s=(0,this.t)("Cannot upload file:")+` ${r.name}.`;o.addEventListener("error",(()=>t(s))),o.addEventListener("abort",(()=>t())),o.addEventListener("load",(()=>{const r=o.response;if(!r||!r.uploaded)return t(r&&r.error&&r.error.message?r.error.message:s);e({default:r.url})})),o.upload&&o.upload.addEventListener("progress",(e=>{e.lengthComputable&&(n.uploadTotal=e.total,n.uploaded=e.loaded)}))}_sendRequest(e){const t=new FormData;t.append("upload",e),t.append("ckCsrfToken",i()),this.xhr.send(t)}}})(),(window.CKEditor5=window.CKEditor5||{}).adapterCkfinder=o})();
\ No newline at end of file
!function(n){const i=n.be=n.be||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Выраўнаваць па цэнтры","Align left":"Выраўнаваць па левым краі","Align right":"Выраўнаваць па правым краі",Justify:"Выраўнаваць па шырыні","Text alignment":"Выраўнаваць тэкст","Text alignment toolbar":"Выраўноўванне"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(i){const n=i.be=i.be||{};n.dictionary=Object.assign(n.dictionary||{},{"Revert autoformatting action":"Адмяніць дзеянне аўтафарматавання"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"Saving changes":"Saving changes"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
!function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"Saving changes":"Saving changes"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
/*!
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
* @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md.
*/(()=>{var t={782:(t,e,i)=>{t.exports=i(237)("./src/core.js")},584:(t,e,i)=>{t.exports=i(237)("./src/utils.js")},237:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function i(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,i),o.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{Autosave:()=>D});var t=i(782),e=i(584);const s=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};const o="object"==typeof global&&global&&global.Object===Object&&global;var r="object"==typeof self&&self&&self.Object===Object&&self;const a=o||r||Function("return this")();const c=function(){return a.Date.now()};var u=/\s/;const l=function(t){for(var e=t.length;e--&&u.test(t.charAt(e)););return e};var d=/^\s+/;const h=function(t){return t?t.slice(0,l(t)+1).replace(d,""):t};const v=a.Symbol;var f=Object.prototype,m=f.hasOwnProperty,g=f.toString,_=v?v.toStringTag:void 0;const p=function(t){var e=m.call(t,_),i=t[_];try{t[_]=void 0;var n=!0}catch(t){}var s=g.call(t);return n&&(e?t[_]=i:delete t[_]),s};var b=Object.prototype.toString;const y=function(t){return b.call(t)};var S=v?v.toStringTag:void 0;const T=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":S&&S in Object(t)?p(t):y(t)};const j=function(t){return null!=t&&"object"==typeof t};const w=function(t){return"symbol"==typeof t||j(t)&&"[object Symbol]"==T(t)};var O=/^[-+]0x[0-9a-f]+$/i,P=/^0b[01]+$/i,A=/^0o[0-7]+$/i,x=parseInt;const E=function(t){if("number"==typeof t)return t;if(w(t))return NaN;if(s(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=s(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=h(t);var i=P.test(t);return i||A.test(t)?x(t.slice(2),i?2:8):O.test(t)?NaN:+t};var N=Math.max,I=Math.min;const C=function(t,e,i){var n,o,r,a,u,l,d=0,h=!1,v=!1,f=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function m(e){var i=n,s=o;return n=o=void 0,d=e,a=t.apply(s,i)}function g(t){var i=t-l;return void 0===l||i>=e||i<0||v&&t-d>=r}function _(){var t=c();if(g(t))return p(t);u=setTimeout(_,function(t){var i=e-(t-l);return v?I(i,r-(t-d)):i}(t))}function p(t){return u=void 0,f&&n?m(t):(n=o=void 0,a)}function b(){var t=c(),i=g(t);if(n=arguments,o=this,l=t,i){if(void 0===u)return function(t){return d=t,u=setTimeout(_,e),h?m(t):a}(l);if(v)return clearTimeout(u),u=setTimeout(_,e),m(l)}return void 0===u&&(u=setTimeout(_,e)),a}return e=E(e)||0,s(i)&&(h=!!i.leading,r=(v="maxWait"in i)?N(E(i.maxWait)||0,e):r,f="trailing"in i?!!i.trailing:f),b.cancel=function(){void 0!==u&&clearTimeout(u),d=0,n=l=o=u=void 0},b.flush=function(){return void 0===u?a:p(c())},b};class D extends t.Plugin{static get pluginName(){return"Autosave"}static get isOfficialPlugin(){return!0}static get requires(){return[t.PendingActions]}constructor(i){super(i),this._action=null;const n=i.config.get("autosave")||{},s=n.waitingTime||1e3;this.set("state","synchronized"),this._debouncedSave=C(this._save.bind(this),s),this._lastDocumentVersion=i.model.document.version,this._savePromise=null,this._domEmitter=new((0,e.DomEmitterMixin)()),this._config=n,this._pendingActions=i.plugins.get(t.PendingActions),this._makeImmediateSave=!1}init(){const t=this.editor,e=t.model.document;this.listenTo(t,"ready",(()=>{this.listenTo(e,"change:data",((t,e)=>{this._saveCallbacks.length&&e.isLocal&&("synchronized"===this.state&&(this.state="waiting",this._setPendingAction()),"waiting"===this.state&&this._debouncedSave())}))})),this.listenTo(t,"destroy",(()=>this._flush()),{priority:"highest"}),this._domEmitter.listenTo(window,"beforeunload",((t,e)=>{this._pendingActions.hasAny&&(e.returnValue=this._pendingActions.first.message)}))}destroy(){this._domEmitter.stopListening(),super.destroy()}save(){return this._debouncedSave.cancel(),this._save()}_flush(){this._debouncedSave.flush()}_save(){return this._savePromise?(this._makeImmediateSave=this.editor.model.document.version>this._lastDocumentVersion,this._savePromise):(this._setPendingAction(),this.state="saving",this._lastDocumentVersion=this.editor.model.document.version,this._savePromise=Promise.resolve().then((()=>Promise.all(this._saveCallbacks.map((t=>t(this.editor)))))).finally((()=>{this._savePromise=null})).then((()=>{if(this._makeImmediateSave)return this._makeImmediateSave=!1,this._save();this.editor.model.document.version>this._lastDocumentVersion?(this.state="waiting",this._debouncedSave()):(this.state="synchronized",this._pendingActions.remove(this._action),this._action=null)})).catch((t=>{throw this.state="error",this.state="saving",this._debouncedSave(),t})),this._savePromise)}_setPendingAction(){const t=this.editor.t;this._action||(this._action=this._pendingActions.add(t("Saving changes")))}get _saveCallbacks(){const t=[];return this.adapter&&this.adapter.save&&t.push(this.adapter.save),this._config.save&&t.push(this._config.save),t}}})(),(window.CKEditor5=window.CKEditor5||{}).autosave=n})();
\ No newline at end of file
*/(()=>{var e={237:e=>{"use strict";e.exports=CKEditor5.dll},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")}},t={};function i(s){var n=t[s];if(void 0!==n)return n.exports;var o=t[s]={exports:{}};return e[s](o,o.exports,i),o.exports}i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};(()=>{"use strict";i.r(s),i.d(s,{Autosave:()=>o});var e=i(782),t=i(584);function n(e,t,{signal:i,edges:s}={}){let n,o=null;const a=null!=s&&s.includes("leading"),r=null==s||s.includes("trailing"),l=()=>{null!==o&&(e.apply(n,o),n=void 0,o=null)};let c=null;const d=()=>{null!=c&&clearTimeout(c),c=setTimeout((()=>{c=null,r&&l(),h()}),t)},u=()=>{null!==c&&(clearTimeout(c),c=null)},h=()=>{u(),n=void 0,o=null},m=function(...e){if(i?.aborted)return;n=this,o=e;const t=null==c;d(),a&&t&&l()};return m.schedule=d,m.cancel=h,m.flush=()=>{u(),l()},i?.addEventListener("abort",h,{once:!0}),m}class o extends e.Plugin{adapter;_debouncedSave;_lastDocumentVersion;_savePromise;_domEmitter;_config;_pendingActions;_makeImmediateSave;_action=null;static get pluginName(){return"Autosave"}static get isOfficialPlugin(){return!0}static get requires(){return[e.PendingActions]}constructor(i){super(i);const s=i.config.get("autosave")||{},o=s.waitingTime||1e3;this.set("state","synchronized"),this._debouncedSave=function(e,t=0,i={}){"object"!=typeof i&&(i={});const{signal:s,leading:o=!1,trailing:a=!0,maxWait:r}=i,l=Array(2);let c;o&&(l[0]="leading"),a&&(l[1]="trailing");let d=null;const u=n((function(...t){c=e.apply(this,t),d=null}),t,{signal:s,edges:l}),h=function(...t){if(null!=r)if(null===d)d=Date.now();else if(Date.now()-d>=r)return c=e.apply(this,t),d=Date.now(),u.cancel(),u.schedule(),c;return u.apply(this,t),c};return h.cancel=u.cancel,h.flush=()=>(u.flush(),c),h}(this._save.bind(this),o),this._lastDocumentVersion=i.model.document.version,this._savePromise=null,this._domEmitter=new((0,t.DomEmitterMixin)()),this._config=s,this._pendingActions=i.plugins.get(e.PendingActions),this._makeImmediateSave=!1}init(){const e=this.editor,t=e.model.document;this.listenTo(e,"ready",(()=>{this.listenTo(t,"change:data",((e,t)=>{this._saveCallbacks.length&&t.isLocal&&("synchronized"===this.state&&(this.state="waiting",this._setPendingAction()),"waiting"===this.state&&this._debouncedSave())}))})),this.listenTo(e,"destroy",(()=>this._flush()),{priority:"highest"}),this._domEmitter.listenTo(window,"beforeunload",((e,t)=>{this._pendingActions.hasAny&&(t.returnValue=this._pendingActions.first.message)}))}destroy(){this._domEmitter.stopListening(),super.destroy()}save(){return this._debouncedSave.cancel(),this._save()}_flush(){this._debouncedSave.flush()}_save(){return this._savePromise?(this._makeImmediateSave=this.editor.model.document.version>this._lastDocumentVersion,this._savePromise):(this._setPendingAction(),this.state="saving",this._lastDocumentVersion=this.editor.model.document.version,this._savePromise=Promise.resolve().then((()=>Promise.all(this._saveCallbacks.map((e=>e(this.editor)))))).finally((()=>{this._savePromise=null})).then((()=>{if(this._makeImmediateSave)return this._makeImmediateSave=!1,this._save();this.editor.model.document.version>this._lastDocumentVersion?(this.state="waiting",this._debouncedSave()):(this.state="synchronized",this._pendingActions.remove(this._action),this._action=null)})).catch((e=>{throw this.state="error",this.state="saving",this._debouncedSave(),e})),this._savePromise)}_setPendingAction(){const e=this.editor.t;this._action||(this._action=this._pendingActions.add(e("Saving changes")))}get _saveCallbacks(){const e=[];return this.adapter&&this.adapter.save&&e.push(this.adapter.save),this._config.save&&e.push(this._config.save),e}}})(),(window.CKEditor5=window.CKEditor5||{}).autosave=s})();
\ No newline at end of file
!function(n){const i=n.be=n.be||{};i.dictionary=Object.assign(i.dictionary||{},{"Saving changes":"Захаванне змен"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(t){const e=t.be=t.be||{};e.dictionary=Object.assign(e.dictionary||{},{Bold:"Тоўсты","Bold text":"Тоўсты тэкст",Code:"Код",Italic:"Курсіў","Italic text":"Текст курсівам","Move out of an inline code style":"Выйсці з убудаванага сцілю",Strikethrough:"Перакрэслены","Strikethrough text":"Перакрэслены тэкст",Subscript:"Ніжні індэкс",Superscript:"Верхні індэкс",Underline:"Падкрэслены","Underline text":"Падкрэслены тэкст"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(i){const n=i.be=i.be||{};n.dictionary=Object.assign(n.dictionary||{},{"Block quote":"Цытата"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.af=o.af||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.af=o.af||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ar=o.ar||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"إشارة مرجعية","Bookmark must not be empty.":"لا يجب أن تكون الإشارة المرجعية فارغة.","Bookmark name":"اسم الإشارة المرجعية","Bookmark name already exists.":"اسم الإشارة المرجعية موجود بالفعل.","Bookmark name cannot contain space characters.":"لا يمكن أن يحتوي اسم الإشارة المرجعية على مسافة.","bookmark widget":"أداة الإشارة المرجعية","Edit bookmark":"تحرير الإشارة المرجعية","Enter the bookmark name without spaces.":"أدخل اسم الإشارة المرجعية بدون مسافات.",Insert:"إدراج","Remove bookmark":"إزالة الإشارة المرجعية",Update:"تحديث"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ar=o.ar||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"إشارة مرجعية","Bookmark must not be empty.":"لا يجب أن تكون الإشارة المرجعية فارغة.","Bookmark name":"اسم الإشارة المرجعية","Bookmark name already exists.":"اسم الإشارة المرجعية موجود بالفعل.","Bookmark name cannot contain space characters.":"لا يمكن أن يحتوي اسم الإشارة المرجعية على مسافة.","Bookmark toolbar":"شريط أدوات الإشارة المرجعية","bookmark widget":"أداة الإشارة المرجعية",Bookmarks:"الإشارات المرجعية","Edit bookmark":"تحرير الإشارة المرجعية","Enter the bookmark name without spaces.":"أدخل اسم الإشارة المرجعية بدون مسافات.","No bookmarks available.":"لا توجد إشارات مرجعية متاحة.","Remove bookmark":"إزالة الإشارة المرجعية","Scroll to bookmark":"مرر إلى الإشارة المرجعية"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ast=o.ast||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ast=o.ast||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.az=o.az||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.az=o.az||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.be=o.be||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Закладка","Bookmark must not be empty.":"Закладка не можа быць пустой.","Bookmark name":"Імя закладкі","Bookmark name already exists.":"Імя закладкі ўжо існуе.","Bookmark name cannot contain space characters.":"Імя закладкі не можа ўтрымліваць прабелы.","Bookmark toolbar":"","bookmark widget":"віджэт закладкаў",Bookmarks:"","Edit bookmark":"Змяніць закладку","Enter the bookmark name without spaces.":"Увядзіце імя закладкі без прабелаў.","No bookmarks available.":"","Remove bookmark":"Выдаліць закладку","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.bg=o.bg||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Отметка","Bookmark must not be empty.":"Отметката не трябва да е празна.","Bookmark name":"Име на отметка","Bookmark name already exists.":"Името на отметката вече съществува.","Bookmark name cannot contain space characters.":"Името на отметката не може да съдържа интервали.","bookmark widget":"изпълним модул за отметки","Edit bookmark":"Редактиране на отметка","Enter the bookmark name without spaces.":"Въведете името на отметката без интервали.",Insert:"Вмъкни","Remove bookmark":"Премахване на отметка",Update:"Обнови"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.bg=o.bg||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Отметка","Bookmark must not be empty.":"Отметката не трябва да е празна.","Bookmark name":"Име на отметка","Bookmark name already exists.":"Името на отметката вече съществува.","Bookmark name cannot contain space characters.":"Името на отметката не може да съдържа интервали.","Bookmark toolbar":"Лента с отметки","bookmark widget":"изпълним модул за отметки",Bookmarks:"Отметки","Edit bookmark":"Редактиране на отметка","Enter the bookmark name without spaces.":"Въведете името на отметката без интервали.","No bookmarks available.":"Няма налични отметки","Remove bookmark":"Премахване на отметка","Scroll to bookmark":"Превъртане до отметка"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.bn=o.bn||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"বুকমার্ক","Bookmark must not be empty.":"বুকমার্ক খালি রাখা যাবে না।","Bookmark name":"বুকমার্কের নাম","Bookmark name already exists.":"বুকমার্কের নাম আগে থেকেই বিদ্যমান।","Bookmark name cannot contain space characters.":"বুকমার্কের নামে স্পেস ক্যারেক্টার রাখা যাবে না।","bookmark widget":"বুকমার্ক উইজেট","Edit bookmark":"বুকমার্ক এডিট করুন","Enter the bookmark name without spaces.":"স্পেস ছাড়া বুকমার্কের নাম লিখুন।",Insert:"ঢোকান","Remove bookmark":"বুকমার্ক অপসারণ করুন",Update:"আপডেট করুন"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.bn=o.bn||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"বুকমার্ক","Bookmark must not be empty.":"বুকমার্ক খালি রাখা যাবে না।","Bookmark name":"বুকমার্কের নাম","Bookmark name already exists.":"বুকমার্কের নাম আগে থেকেই বিদ্যমান।","Bookmark name cannot contain space characters.":"বুকমার্কের নামে স্পেস ক্যারেক্টার রাখা যাবে না।","Bookmark toolbar":"বুকমার্ক টুলবার","bookmark widget":"বুকমার্ক উইজেট",Bookmarks:"বুকমার্কস","Edit bookmark":"বুকমার্ক এডিট করুন","Enter the bookmark name without spaces.":"স্পেস ছাড়া বুকমার্কের নাম লিখুন।","No bookmarks available.":"কোনো বুকমার্কস উপলব্ধ নেই।","Remove bookmark":"বুকমার্ক অপসারণ করুন","Scroll to bookmark":"বুকমার্কে স্ক্রল করুন"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.bs=o.bs||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.bs=o.bs||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const o=a.ca=a.ca||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Marcador","Bookmark must not be empty.":"El marcador no pot estar buit.","Bookmark name":"Nom del marcador","Bookmark name already exists.":"El nom del marcador ja existeix.","Bookmark name cannot contain space characters.":"El nom del marcador no pot contenir espais.","bookmark widget":"giny de marcador","Edit bookmark":"Edita el marcador","Enter the bookmark name without spaces.":"Introdueix el nom del marcador sense espais.",Insert:"Introduir","Remove bookmark":"Elimina el marcador",Update:"Actualitzar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const o=a.ca=a.ca||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Marcador","Bookmark must not be empty.":"El marcador no pot estar buit.","Bookmark name":"Nom del marcador","Bookmark name already exists.":"El nom del marcador ja existeix.","Bookmark name cannot contain space characters.":"El nom del marcador no pot contenir espais.","Bookmark toolbar":"Barra d'eines d'adreces d'interès","bookmark widget":"giny de marcador",Bookmarks:"Adreces d'interès","Edit bookmark":"Edita el marcador","Enter the bookmark name without spaces.":"Introdueix el nom del marcador sense espais.","No bookmarks available.":"No hi ha cap adreça d'interès disponible.","Remove bookmark":"Elimina el marcador","Scroll to bookmark":"Desplaça't fins a les adreces d'interès"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const e=o.cs=o.cs||{};e.dictionary=Object.assign(e.dictionary||{},{Bookmark:"Záložka","Bookmark must not be empty.":"Záložka nesmí být prázdná","Bookmark name":"Název záložky","Bookmark name already exists.":"Záložka s tímto názvem už existuje.","Bookmark name cannot contain space characters.":"Název záložky nemůže obsahovat znaky mezery.","bookmark widget":"widget záložky","Edit bookmark":"Upravit záložku","Enter the bookmark name without spaces.":"Zadejte název záložky bez mezer.",Insert:"Vložit","Remove bookmark":"Odstranit záložku",Update:"Aktualizace"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.cs=o.cs||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Záložka","Bookmark must not be empty.":"Záložka nesmí být prázdná","Bookmark name":"Název záložky","Bookmark name already exists.":"Záložka s tímto názvem už existuje.","Bookmark name cannot contain space characters.":"Název záložky nemůže obsahovat znaky mezery.","Bookmark toolbar":"Panel nástrojů záložek","bookmark widget":"widget záložky",Bookmarks:"Záložky","Edit bookmark":"Upravit záložku","Enter the bookmark name without spaces.":"Zadejte název záložky bez mezer.","No bookmarks available.":"Žádné záložky nejsou k dispozici","Remove bookmark":"Odstranit záložku","Scroll to bookmark":"Přejít na záložku"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(e){const o=e.da=e.da||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Bogmærke","Bookmark must not be empty.":"Bogmærke må ikke være tomt.","Bookmark name":"Bogmærkenavn","Bookmark name already exists.":"Bogmærkenavnet findes allerede.","Bookmark name cannot contain space characters.":"Bogmærkenavnet må ikke indholde mellemrum.","bookmark widget":"bogmærke-widget","Edit bookmark":"Rediger bogmærke","Enter the bookmark name without spaces.":"Indtast bogmærkenavnet uden mellemrum.",Insert:"Indsæt","Remove bookmark":"Fjern bogmærke",Update:"Opdater"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const e=o.da=o.da||{};e.dictionary=Object.assign(e.dictionary||{},{Bookmark:"Bogmærke","Bookmark must not be empty.":"Bogmærke må ikke være tomt.","Bookmark name":"Bogmærkenavn","Bookmark name already exists.":"Bogmærkenavnet findes allerede.","Bookmark name cannot contain space characters.":"Bogmærkenavnet må ikke indholde mellemrum.","Bookmark toolbar":"Bogmærkelinje","bookmark widget":"bogmærke-widget",Bookmarks:"Bogmærker","Edit bookmark":"Rediger bogmærke","Enter the bookmark name without spaces.":"Indtast bogmærkenavnet uden mellemrum.","No bookmarks available.":"Ingen bogmærker tilgængelige.","Remove bookmark":"Fjern bogmærke","Scroll to bookmark":"Rul til bogmærke"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["de-ch"]=o["de-ch"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["de-ch"]=o["de-ch"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(e){const n=e.de=e.de||{};n.dictionary=Object.assign(n.dictionary||{},{Bookmark:"Lesezeichen","Bookmark must not be empty.":"Das Lesezeichen darf nicht leer sein.","Bookmark name":"Name des Lesezeichens","Bookmark name already exists.":"Der Lesezeichenname existiert bereits.","Bookmark name cannot contain space characters.":"Der Name des Lesezeichens darf keine Leerzeichen enthalten.","bookmark widget":"Lesezeichen-Widget","Edit bookmark":"Lesezeichen bearbeiten","Enter the bookmark name without spaces.":"Geben Sie den Namen des Lesezeichens ohne Leerzeichen ein.",Insert:"Einfügen","Remove bookmark":"Lesezeichen entfernen",Update:"Aktualisieren"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(e){const n=e.de=e.de||{};n.dictionary=Object.assign(n.dictionary||{},{Bookmark:"Lesezeichen","Bookmark must not be empty.":"Das Lesezeichen darf nicht leer sein.","Bookmark name":"Name des Lesezeichens","Bookmark name already exists.":"Der Lesezeichenname existiert bereits.","Bookmark name cannot contain space characters.":"Der Name des Lesezeichens darf keine Leerzeichen enthalten.","Bookmark toolbar":"Lesezeichen-Werkzeugleiste","bookmark widget":"Lesezeichen-Widget",Bookmarks:"Lesezeichen","Edit bookmark":"Lesezeichen bearbeiten","Enter the bookmark name without spaces.":"Geben Sie den Namen des Lesezeichens ohne Leerzeichen ein.","No bookmarks available.":"Keine Lesezeichen verfügbar.","Remove bookmark":"Lesezeichen entfernen","Scroll to bookmark":"Zu Lesezeichen scrollen"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.el=o.el||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Σελιδοδείκτης","Bookmark must not be empty.":"Ο σελιδοδείκτης δεν πρέπει να είναι κενός.","Bookmark name":"Όνομα σελιδοδείκτη","Bookmark name already exists.":"Το όνομα σελιδοδείκτη υπάρχει ήδη.","Bookmark name cannot contain space characters.":"Το όνομα του σελιδοδείκτη δεν μπορεί να περιέχει χαρακτήρες κενού διαστήματος.","bookmark widget":"widget σελιδοδείκτη","Edit bookmark":"Επεξεργασία σελιδοδείκτη","Enter the bookmark name without spaces.":"Εισαγάγετε το όνομα του σελιδοδείκτη χωρίς κενά.",Insert:"Εισαγωγή","Remove bookmark":"Κατάργηση σελειδοδείκτη",Update:"Ενημέρωση"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.el=o.el||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Σελιδοδείκτης","Bookmark must not be empty.":"Ο σελιδοδείκτης δεν πρέπει να είναι κενός.","Bookmark name":"Όνομα σελιδοδείκτη","Bookmark name already exists.":"Το όνομα σελιδοδείκτη υπάρχει ήδη.","Bookmark name cannot contain space characters.":"Το όνομα του σελιδοδείκτη δεν μπορεί να περιέχει χαρακτήρες κενού διαστήματος.","Bookmark toolbar":"Γραμμή εργαλείων σελιδοδεικτών","bookmark widget":"widget σελιδοδείκτη",Bookmarks:"Σελιδοδείκτες","Edit bookmark":"Επεξεργασία σελιδοδείκτη","Enter the bookmark name without spaces.":"Εισαγάγετε το όνομα του σελιδοδείκτη χωρίς κενά.","No bookmarks available.":"Δεν υπάρχουν διαθέσιμοι σελιδοδείκτες.","Remove bookmark":"Κατάργηση σελειδοδείκτη","Scroll to bookmark":"Κάντε κύλιση στον σελιδοδείκτη"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["en-au"]=o["en-au"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Bookmark","Bookmark must not be empty.":"Bookmark must not be empty.","Bookmark name":"Bookmark name","Bookmark name already exists.":"Bookmark name already exists.","Bookmark name cannot contain space characters.":"Bookmark name cannot contain space characters.","bookmark widget":"bookmark widget","Edit bookmark":"Edit bookmark","Enter the bookmark name without spaces.":"Enter the bookmark name without spaces.",Insert:"Insert","Remove bookmark":"Remove bookmark",Update:"Update"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["en-au"]=o["en-au"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Bookmark","Bookmark must not be empty.":"Bookmark must not be empty.","Bookmark name":"Bookmark name","Bookmark name already exists.":"Bookmark name already exists.","Bookmark name cannot contain space characters.":"Bookmark name cannot contain space characters.","Bookmark toolbar":"Bookmark toolbar","bookmark widget":"bookmark widget",Bookmarks:"Bookmarks","Edit bookmark":"Edit bookmark","Enter the bookmark name without spaces.":"Enter the bookmark name without spaces.","No bookmarks available.":"No bookmarks available.","Remove bookmark":"Remove bookmark","Scroll to bookmark":"Scroll to bookmark"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["en-gb"]=o["en-gb"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Bookmark","Bookmark must not be empty.":"Bookmark must not be empty.","Bookmark name":"Bookmark name","Bookmark name already exists.":"Bookmark name already exists.","Bookmark name cannot contain space characters.":"Bookmark name cannot contain space characters.","bookmark widget":"bookmark widget","Edit bookmark":"Edit bookmark","Enter the bookmark name without spaces.":"Enter the bookmark name without spaces.",Insert:"Insert","Remove bookmark":"Remove bookmark",Update:"Update"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["en-gb"]=o["en-gb"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Bookmark","Bookmark must not be empty.":"Bookmark must not be empty.","Bookmark name":"Bookmark name","Bookmark name already exists.":"Bookmark name already exists.","Bookmark name cannot contain space characters.":"Bookmark name cannot contain space characters.","Bookmark toolbar":"Bookmark toolbar","bookmark widget":"bookmark widget",Bookmarks:"Bookmarks","Edit bookmark":"Edit bookmark","Enter the bookmark name without spaces.":"Enter the bookmark name without spaces.","No bookmarks available.":"No bookmarks available.","Remove bookmark":"Remove bookmark","Scroll to bookmark":"Scroll to bookmark"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.eo=o.eo||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.eo=o.eo||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["es-co"]=o["es-co"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["es-co"]=o["es-co"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const o=a.es=a.es||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Marcador","Bookmark must not be empty.":"El marcador no debe estar vacío.","Bookmark name":"Nombre del marcador","Bookmark name already exists.":"Ya existe el nombre del marcador.","Bookmark name cannot contain space characters.":"El nombre del marcador no puede contener espacios.","bookmark widget":"Módulo interactivo del marcador","Edit bookmark":"Editar marcador","Enter the bookmark name without spaces.":"Introduzca el nombre del marcador sin espacios.",Insert:"Insertar","Remove bookmark":"Eliminar marcador",Update:"Actualizar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const o=a.es=a.es||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Marcador","Bookmark must not be empty.":"El marcador no debe estar vacío.","Bookmark name":"Nombre del marcador","Bookmark name already exists.":"Ya existe el nombre del marcador.","Bookmark name cannot contain space characters.":"El nombre del marcador no puede contener espacios.","Bookmark toolbar":"Barra de marcadores","bookmark widget":"Módulo interactivo del marcador",Bookmarks:"Marcadores","Edit bookmark":"Editar marcador","Enter the bookmark name without spaces.":"Introduzca el nombre del marcador sin espacios.","No bookmarks available.":"No hay marcadores disponibles.","Remove bookmark":"Eliminar marcador","Scroll to bookmark":"Desplazarse hasta el marcador"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const i=a.et=a.et||{};i.dictionary=Object.assign(i.dictionary||{},{Bookmark:"Järjehoidja","Bookmark must not be empty.":"Järjehoidja väli ei tohi olla tühi.","Bookmark name":"Järjehoidja nimi","Bookmark name already exists.":"Järjehoidja nimi on juba olemas.","Bookmark name cannot contain space characters.":"Järjehoidja nimi ei tohi sisaldada tühikuid.","bookmark widget":"järjehoidja vidin","Edit bookmark":"Muuda järjehoidjat","Enter the bookmark name without spaces.":"Sisestage järjehoidja nimi ilma tühikuteta.",Insert:"Sisesta","Remove bookmark":"Eemalda järjehoidja",Update:"Uuenda"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const o=a.et=a.et||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Järjehoidja","Bookmark must not be empty.":"Järjehoidja väli ei tohi olla tühi.","Bookmark name":"Järjehoidja nimi","Bookmark name already exists.":"Järjehoidja nimi on juba olemas.","Bookmark name cannot contain space characters.":"Järjehoidja nimi ei tohi sisaldada tühikuid.","Bookmark toolbar":"Järjehoidjariba","bookmark widget":"järjehoidja vidin",Bookmarks:"Järjehoidjad","Edit bookmark":"Muuda järjehoidjat","Enter the bookmark name without spaces.":"Sisestage järjehoidja nimi ilma tühikuteta.","No bookmarks available.":"Ühtegi järjehoidjat pole saadaval.","Remove bookmark":"Eemalda järjehoidja","Scroll to bookmark":"Keri järjehoidjani"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.eu=o.eu||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.eu=o.eu||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.fa=o.fa||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.fa=o.fa||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(i){const a=i.fi=i.fi||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Kirjanmerkki","Bookmark must not be empty.":"Kirjanmerkkiä ei saa jättää tyhjäksi.","Bookmark name":"Kirjanmerkin nimi","Bookmark name already exists.":"Kirjanmerkin nimi on jo käytössä.","Bookmark name cannot contain space characters.":"Kirjanmerkin nimessä ei saa olla välilyöntejä.","bookmark widget":"kirjanmerkkien pienoisohjelma","Edit bookmark":"Muokkaa kirjanmerkkiä","Enter the bookmark name without spaces.":"Lisää kirjanmerkin nimi ilman välilyöntejä",Insert:"Liitä","Remove bookmark":"Poista kirjanmerkki",Update:"Päivitä"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(i){const k=i.fi=i.fi||{};k.dictionary=Object.assign(k.dictionary||{},{Bookmark:"Kirjanmerkki","Bookmark must not be empty.":"Kirjanmerkkiä ei saa jättää tyhjäksi.","Bookmark name":"Kirjanmerkin nimi","Bookmark name already exists.":"Kirjanmerkin nimi on jo käytössä.","Bookmark name cannot contain space characters.":"Kirjanmerkin nimessä ei saa olla välilyöntejä.","Bookmark toolbar":"Kirjanmerkkien työkalupalkki","bookmark widget":"kirjanmerkkien pienoisohjelma",Bookmarks:"Kirjanmerkit","Edit bookmark":"Muokkaa kirjanmerkkiä","Enter the bookmark name without spaces.":"Lisää kirjanmerkin nimi ilman välilyöntejä","No bookmarks available.":"Kirjanmerkkejä ei käytettävissä.","Remove bookmark":"Poista kirjanmerkki","Scroll to bookmark":"Vieritä kirjanmerkkiin"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const e=o.fr=o.fr||{};e.dictionary=Object.assign(e.dictionary||{},{Bookmark:"Favori","Bookmark must not be empty.":"Le favori ne doit pas être vide.","Bookmark name":"Nom du favori","Bookmark name already exists.":"Le nom du favori existe déjà.","Bookmark name cannot contain space characters.":"Le nom d'un favori ne peut pas contenir d'espaces.","bookmark widget":"widget pour favori","Edit bookmark":"Modifier le favori","Enter the bookmark name without spaces.":"Saisir un nom de favori sans espaces.",Insert:"Insérer","Remove bookmark":"Supprimer le favori",Update:"Mettre à jour"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.fr=o.fr||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Favori","Bookmark must not be empty.":"Le favori ne doit pas être vide.","Bookmark name":"Nom du favori","Bookmark name already exists.":"Le nom du favori existe déjà.","Bookmark name cannot contain space characters.":"Le nom d'un favori ne peut pas contenir d'espaces.","Bookmark toolbar":"Barre d'outils des signets","bookmark widget":"widget pour favori",Bookmarks:"Signets","Edit bookmark":"Modifier le favori","Enter the bookmark name without spaces.":"Saisir un nom de favori sans espaces.","No bookmarks available.":"Aucun signet disponible.","Remove bookmark":"Supprimer le favori","Scroll to bookmark":"Faire défiler jusqu'au signet"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.gl=o.gl||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.gl=o.gl||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.gu=o.gu||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.gu=o.gu||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.he=o.he||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"סימניה","Bookmark must not be empty.":"לא ניתן שהסימניה תהיה ריקה","Bookmark name":"שם הסימניה","Bookmark name already exists.":"שם הסימניה כבר קיים","Bookmark name cannot contain space characters.":"שם הסימניה לא יכול להכיל רווחים","bookmark widget":"יישומון הסימניה","Edit bookmark":"ערכו סימניה","Enter the bookmark name without spaces.":"הקלידו את שם הסימניה ללא רווחים.",Insert:"הכנס","Remove bookmark":"הסירו סימניה",Update:"עדכן"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.he=o.he||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"סימניה","Bookmark must not be empty.":"לא ניתן שהסימניה תהיה ריקה","Bookmark name":"שם הסימניה","Bookmark name already exists.":"שם הסימניה כבר קיים","Bookmark name cannot contain space characters.":"שם הסימניה לא יכול להכיל רווחים","Bookmark toolbar":"סרגל כלים לסימניות","bookmark widget":"יישומון הסימניה",Bookmarks:"סימניות","Edit bookmark":"ערכו סימניה","Enter the bookmark name without spaces.":"הקלידו את שם הסימניה ללא רווחים.","No bookmarks available.":"אין סימניות זמינות.","Remove bookmark":"הסירו סימניה","Scroll to bookmark":"גלול לסימניה"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.hi=o.hi||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"बुकमार्क","Bookmark must not be empty.":"बुकमार्क खाली नहीं होना चाहिए.","Bookmark name":"बुकमार्क का नाम","Bookmark name already exists.":"बुकमार्क नाम पहले से मौजूद है.","Bookmark name cannot contain space characters.":"बुकमार्क नाम में स्पेस नहीं हो सकते.","bookmark widget":"बुकमार्क विजिट","Edit bookmark":"बुकमार्क एडिट करें","Enter the bookmark name without spaces.":"बिना स्पेस के बुकमार्क का नाम लिखें.",Insert:"इंसर्ट","Remove bookmark":"बुकमार्क हटाएं",Update:"अपडेट"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.hi=o.hi||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"बुकमार्क","Bookmark must not be empty.":"बुकमार्क खाली नहीं होना चाहिए.","Bookmark name":"बुकमार्क का नाम","Bookmark name already exists.":"बुकमार्क नाम पहले से मौजूद है.","Bookmark name cannot contain space characters.":"बुकमार्क नाम में स्पेस नहीं हो सकते.","Bookmark toolbar":"बुकमार्क टूलबार","bookmark widget":"बुकमार्क विजिट",Bookmarks:"बुकमार्क","Edit bookmark":"बुकमार्क एडिट करें","Enter the bookmark name without spaces.":"बिना स्पेस के बुकमार्क का नाम लिखें.","No bookmarks available.":"कोई बुकमार्क उपलब्ध नहीं है.","Remove bookmark":"बुकमार्क हटाएं","Scroll to bookmark":"बुकमार्क करने के लिए स्क्रॉल करें"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.hr=o.hr||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.hr=o.hr||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(e){const n=e.hu=e.hu||{};n.dictionary=Object.assign(n.dictionary||{},{Bookmark:"Könyvjelző","Bookmark must not be empty.":"A könyvjelző nem lehet üres.","Bookmark name":"Könyvjelző neve","Bookmark name already exists.":"A könyvjelzőnév már létezik.","Bookmark name cannot contain space characters.":"A könyvjelző neve nem tartalmazhat szóköz karaktereket.","bookmark widget":"könyvjelző widget","Edit bookmark":"Könyvjelző szerkesztése","Enter the bookmark name without spaces.":"Írja be a könyvjelző nevét szóközök nélkül.",Insert:"Beszúrás","Remove bookmark":"Könyvjelző törlése",Update:"Frissítés"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(e){const k=e.hu=e.hu||{};k.dictionary=Object.assign(k.dictionary||{},{Bookmark:"Könyvjelző","Bookmark must not be empty.":"A könyvjelző nem lehet üres.","Bookmark name":"Könyvjelző neve","Bookmark name already exists.":"A könyvjelzőnév már létezik.","Bookmark name cannot contain space characters.":"A könyvjelző neve nem tartalmazhat szóköz karaktereket.","Bookmark toolbar":"Könyvjelző eszköztár","bookmark widget":"könyvjelző widget",Bookmarks:"Könyvjelzők","Edit bookmark":"Könyvjelző szerkesztése","Enter the bookmark name without spaces.":"Írja be a könyvjelző nevét szóközök nélkül.","No bookmarks available.":"Nincs könyvjelző","Remove bookmark":"Könyvjelző törlése","Scroll to bookmark":"Görgetés a könyvjelzőhöz"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.hy=o.hy||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.hy=o.hy||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const n=a.id=a.id||{};n.dictionary=Object.assign(n.dictionary||{},{Bookmark:"Penanda","Bookmark must not be empty.":"Penanda tidak boleh kosong.","Bookmark name":"Nama penanda","Bookmark name already exists.":"Nama penanda sudah ada.","Bookmark name cannot contain space characters.":"Nama penanda tidak boleh mengandung spasi.","bookmark widget":"widget penanda","Edit bookmark":"Edit penanda","Enter the bookmark name without spaces.":"Masukkan nama penanda tanpa spasi.",Insert:"Sisipkan","Remove bookmark":"Hapus penanda",Update:"PErbarui"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const n=a.id=a.id||{};n.dictionary=Object.assign(n.dictionary||{},{Bookmark:"Penanda","Bookmark must not be empty.":"Penanda tidak boleh kosong.","Bookmark name":"Nama penanda","Bookmark name already exists.":"Nama penanda sudah ada.","Bookmark name cannot contain space characters.":"Nama penanda tidak boleh mengandung spasi.","Bookmark toolbar":"Bilah alat penanda halaman","bookmark widget":"widget penanda",Bookmarks:"Penanda halaman","Edit bookmark":"Edit penanda","Enter the bookmark name without spaces.":"Masukkan nama penanda tanpa spasi.","No bookmarks available.":"Penanda halaman tidak tersedia.","Remove bookmark":"Hapus penanda","Scroll to bookmark":"Gulir ke penanda halaman"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(e){const o=e.it=e.it||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Segnalibro","Bookmark must not be empty.":"Il segnalibro non deve essere vuoto.","Bookmark name":"Aggiungi ai preferiti il nome","Bookmark name already exists.":"Il nome del segnalibro esiste già.","Bookmark name cannot contain space characters.":"Il nome del segnalibro non può contenere spazi.","bookmark widget":"widget segnalibro","Edit bookmark":"Modifica segnalibro","Enter the bookmark name without spaces.":"Inserisci il nome del segnalibro senza spazi.",Insert:"Inserisci","Remove bookmark":"Rimuovi segnalibro",Update:"Aggiornamento"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const e=o.it=o.it||{};e.dictionary=Object.assign(e.dictionary||{},{Bookmark:"Segnalibro","Bookmark must not be empty.":"Il segnalibro non deve essere vuoto.","Bookmark name":"Aggiungi ai preferiti il nome","Bookmark name already exists.":"Il nome del segnalibro esiste già.","Bookmark name cannot contain space characters.":"Il nome del segnalibro non può contenere spazi.","Bookmark toolbar":"Barra degli strumenti dei segnalibri","bookmark widget":"widget segnalibro",Bookmarks:"Segnalibri","Edit bookmark":"Modifica segnalibro","Enter the bookmark name without spaces.":"Inserisci il nome del segnalibro senza spazi.","No bookmarks available.":"Nessun segnalibro disponibile.","Remove bookmark":"Rimuovi segnalibro","Scroll to bookmark":"Scorri fino al segnalibro"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ja=o.ja||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"ブックマーク","Bookmark must not be empty.":"ブックマークは空白にできません。","Bookmark name":"ブックマーク名","Bookmark name already exists.":"すでに使われているブックマーク名です。","Bookmark name cannot contain space characters.":"ブックマーク名にスペースを含めることはできません。","bookmark widget":"ブックマークウィジェット","Edit bookmark":"ブックマークを編集","Enter the bookmark name without spaces.":"ブックマーク名をスペースなしで入力して下さい。",Insert:"インサート","Remove bookmark":"ブックマークを削除",Update:"アップデート"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ja=o.ja||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"ブックマーク","Bookmark must not be empty.":"ブックマークは空白にできません。","Bookmark name":"ブックマーク名","Bookmark name already exists.":"すでに使われているブックマーク名です。","Bookmark name cannot contain space characters.":"ブックマーク名にスペースを含めることはできません。","Bookmark toolbar":"ブックマークツールバー","bookmark widget":"ブックマークウィジェット",Bookmarks:"ブックマーク","Edit bookmark":"ブックマークを編集","Enter the bookmark name without spaces.":"ブックマーク名をスペースなしで入力して下さい。","No bookmarks available.":"ブックマークはありません。","Remove bookmark":"ブックマークを削除","Scroll to bookmark":"ブックマークまでスクロール"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.jv=o.jv||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.jv=o.jv||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.kk=o.kk||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.kk=o.kk||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.km=o.km||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.km=o.km||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.kn=o.kn||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.kn=o.kn||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ko=o.ko||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"책갈피","Bookmark must not be empty.":"책갈피 이름은 비워 둘 수 없습니다.","Bookmark name":"책갈피 이름","Bookmark name already exists.":"책갈피 이름이 이미 존재합니다.","Bookmark name cannot contain space characters.":"책갈피 이름에는 공백이 포함될 수 없습니다.","bookmark widget":"책갈피 위젯","Edit bookmark":"책갈피 편집","Enter the bookmark name without spaces.":"공백 없이 책갈피 이름을 입력하세요.",Insert:"삽입","Remove bookmark":"책갈피 제거",Update:"업데이트"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ko=o.ko||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"책갈피","Bookmark must not be empty.":"책갈피 이름은 비워 둘 수 없습니다.","Bookmark name":"책갈피 이름","Bookmark name already exists.":"책갈피 이름이 이미 존재합니다.","Bookmark name cannot contain space characters.":"책갈피 이름에는 공백이 포함될 수 없습니다.","Bookmark toolbar":"북마크 도구 모음","bookmark widget":"책갈피 위젯",Bookmarks:"북마크","Edit bookmark":"책갈피 편집","Enter the bookmark name without spaces.":"공백 없이 책갈피 이름을 입력하세요.","No bookmarks available.":"사용 가능한 북마크가 없습니다.","Remove bookmark":"책갈피 제거","Scroll to bookmark":"북마크로 이동"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ku=o.ku||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ku=o.ku||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const o=a.lt=a.lt||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Adresyno įrašas","Bookmark must not be empty.":"Adresyno įrašas negali būti tuščias.","Bookmark name":"Adresyno įrašo pavadinimas","Bookmark name already exists.":"Toks adresyno įrašo pavadinimas jau yra naudojamas.","Bookmark name cannot contain space characters.":"Adresyno įrašo pavadinimas negali turėti specialiųjų ženklų.","bookmark widget":"adresyno įrašo valdiklis","Edit bookmark":"Redaguoti adresyno įrašą","Enter the bookmark name without spaces.":"Įveskite adresyno įrašo pavadinimą be tarpų.",Insert:"Įkelti","Remove bookmark":"Pašalinti adresyno įrašą",Update:"Atnaujinti"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const o=a.lt=a.lt||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Adresyno įrašas","Bookmark must not be empty.":"Adresyno įrašas negali būti tuščias.","Bookmark name":"Adresyno įrašo pavadinimas","Bookmark name already exists.":"Toks adresyno įrašo pavadinimas jau yra naudojamas.","Bookmark name cannot contain space characters.":"Adresyno įrašo pavadinimas negali turėti specialiųjų ženklų.","Bookmark toolbar":"Adresyno įrašų įrankių juosta","bookmark widget":"adresyno įrašo valdiklis",Bookmarks:"Adresyno įrašai","Edit bookmark":"Redaguoti adresyno įrašą","Enter the bookmark name without spaces.":"Įveskite adresyno įrašo pavadinimą be tarpų.","No bookmarks available.":"Nėra jokių adresyno įrašų","Remove bookmark":"Pašalinti adresyno įrašą","Scroll to bookmark":"Slinkite prie žymeklio"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const t=a.lv=a.lv||{};t.dictionary=Object.assign(t.dictionary||{},{Bookmark:"Grāmatzīme","Bookmark must not be empty.":"Grāmatzīmes lauks nedrīkst būt tukšs.","Bookmark name":"Grāmatzīmes nosaukums","Bookmark name already exists.":"Šāds grāmatzīmes nosaukums jau pastāv.","Bookmark name cannot contain space characters.":"Grāmatzīmes nosaukumā nedrīkst būt atstarpes.","bookmark widget":"grāmatzīmju ikona","Edit bookmark":"Rediģēt grāmatzīmi","Enter the bookmark name without spaces.":"Ievadiet grāmatzīmes nosaukumu bez atstarpēm.",Insert:"Ievietot","Remove bookmark":"Aizvākt grāmatzīmi",Update:"Atjaunināt"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const m=a.lv=a.lv||{};m.dictionary=Object.assign(m.dictionary||{},{Bookmark:"Grāmatzīme","Bookmark must not be empty.":"Grāmatzīmes lauks nedrīkst būt tukšs.","Bookmark name":"Grāmatzīmes nosaukums","Bookmark name already exists.":"Šāds grāmatzīmes nosaukums jau pastāv.","Bookmark name cannot contain space characters.":"Grāmatzīmes nosaukumā nedrīkst būt atstarpes.","Bookmark toolbar":"Grāmatzīmju rīkjosla","bookmark widget":"grāmatzīmju ikona",Bookmarks:"Grāmatzīmes","Edit bookmark":"Rediģēt grāmatzīmi","Enter the bookmark name without spaces.":"Ievadiet grāmatzīmes nosaukumu bez atstarpēm.","No bookmarks available.":"Grāmatzīmes nav pieejamas.","Remove bookmark":"Aizvākt grāmatzīmi","Scroll to bookmark":"Pārvieto līdz grāmatzīmei"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const n=a.ms=a.ms||{};n.dictionary=Object.assign(n.dictionary||{},{Bookmark:"Penanda halaman","Bookmark must not be empty.":"Penanda halaman tidak boleh kosong.","Bookmark name":"Nama penanda halaman","Bookmark name already exists.":"Nama penanda halaman sudah wujud.","Bookmark name cannot contain space characters.":"Nama penanda halaman tidak boleh mengandungi aksara ruang.","bookmark widget":"widget penanda halaman","Edit bookmark":"Sunting penanda halaman","Enter the bookmark name without spaces.":"Masukkan nama penanda halaman tanpa ruang.",Insert:"Masukkan","Remove bookmark":"Alih keluar penanda halaman",Update:"Kemaskini"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const n=a.ms=a.ms||{};n.dictionary=Object.assign(n.dictionary||{},{Bookmark:"Penanda halaman","Bookmark must not be empty.":"Penanda halaman tidak boleh kosong.","Bookmark name":"Nama penanda halaman","Bookmark name already exists.":"Nama penanda halaman sudah wujud.","Bookmark name cannot contain space characters.":"Nama penanda halaman tidak boleh mengandungi aksara ruang.","Bookmark toolbar":"Bar alat penanda halaman","bookmark widget":"widget penanda halaman",Bookmarks:"Penanda halaman","Edit bookmark":"Sunting penanda halaman","Enter the bookmark name without spaces.":"Masukkan nama penanda halaman tanpa ruang.","No bookmarks available.":"Tiada penanda halaman tersedia.","Remove bookmark":"Alih keluar penanda halaman","Scroll to bookmark":"Tatal ke penanda halaman"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.nb=o.nb||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.nb=o.nb||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ne=o.ne||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.ne=o.ne||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const e=a.nl=a.nl||{};e.dictionary=Object.assign(e.dictionary||{},{Bookmark:"Bladwijzer","Bookmark must not be empty.":"Bladwijzer mag niet leeg zijn.","Bookmark name":"Naam van de bladwijzer","Bookmark name already exists.":"Naam van de bladwijzer bestaat al.","Bookmark name cannot contain space characters.":"Naam van de bladwijzer mag geen spaties bevatten.","bookmark widget":"bladwijzer widget","Edit bookmark":"Bladwijzer bewerken","Enter the bookmark name without spaces.":"Voer de naam van de bladwijzer in zonder spaties.",Insert:"Invoegen","Remove bookmark":"Bladwijzer verwijderen",Update:"Update"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const e=a.nl=a.nl||{};e.dictionary=Object.assign(e.dictionary||{},{Bookmark:"Bladwijzer","Bookmark must not be empty.":"Bladwijzer mag niet leeg zijn.","Bookmark name":"Naam van de bladwijzer","Bookmark name already exists.":"Naam van de bladwijzer bestaat al.","Bookmark name cannot contain space characters.":"Naam van de bladwijzer mag geen spaties bevatten.","Bookmark toolbar":"Bladwijzerwerkbalk","bookmark widget":"bladwijzer widget",Bookmarks:"Bladwijzers","Edit bookmark":"Bladwijzer bewerken","Enter the bookmark name without spaces.":"Voer de naam van de bladwijzer in zonder spaties.","No bookmarks available.":"Geen bladwijzers beschikbaar.","Remove bookmark":"Bladwijzer verwijderen","Scroll to bookmark":"Scroll naar bladwijzer"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(e){const o=e.no=e.no||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Bokmerk","Bookmark must not be empty.":"Bokmerket kan ikke være tomt.","Bookmark name":"Navn på bokmerke","Bookmark name already exists.":"Bokmerkets navn finnes allerede.","Bookmark name cannot contain space characters.":"Bokmerkets navn kan ikke inneholde mellomrom.","bookmark widget":"bokmerke-widget","Edit bookmark":"Rediger bokmerke","Enter the bookmark name without spaces.":"Oppgi bokmerkets navn uten mellomrom.",Insert:"Sett inn","Remove bookmark":"Fjern bokmerke",Update:"Oppdater"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(e){const o=e.no=e.no||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Bokmerk","Bookmark must not be empty.":"Bokmerket kan ikke være tomt.","Bookmark name":"Navn på bokmerke","Bookmark name already exists.":"Bokmerkets navn finnes allerede.","Bookmark name cannot contain space characters.":"Bokmerkets navn kan ikke inneholde mellomrom.","Bookmark toolbar":"Bokmerkeverktøylinje","bookmark widget":"bokmerke-widget",Bookmarks:"Bokmerker","Edit bookmark":"Rediger bokmerke","Enter the bookmark name without spaces.":"Oppgi bokmerkets navn uten mellomrom.","No bookmarks available.":"Ingen bokmerker tilgjengelig.","Remove bookmark":"Fjern bokmerke","Scroll to bookmark":"Skroll til bokmerke"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.oc=o.oc||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","bookmark widget":"","Edit bookmark":"","Enter the bookmark name without spaces.":"",Insert:"","Remove bookmark":"",Update:""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.oc=o.oc||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"","Bookmark must not be empty.":"","Bookmark name":"","Bookmark name already exists.":"","Bookmark name cannot contain space characters.":"","Bookmark toolbar":"","bookmark widget":"",Bookmarks:"","Edit bookmark":"","Enter the bookmark name without spaces.":"","No bookmarks available.":"","Remove bookmark":"","Scroll to bookmark":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const k=a.pl=a.pl||{};k.dictionary=Object.assign(k.dictionary||{},{Bookmark:"Zakładka","Bookmark must not be empty.":"Nazwa zakładki nie może być pusta.","Bookmark name":"Nazwa zakładki","Bookmark name already exists.":"Zakładka o takiej nazwie już istnieje.","Bookmark name cannot contain space characters.":"Nazwa zakładki nie może zawierać spacji.","bookmark widget":"widżet zakładek","Edit bookmark":"Edytuj zakładkę","Enter the bookmark name without spaces.":"Wprowadź nazwę zakładki bez spacji.",Insert:"Wstaw","Remove bookmark":"Usuń zakładkę",Update:"Zaktualizuj"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const k=a.pl=a.pl||{};k.dictionary=Object.assign(k.dictionary||{},{Bookmark:"Zakładka","Bookmark must not be empty.":"Nazwa zakładki nie może być pusta.","Bookmark name":"Nazwa zakładki","Bookmark name already exists.":"Zakładka o takiej nazwie już istnieje.","Bookmark name cannot contain space characters.":"Nazwa zakładki nie może zawierać spacji.","Bookmark toolbar":"Pasek narzędzi zakładek","bookmark widget":"widżet zakładek",Bookmarks:"Zakładki","Edit bookmark":"Edytuj zakładkę","Enter the bookmark name without spaces.":"Wprowadź nazwę zakładki bez spacji.","No bookmarks available.":"Brak dostępnych zakładek.","Remove bookmark":"Usuń zakładkę","Scroll to bookmark":"Przewiń do zakładki"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["pt-br"]=o["pt-br"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Favorito","Bookmark must not be empty.":"O favorito não pode estar vazio.","Bookmark name":"Nome do favorito","Bookmark name already exists.":"O nome do favorito já existe.","Bookmark name cannot contain space characters.":"O nome do favorito não pode conter caracteres de espaço.","bookmark widget":"widget de favorito","Edit bookmark":"Editar favorito","Enter the bookmark name without spaces.":"Insira o nome do favorito sem espaços.",Insert:"Inserir","Remove bookmark":"Remover favorito",Update:"Atualizar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o["pt-br"]=o["pt-br"]||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Favorito","Bookmark must not be empty.":"O favorito não pode estar vazio.","Bookmark name":"Nome do favorito","Bookmark name already exists.":"O nome do favorito já existe.","Bookmark name cannot contain space characters.":"O nome do favorito não pode conter caracteres de espaço.","Bookmark toolbar":"Barra de favoritos","bookmark widget":"widget de favorito",Bookmarks:"Favoritos","Edit bookmark":"Editar favorito","Enter the bookmark name without spaces.":"Insira o nome do favorito sem espaços.","No bookmarks available.":"Nenhum favorito disponível.","Remove bookmark":"Remover favorito","Scroll to bookmark":"Rolar até o favorito"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.pt=o.pt||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Marcador","Bookmark must not be empty.":"O marcador não deve estar vazio.","Bookmark name":"Nome do marcador","Bookmark name already exists.":"O nome do marcador já existe.","Bookmark name cannot contain space characters.":"O nome do marcador não pode conter caracteres de espaço.","bookmark widget":"widget de marcador","Edit bookmark":"Editar marcador","Enter the bookmark name without spaces.":"Introduza o nome do marcador sem espaços.",Insert:"Inserir","Remove bookmark":"Remover marcador",Update:"Atualizar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(o){const a=o.pt=o.pt||{};a.dictionary=Object.assign(a.dictionary||{},{Bookmark:"Marcador","Bookmark must not be empty.":"O marcador não deve estar vazio.","Bookmark name":"Nome do marcador","Bookmark name already exists.":"O nome do marcador já existe.","Bookmark name cannot contain space characters.":"O nome do marcador não pode conter caracteres de espaço.","Bookmark toolbar":"Barra de marcadores","bookmark widget":"widget de marcador",Bookmarks:"Marcadores","Edit bookmark":"Editar marcador","Enter the bookmark name without spaces.":"Introduza o nome do marcador sem espaços.","No bookmarks available.":"Sem marcadores disponíveis.","Remove bookmark":"Remover marcador","Scroll to bookmark":"Ir para o marcador"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const e=a.ro=a.ro||{};e.dictionary=Object.assign(e.dictionary||{},{Bookmark:"Marcaj","Bookmark must not be empty.":"Marcajul nu poate fi gol.","Bookmark name":"Numele marcajului","Bookmark name already exists.":"Numele marcajului există deja.","Bookmark name cannot contain space characters.":"Numele marcajului nu poate conține spații.","bookmark widget":"widget marcaj","Edit bookmark":"Editează marcajul","Enter the bookmark name without spaces.":"Introdu numele marcajului fără spații.",Insert:"Inserează","Remove bookmark":"Elimină marcajul",Update:"Actualizează"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
!function(a){const o=a.ro=a.ro||{};o.dictionary=Object.assign(o.dictionary||{},{Bookmark:"Marcaj","Bookmark must not be empty.":"Marcajul nu poate fi gol.","Bookmark name":"Numele marcajului","Bookmark name already exists.":"Numele marcajului există deja.","Bookmark name cannot contain space characters.":"Numele marcajului nu poate conține spații.","Bookmark toolbar":"Bara de instrumente Marcaj","bookmark widget":"widget marcaj",Bookmarks:"Marcaje","Edit bookmark":"Editează marcajul","Enter the bookmark name without spaces.":"Introdu numele marcajului fără spații.","No bookmarks available.":"Nu sunt disponibile marcaje.","Remove bookmark":"Elimină marcajul","Scroll to bookmark":"Derulați la marcaj"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment