The title needs to be fixed<\/p>\n",
+ "parent_id": null,
+ "local_id": 3,
+ "created_by": {
+ "id": 2,
+ "name": "Editor",
+ "slug": "editor"
+ },
+ "updated_by": 1,
+ "created_at": "2023-06-07T07:50:49.000000Z",
+ "updated_at": "2025-10-24T08:37:22.000000Z",
+ "content_ref": "",
+ "archived": true
+ },
+ "depth": 0,
+ "children": []
+ }
+ ]
+ },
"tags": [
{
"name": "Category",
diff --git a/dev/api/responses/recycle-bin-list.json b/dev/api/responses/recycle-bin-list.json
index 853070839..19167ec05 100644
--- a/dev/api/responses/recycle-bin-list.json
+++ b/dev/api/responses/recycle-bin-list.json
@@ -10,7 +10,7 @@
"deletable": {
"id": 2582,
"book_id": 25,
- "chapter_id": 0,
+ "chapter_id": null,
"name": "A Wonderful Page",
"slug": "a-wonderful-page",
"priority": 9,
diff --git a/dev/build/esbuild.js b/dev/build/esbuild.mjs
similarity index 52%
rename from dev/build/esbuild.js
rename to dev/build/esbuild.mjs
index 63387d612..fa2231157 100644
--- a/dev/build/esbuild.js
+++ b/dev/build/esbuild.mjs
@@ -1,12 +1,15 @@
#!/usr/bin/env node
-const esbuild = require('esbuild');
-const path = require('path');
-const fs = require('fs');
+import * as esbuild from 'esbuild';
+import * as path from 'node:path';
+import * as fs from 'node:fs';
+import * as process from "node:process";
// Check if we're building for production
// (Set via passing `production` as first argument)
-const isProd = process.argv[2] === 'production';
+const mode = process.argv[2];
+const isProd = mode === 'production';
+const __dirname = import.meta.dirname;
// Gather our input files
const entryPoints = {
@@ -17,11 +20,16 @@ const entryPoints = {
wysiwyg: path.join(__dirname, '../../resources/js/wysiwyg/index.ts'),
};
+// Watch styles so we can reload on change
+if (mode === 'watch') {
+ entryPoints['styles-dummy'] = path.join(__dirname, '../../public/dist/styles.css');
+}
+
// Locate our output directory
const outdir = path.join(__dirname, '../../public/dist');
-// Build via esbuild
-esbuild.build({
+// Define the options for esbuild
+const options = {
bundle: true,
metafile: true,
entryPoints,
@@ -33,6 +41,7 @@ esbuild.build({
minify: isProd,
logLevel: 'info',
loader: {
+ '.html': 'copy',
'.svg': 'text',
},
absWorkingDir: path.join(__dirname, '../..'),
@@ -45,6 +54,34 @@ esbuild.build({
js: '// See the "/licenses" URI for full package license details',
css: '/* See the "/licenses" URI for full package license details */',
},
-}).then(result => {
+};
+
+if (mode === 'watch') {
+ options.inject = [
+ path.join(__dirname, './livereload.js'),
+ ];
+}
+
+const ctx = await esbuild.context(options);
+
+if (mode === 'watch') {
+ // Watch for changes and rebuild on change
+ ctx.watch({});
+ let {hosts, port} = await ctx.serve({
+ servedir: path.join(__dirname, '../../public'),
+ cors: {
+ origin: '*',
+ }
+ });
+} else {
+ // Build with meta output for analysis
+ const result = await ctx.rebuild();
+ const outputs = result.metafile.outputs;
+ const files = Object.keys(outputs);
+ for (const file of files) {
+ const output = outputs[file];
+ console.log(`Written: ${file} @ ${Math.round(output.bytes / 1000)}kB`);
+ }
fs.writeFileSync('esbuild-meta.json', JSON.stringify(result.metafile));
-}).catch(() => process.exit(1));
+ process.exit(0);
+}
diff --git a/dev/build/livereload.js b/dev/build/livereload.js
new file mode 100644
index 000000000..c2d8ac620
--- /dev/null
+++ b/dev/build/livereload.js
@@ -0,0 +1,35 @@
+if (!window.__dev_reload_listening) {
+ listen();
+ window.__dev_reload_listening = true;
+}
+
+
+function listen() {
+ console.log('Listening for livereload events...');
+ new EventSource("http://127.0.0.1:8000/esbuild").addEventListener('change', e => {
+ const { added, removed, updated } = JSON.parse(e.data);
+
+ if (!added.length && !removed.length && updated.length > 0) {
+ const updatedPath = updated.filter(path => path.endsWith('.css'))[0]
+ if (!updatedPath) return;
+
+ const links = [...document.querySelectorAll("link[rel='stylesheet']")];
+ for (const link of links) {
+ const url = new URL(link.href);
+ const name = updatedPath.replace('-dummy', '');
+
+ if (url.pathname.endsWith(name)) {
+ const next = link.cloneNode();
+ next.href = name + '?version=' + Math.random().toString(36).slice(2);
+ next.onload = function() {
+ link.remove();
+ };
+ link.after(next);
+ return
+ }
+ }
+ }
+
+ location.reload()
+ });
+}
\ No newline at end of file
diff --git a/dev/docker/Dockerfile b/dev/docker/Dockerfile
index edab90ca1..b64899f79 100644
--- a/dev/docker/Dockerfile
+++ b/dev/docker/Dockerfile
@@ -14,6 +14,9 @@ RUN apt-get update && \
wait-for-it && \
rm -rf /var/lib/apt/lists/*
+# Mark /app as safe for Git >= 2.35.2
+RUN git config --system --add safe.directory /app
+
# Install PHP extensions
RUN docker-php-ext-configure ldap --with-libdir="lib/$(gcc -dumpmachine)" && \
docker-php-ext-configure gd --with-freetype --with-jpeg && \
diff --git a/dev/docker/db-testing/Dockerfile b/dev/docker/db-testing/Dockerfile
new file mode 100644
index 000000000..618f5bb82
--- /dev/null
+++ b/dev/docker/db-testing/Dockerfile
@@ -0,0 +1,30 @@
+FROM ubuntu:24.04
+
+# Install additional dependencies
+RUN apt-get update && \
+ apt-get install -y \
+ git \
+ wget \
+ zip \
+ unzip \
+ php \
+ php-bcmath php-curl php-mbstring php-gd php-xml php-zip php-mysql php-ldap \
+ && \
+ rm -rf /var/lib/apt/lists/*
+
+# Take branch as an argument so we can choose which BookStack
+# branch to test against
+ARG BRANCH=development
+
+# Download BookStack & install PHP deps
+RUN mkdir -p /var/www && \
+ git clone https://github.com/bookstackapp/bookstack.git --branch "$BRANCH" --single-branch /var/www/bookstack && \
+ cd /var/www/bookstack && \
+ wget https://raw.githubusercontent.com/composer/getcomposer.org/f3108f64b4e1c1ce6eb462b159956461592b3e3e/web/installer -O - -q | php -- --quiet --filename=composer && \
+ php composer install
+
+# Set the BookStack dir as the default working dir
+WORKDIR /var/www/bookstack
+
+# Set the default action as running php
+ENTRYPOINT ["/bin/php"]
diff --git a/dev/docker/db-testing/readme.md b/dev/docker/db-testing/readme.md
new file mode 100644
index 000000000..89892408e
--- /dev/null
+++ b/dev/docker/db-testing/readme.md
@@ -0,0 +1,32 @@
+# Database Testing Suite
+
+This docker setup is designed to run BookStack's test suite against each major database version we support
+across MySQL and MariaDB to ensure compatibility and highlight any potential issues before a release.
+This is a fairly slow and heavy process, so is designed to just be run manually before a release which
+makes changes to the database schema, or a release which makes significant changes to database queries.
+
+### Running
+
+Everything is ran via the `run.sh` script. This will:
+
+- Optionally, accept a branch of BookStack to use for testing.
+- Build the docker image from the `Dockerfile`.
+ - This will include a built-in copy of the chosen BookStack branch.
+- Cycle through each major supported database version:
+ - Migrate and seed the database.
+ - Run the full PHP test suite.
+
+If there's a failure for a database version, the script will prompt if you'd like to continue or stop testing.
+
+This script should be ran from this `db-testing` directory:
+
+```bash
+# Enter this directory
+cd dev/docker/db-testing
+
+# Runs for the 'development' branch by default
+./run.sh
+
+# Run for a specific branch
+./run.sh v25-11
+```
diff --git a/dev/docker/db-testing/run.sh b/dev/docker/db-testing/run.sh
new file mode 100755
index 000000000..fe6ee4508
--- /dev/null
+++ b/dev/docker/db-testing/run.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+BRANCH=${1:-development}
+
+# Build the container with a known name
+docker build --no-cache --build-arg BRANCH="$BRANCH" -t bookstack:db-testing .
+if [ $? -eq 1 ]; then
+ echo "Failed to build app container for testing"
+ exit 1
+fi
+
+# List of database containers to test against
+containers=(
+ "mysql:8.0"
+ "mysql:8.4"
+ "mysql:9.5"
+ "mariadb:10.6"
+ "mariadb:10.11"
+ "mariadb:11.4"
+ "mariadb:11.8"
+ "mariadb:12.0"
+)
+
+# Pre-clean-up from prior runs
+docker stop bs-dbtest-db
+docker network rm bs-dbtest-net
+
+# Cycle over each database image
+for img in "${containers[@]}"; do
+ echo "Starting tests with $img..."
+ docker network create bs-dbtest-net
+ docker run -d --rm --name "bs-dbtest-db" \
+ -e MYSQL_DATABASE=bookstack-test \
+ -e MYSQL_USER=bookstack \
+ -e MYSQL_PASSWORD=bookstack \
+ -e MYSQL_ROOT_PASSWORD=password \
+ --network=bs-dbtest-net \
+ "$img"
+ sleep 20
+ APP_RUN='docker run -it --rm --network=bs-dbtest-net -e TEST_DATABASE_URL="mysql://bookstack:bookstack@bs-dbtest-db:3306" bookstack:db-testing'
+ $APP_RUN artisan migrate --force --database=mysql_testing
+ $APP_RUN artisan db:seed --force --class=DummyContentSeeder --database=mysql_testing
+ $APP_RUN vendor/bin/phpunit
+ if [ $? -eq 0 ]; then
+ echo "$img - Success"
+ else
+ echo "$img - Error"
+ read -p "Stop script? [y/N] " ans
+ [[ $ans == [yY] ]] && exit 0
+ fi
+
+ docker stop "bs-dbtest-db"
+ docker network rm bs-dbtest-net
+done
+
diff --git a/dev/docs/development.md b/dev/docs/development.md
index ea3e692a1..418e9ead6 100644
--- a/dev/docs/development.md
+++ b/dev/docs/development.md
@@ -3,11 +3,11 @@
All development on BookStack is currently done on the `development` branch.
When it's time for a release the `development` branch is merged into release with built & minified CSS & JS then tagged at its version. Here are the current development requirements:
-* [Node.js](https://nodejs.org/en/) v20.0+
+* [Node.js](https://nodejs.org/en/) v22.0+
## Building CSS & JavaScript Assets
-This project uses SASS for CSS development and this is built, along with the JavaScript, using a range of npm scripts. The below npm commands can be used to install the dependencies & run the build tasks:
+This project uses SASS for CSS development which is built, along with the JavaScript, using a range of npm scripts. The below npm commands can be used to install the dependencies & run the build tasks:
``` bash
# Install NPM Dependencies
@@ -113,4 +113,4 @@ docker-compose run app php vendor/bin/phpunit
### Debugging
The docker-compose setup ships with Xdebug, which you can listen to on port 9090.
-NB : For some editors like Visual Studio Code, you might need to map your workspace folder to the /app folder within the docker container for this to work.
+NB: For some editors like Visual Studio Code, you might need to map your workspace folder to the /app folder within the docker container for this to work.
diff --git a/dev/docs/javascript-code.md b/dev/docs/javascript-code.md
index e5f491839..4de6223d8 100644
--- a/dev/docs/javascript-code.md
+++ b/dev/docs/javascript-code.md
@@ -161,3 +161,7 @@ window.$components.firstOnElement(element, name);
There are a range of available events that are emitted as part of a public & supported API for accessing or extending JavaScript libraries & components used in the system.
Details on these events can be found in the [JavaScript Public Events file](javascript-public-events.md).
+
+## WYSIWYG Editor API
+
+Details on the API for our custom-built WYSIWYG editor can be found in the [WYSIWYG JavaScript API file](./wysiwyg-js-api.md).
\ No newline at end of file
diff --git a/dev/docs/javascript-public-events.md b/dev/docs/javascript-public-events.md
index 4f68daaeb..e9ea014ef 100644
--- a/dev/docs/javascript-public-events.md
+++ b/dev/docs/javascript-public-events.md
@@ -60,7 +60,7 @@ This event is called when the markdown editor loads, post configuration but befo
#### Event Data
-- `markdownIt` - A references to the [MarkdownIt](https://markdown-it.github.io/markdown-it/#MarkdownIt) instance used to render markdown to HTML (Just for the preview).
+- `markdownIt` - A reference to the [MarkdownIt](https://markdown-it.github.io/markdown-it/#MarkdownIt) instance used to render markdown to HTML (Just for the preview).
- `displayEl` - The IFrame Element that wraps the HTML preview display.
- `cmEditorView` - The CodeMirror [EditorView](https://codemirror.net/docs/ref/#view.EditorView) instance used for the markdown input editor.
@@ -79,7 +79,7 @@ window.addEventListener('editor-markdown::setup', event => {
This event is called as the embedded diagrams.net drawing editor loads, to allow configuration of the diagrams.net interface.
See [this diagrams.net page](https://www.diagrams.net/doc/faq/configure-diagram-editor) for details on the available options for the configure event.
-If using a custom diagrams.net instance, via the `DRAWIO` option, you will need to ensure your DRAWIO option URL has the `configure=1` query parameter.
+If using a custom diagrams.net instance, via the `DRAWIO` option, you will need to ensure your DRAWIO option URL has the `configure=1` query parameter.
#### Event Data
@@ -134,6 +134,47 @@ window.addEventListener('editor-tinymce::setup', event => {
});
```
+### `editor-wysiwyg::post-init`
+
+This is called after the (new custom-built Lexical-based) WYSIWYG editor has been initialised.
+
+#### Event Data
+
+- `usage` - A string label to identify the usage type of the WYSIWYG editor in BookStack.
+- `api` - An instance to the WYSIWYG editor API, as documented in the [WYSIWYG JavaScript API file](./wysiwyg-js-api.md).
+
+##### Example
+
+The below example shows how you'd use this API to create a button, with that button added to the main toolbar of the page editor, which inserts bold "Hello!" text on press:
+
+
+Show Example
+
+```javascript
+window.addEventListener('editor-wysiwyg::post-init', event => {
+ const {usage, api} = event.detail;
+ // Check that it's the page editor which is being loaded
+ if (usage !== 'page-editor') {
+ return;
+ }
+
+ // Create a custom button which inserts bold hello text on press
+ const button = api.ui.createButton({
+ label: 'Greet',
+ action: () => {
+ api.content.insertHtml(`Hello!`);
+ }
+ });
+
+ // Add the button to the start of the first section within the main toolbar
+ const toolbar = api.ui.getMainToolbar();
+ if (toolbar) {
+ toolbar.getSections()[0]?.addButton(button, 0);
+ }
+});
+```
+
+
### `library-cm6::configure-theme`
This event is called whenever a CodeMirror instance is loaded, as a method to configure the theme used by CodeMirror. This applies to all CodeMirror instances including in-page code blocks, editors using in BookStack settings, and the Page markdown editor.
@@ -142,7 +183,7 @@ This event is called whenever a CodeMirror instance is loaded, as a method to co
- `darkModeActive` - A boolean to indicate if the current view/page is being loaded with dark mode active.
- `registerViewTheme(builder)` - A method that can be called to register a new view (CodeMirror UI) theme.
- - `builder` - A function that will return an object that will be passed into the CodeMirror [EditorView.theme()](https://codemirror.net/docs/ref/#view.EditorView^theme) function as a StyleSpec.
+ - `builder` - A function that will return an object that will be passed into the CodeMirror [EditorView.theme()](https://codemirror.net/docs/ref/#view.EditorView^theme) function as a StyleSpec.
- `registerHighlightStyle(builder)` - A method that can be called to register a new HighlightStyle (code highlighting) theme.
- `builder` - A function, that receives a reference to [Tag.tags](https://lezer.codemirror.net/docs/ref/#highlight.tags) and returns an array of [TagStyle](https://codemirror.net/docs/ref/#language.TagStyle) objects.
@@ -301,7 +342,7 @@ This event is called just after any CodeMirror instances are initialised so that
##### Example
-The below shows how you'd prepend some default text to all content (page) code blocks.
+The below example shows how you'd prepend some default text to all content (page) code blocks.
Show Example
@@ -318,4 +359,4 @@ window.addEventListener('library-cm6::post-init', event => {
}
});
```
-
\ No newline at end of file
+
diff --git a/dev/docs/php-testing.md b/dev/docs/php-testing.md
index 1bd4a414f..3d3e91fa2 100644
--- a/dev/docs/php-testing.md
+++ b/dev/docs/php-testing.md
@@ -4,7 +4,7 @@ BookStack has many test cases defined within the `tests/` directory of the app.
## Setup
-The application tests are mostly functional, rather than unit tests, meaning they simulate user actions and system components and therefore these require use of the database. To avoid potential conflicts within your development environment, the tests use a separate database. This is defined via a specific `mysql_testing` database connection in our configuration, and expects to use the following database access details:
+The application tests are mostly functional, rather than unit tests, meaning they simulate user actions and system components, and therefore these require use of the database. To avoid potential conflicts within your development environment, the tests use a separate database. This is defined via a specific `mysql_testing` database connection in our configuration, and expects to use the following database access details:
- Host: `127.0.0.1`
- Username: `bookstack-test`
diff --git a/dev/docs/wysiwyg-js-api.md b/dev/docs/wysiwyg-js-api.md
new file mode 100644
index 000000000..4b4fafe56
--- /dev/null
+++ b/dev/docs/wysiwyg-js-api.md
@@ -0,0 +1,136 @@
+# WYSIWYG JavaScript API
+
+**Warning: This API is currently in development and may change without notice.**
+
+Feedback is very much welcomed via this issue: https://github.com/BookStackApp/BookStack/issues/5937
+
+This document covers the JavaScript API for the (newer Lexical-based) WYSIWYG editor.
+This API is built and designed to abstract the internals of the editor away
+to provide a stable interface for performing common customizations.
+
+Only the methods and properties documented here are guaranteed to be stable **once this API
+is out of initial development**.
+Other elements may be accessible but are not designed to be used directly, and therefore may change
+without notice.
+Stable parts of the API may still change where needed, but such changes would be noted as part of BookStack update advisories.
+
+The methods shown here are documented using standard TypeScript notation.
+
+## Overview
+
+The API is provided as an object, which itself provides a number of modules
+via its properties:
+
+- `ui` - Provides methods related to the UI of the editor, like buttons and toolbars.
+- `content` - Provides methods related to the live user content being edited upon.
+
+Each of these modules, and the relevant types used within, are documented in detail below.
+
+The API object itself is provided via the [editor-wysiwyg::post-init](./javascript-public-events.md#editor-wysiwygpost-init)
+JavaScript public event, so you can access it like so:
+
+```javascript
+window.addEventListener('editor-wysiwyg::post-init', event => {
+ const {api} = event.detail;
+});
+```
+
+---
+
+## UI Module
+
+This module provides methods related to the UI of the editor, like buttons and toolbars.
+
+### Methods
+
+#### createButton(options: object): EditorApiButton
+
+Creates a new button which can be used by other methods.
+This takes an option object with the following properties:
+
+- `label` - string, optional - Used for the button text if no icon provided, or the button tooltip if an icon is provided.
+- `icon` - string, optional - The icon to use for the button. Expected to be an SVG string.
+- `action` - callback, required - The action to perform when the button is clicked.
+
+The function returns an [EditorApiButton](#editorapibutton) object.
+
+**Example**
+
+```javascript
+const button = api.ui.createButton({
+ label: 'Warn',
+ icon: '',
+ action: () => {
+ window.alert('You clicked the button!');
+ }
+});
+```
+
+### getMainToolbar(): EditorApiToolbar
+
+Get the main editor toolbar. This is typically the toolbar at the top of the editor.
+The function returns an [EditorApiToolbar](#editorapitoolbar) object, or null if no toolbar is found.
+
+**Example**
+
+```javascript
+const toolbar = api.ui.getMainToolbar();
+const sections = toolbar?.getSections() || [];
+if (sections.length > 0) {
+ sections[0].addButton(button);
+}
+```
+
+### Types
+
+These are types which may be provided from UI module methods.
+
+#### EditorApiButton
+
+Represents a button created via the `createButton` method.
+This has the following methods:
+
+- `setActive(isActive: boolean): void` - Sets whether the button should be in an active state or not (typically active buttons appear as pressed).
+
+#### EditorApiToolbar
+
+Represents a toolbar within the editor. This is a bar typically containing sets of buttons.
+This has the following methods:
+
+- `getSections(): EditorApiToolbarSection[]` - Provides the main [EditorApiToolbarSections](#editorapitoolbarsection) contained within this toolbar.
+
+#### EditorApiToolbarSection
+
+Represents a section of the main editor toolbar, which contains a set of buttons.
+This has the following methods:
+
+- `getLabel(): string` - Provides the string label of the section.
+- `addButton(button: EditorApiButton, targetIndex: number = -1): void` - Adds a button to the section.
+ - By default, this will append the button, although a target index can be provided to insert at a specific position.
+
+---
+
+## Content Module
+
+This module provides methods related to the live user content being edited within the editor.
+
+### Methods
+
+#### insertHtml(html: string, position: string = 'selection'): void
+
+Inserts the given HTML string at the given position string.
+The position, if not provided, will default to `'selection'`, replacing any existing selected content (or inserting at the selection if there's no active selection range).
+Valid position string values are: `selection`, `start` and `end`. `start` & `end` are relative to the whole editor document.
+The HTML is not assured to be added to the editor exactly as provided, since it will be parsed and serialised to fit the editor's internal known model format. Different parts of the HTML content may be handled differently depending on if it's block or inline content.
+
+The function does not return anything.
+
+**Example**
+
+```javascript
+// Basic insert at selection
+api.content.insertHtml('
Hello world!
');
+
+// Insert at the start of the editor content
+api.content.insertHtml('
I\'m at the start!
', 'start');
+```
\ No newline at end of file
diff --git a/dev/licensing/js-library-licenses.txt b/dev/licensing/js-library-licenses.txt
index b5fa446a4..d7ad4ecc8 100644
--- a/dev/licensing/js-library-licenses.txt
+++ b/dev/licensing/js-library-licenses.txt
@@ -1,16 +1,3 @@
-abab
-License: BSD-3-Clause
-License File: node_modules/abab/LICENSE.md
-Source: git+https://github.com/jsdom/abab.git
-Link: https://github.com/jsdom/abab#readme
------------
-acorn-globals
-License: MIT
-License File: node_modules/acorn-globals/LICENSE
-Copyright: Copyright (c) 2014 Forbes Lindesay
-Source: https://github.com/ForbesLindesay/acorn-globals.git
-Link: https://github.com/ForbesLindesay/acorn-globals.git
------------
acorn-jsx
License: MIT
License File: node_modules/acorn-jsx/LICENSE
@@ -34,8 +21,10 @@ Link: https://github.com/acornjs/acorn
-----------
agent-base
License: MIT
-Source: git://github.com/TooTallNate/node-agent-base.git
-Link: git://github.com/TooTallNate/node-agent-base.git
+License File: node_modules/agent-base/LICENSE
+Copyright: Copyright (c) 2013 Nathan Rajlich <******@***********.***>
+Source: https://github.com/TooTallNate/proxy-agents.git
+Link: https://github.com/TooTallNate/proxy-agents.git
-----------
ajv
License: MIT
@@ -54,7 +43,7 @@ Link: sindresorhus/ansi-escapes
ansi-regex
License: MIT
License File: node_modules/ansi-regex/license
-Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
Source: chalk/ansi-regex
Link: chalk/ansi-regex
-----------
@@ -134,20 +123,6 @@ Copyright: Copyright (c) 2016 EduardoRFS
Source: git+https://github.com/ljharb/async-function.git
Link: https://github.com/ljharb/async-function#readme
-----------
-async
-License: MIT
-License File: node_modules/async/LICENSE
-Copyright: Copyright (c) 2010-2018 Caolan McMahon
-Source: https://github.com/caolan/async.git
-Link: https://caolan.github.io/async/
------------
-asynckit
-License: MIT
-License File: node_modules/asynckit/LICENSE
-Copyright: Copyright (c) 2016 Alex Indigo
-Source: git+https://github.com/alexindigo/asynckit.git
-Link: https://github.com/alexindigo/asynckit#readme
------------
available-typed-arrays
License: MIT
License File: node_modules/available-typed-arrays/LICENSE
@@ -318,7 +293,7 @@ ci-info
License: MIT
License File: node_modules/ci-info/LICENSE
Copyright: Copyright (c) 2016 Thomas Watson Steen
-Source: https://github.com/watson/ci-info.git
+Source: github:watson/ci-info
Link: https://github.com/watson/ci-info
-----------
cjs-module-lexer
@@ -369,13 +344,6 @@ License File: node_modules/color-name/LICENSE
Source: git@github.com:colorjs/color-name.git
Link: https://github.com/colorjs/color-name
-----------
-combined-stream
-License: MIT
-License File: node_modules/combined-stream/License
-Copyright: Copyright (c) 2011 Debuggable Limited <*****@**********.***>
-Source: git://github.com/felixge/node-combined-stream.git
-Link: https://github.com/felixge/node-combined-stream
------------
concat-map
License: MIT
License File: node_modules/concat-map/LICENSE
@@ -390,13 +358,6 @@ All rights reserved.
Source: git://github.com/thlorenz/convert-source-map.git
Link: https://github.com/thlorenz/convert-source-map
-----------
-create-jest
-License: MIT
-License File: node_modules/create-jest/LICENSE
-Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
-Source: https://github.com/jestjs/jest.git
-Link: https://github.com/jestjs/jest.git
------------
create-require
License: MIT
License File: node_modules/create-require/LICENSE
@@ -418,13 +379,6 @@ Copyright: Copyright (c) 2018 Made With MOXY Lda <*****@****.******>
Source: git@github.com:moxystudio/node-cross-spawn.git
Link: https://github.com/moxystudio/node-cross-spawn
-----------
-cssom
-License: MIT
-License File: node_modules/cssom/LICENSE.txt
-Copyright: Copyright (c) Nikita Vasilyev
-Source: NV/CSSOM
-Link: NV/CSSOM
------------
cssstyle
License: MIT
License File: node_modules/cssstyle/LICENSE
@@ -515,13 +469,6 @@ Copyright: Copyright (C) 2015 Jordan Harband
Source: git://github.com/ljharb/define-properties.git
Link: git://github.com/ljharb/define-properties.git
-----------
-delayed-stream
-License: MIT
-License File: node_modules/delayed-stream/License
-Copyright: Copyright (c) 2011 Debuggable Limited <*****@**********.***>
-Source: git://github.com/felixge/node-delayed-stream.git
-Link: https://github.com/felixge/node-delayed-stream
------------
detect-libc
License: Apache-2.0
License File: node_modules/detect-libc/LICENSE
@@ -535,13 +482,6 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.co
Source: sindresorhus/detect-newline
Link: sindresorhus/detect-newline
-----------
-diff-sequences
-License: MIT
-License File: node_modules/diff-sequences/LICENSE
-Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
-Source: https://github.com/jestjs/jest.git
-Link: https://github.com/jestjs/jest.git
------------
diff
License: BSD-3-Clause
License File: node_modules/diff/LICENSE
@@ -555,12 +495,6 @@ License File: node_modules/doctrine/LICENSE
Source: eslint/doctrine
Link: https://github.com/eslint/doctrine
-----------
-domexception
-License: MIT
-License File: node_modules/domexception/LICENSE.txt
-Source: jsdom/domexception
-Link: jsdom/domexception
------------
dunder-proto
License: MIT
License File: node_modules/dunder-proto/LICENSE
@@ -568,11 +502,10 @@ Copyright: Copyright (c) 2024 ECMAScript Shims
Source: git+https://github.com/es-shims/dunder-proto.git
Link: https://github.com/es-shims/dunder-proto#readme
-----------
-ejs
-License: Apache-2.0
-License File: node_modules/ejs/LICENSE
-Source: git://github.com/mde/ejs.git
-Link: https://github.com/mde/ejs
+eastasianwidth
+License: MIT
+Source: git://github.com/komagata/eastasianwidth.git
+Link: git://github.com/komagata/eastasianwidth.git
-----------
electron-to-chromium
License: ISC
@@ -679,13 +612,6 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindres
Source: sindresorhus/escape-string-regexp
Link: sindresorhus/escape-string-regexp
-----------
-escodegen
-License: BSD-2-Clause
-License File: node_modules/escodegen/LICENSE.BSD
-Copyright: Copyright (C) 2012 Yusuke Suzuki (twitter: @Constellation) and other contributors.
-Source: http://github.com/estools/escodegen.git
-Link: http://github.com/estools/escodegen
------------
eslint-import-resolver-node
License: MIT
License File: node_modules/eslint-import-resolver-node/LICENSE
@@ -772,9 +698,10 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindres
Source: sindresorhus/execa
Link: sindresorhus/execa
-----------
-exit
-Source: git://github.com/cowboy/node-exit.git
-Link: https://github.com/cowboy/node-exit
+exit-x
+License: MIT
+Source: git://github.com/gruntjs/node-exit-x.git
+Link: https://github.com/gruntjs/node-exit-x
-----------
expect
License: MIT
@@ -817,11 +744,6 @@ Copyright: Copyright (c) Roy Riojas & Jared Wray
Source: jaredwray/file-entry-cache
Link: jaredwray/file-entry-cache
-----------
-filelist
-License: Apache-2.0
-Source: git://github.com/mde/filelist.git
-Link: https://github.com/mde/filelist
------------
fill-range
License: MIT
License File: node_modules/fill-range/LICENSE
@@ -857,12 +779,12 @@ Copyright: Copyright (c) 2012 Raynos.
Source: https://github.com/Raynos/for-each.git
Link: https://github.com/Raynos/for-each
-----------
-form-data
-License: MIT
-License File: node_modules/form-data/License
-Copyright: Copyright (c) 2012 Felix Geisendörfer (*****@**********.***) and contributors
-Source: git://github.com/form-data/form-data.git
-Link: git://github.com/form-data/form-data.git
+foreground-child
+License: ISC
+License File: node_modules/foreground-child/LICENSE
+Copyright: Copyright (c) 2015-2023 Isaac Z. Schlueter and Contributors
+Source: git+https://github.com/tapjs/foreground-child.git
+Link: git+https://github.com/tapjs/foreground-child.git
-----------
fs.realpath
License: ISC
@@ -951,7 +873,7 @@ Link: gulpjs/glob-parent
glob
License: ISC
License File: node_modules/glob/LICENSE
-Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Copyright: Copyright (c) 2009-2023 Isaac Z. Schlueter and Contributors
Source: git://github.com/isaacs/node-glob.git
Link: git://github.com/isaacs/node-glob.git
-----------
@@ -983,6 +905,13 @@ Copyright: Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contri
Source: https://github.com/isaacs/node-graceful-fs
Link: https://github.com/isaacs/node-graceful-fs
-----------
+handlebars
+License: MIT
+License File: node_modules/handlebars/LICENSE
+Copyright: Copyright (C) 2011-2019 by Yehuda Katz
+Source: https://github.com/handlebars-lang/handlebars.js.git
+Link: https://www.handlebarsjs.com/
+-----------
has-bigints
License: MIT
License File: node_modules/has-bigints/LICENSE
@@ -1054,13 +983,17 @@ Link: https://github.com/WebReflection/html-escaper
-----------
http-proxy-agent
License: MIT
-Source: git://github.com/TooTallNate/node-http-proxy-agent.git
-Link: git://github.com/TooTallNate/node-http-proxy-agent.git
+License File: node_modules/http-proxy-agent/LICENSE
+Copyright: Copyright (c) 2013 Nathan Rajlich <******@***********.***>
+Source: https://github.com/TooTallNate/proxy-agents.git
+Link: https://github.com/TooTallNate/proxy-agents.git
-----------
https-proxy-agent
License: MIT
-Source: git://github.com/TooTallNate/node-https-proxy-agent.git
-Link: git://github.com/TooTallNate/node-https-proxy-agent.git
+License File: node_modules/https-proxy-agent/LICENSE
+Copyright: Copyright (c) 2013 Nathan Rajlich <******@***********.***>
+Source: https://github.com/TooTallNate/proxy-agents.git
+Link: https://github.com/TooTallNate/proxy-agents.git
-----------
human-signals
License: Apache-2.0
@@ -1398,10 +1331,11 @@ Copyright: Copyright 2012-2015 Yahoo! Inc.
Source: git+ssh://git@github.com/istanbuljs/istanbuljs.git
Link: https://istanbul.js.org/
-----------
-jake
-License: Apache-2.0
-Source: git://github.com/jakejs/jake.git
-Link: git://github.com/jakejs/jake.git
+jackspeak
+License: BlueOak-1.0.0
+License File: node_modules/jackspeak/LICENSE.md
+Source: git+https://github.com/isaacs/jackspeak.git
+Link: git+https://github.com/isaacs/jackspeak.git
-----------
jest-changed-files
License: MIT
@@ -1466,13 +1400,6 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
Source: https://github.com/jestjs/jest.git
Link: https://github.com/jestjs/jest.git
-----------
-jest-get-type
-License: MIT
-License File: node_modules/jest-get-type/LICENSE
-Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
-Source: https://github.com/jestjs/jest.git
-Link: https://github.com/jestjs/jest.git
------------
jest-haste-map
License: MIT
License File: node_modules/jest-haste-map/LICENSE
@@ -1608,8 +1535,8 @@ jsdom
License: MIT
License File: node_modules/jsdom/LICENSE.txt
Copyright: Copyright (c) 2010 Elijah Insua
-Source: jsdom/jsdom
-Link: jsdom/jsdom
+Source: git+https://github.com/jsdom/jsdom.git
+Link: git+https://github.com/jsdom/jsdom.git
-----------
jsesc
License: MIT
@@ -1664,13 +1591,6 @@ License: MIT
Source: git+https://github.com/jaredwray/keyv.git
Link: https://github.com/jaredwray/keyv
-----------
-kleur
-License: MIT
-License File: node_modules/kleur/license
-Copyright: Copyright (c) Luke Edwards <****.*********@*****.***> (lukeed.com)
-Source: lukeed/kleur
-Link: lukeed/kleur
------------
leven
License: MIT
License File: node_modules/leven/license
@@ -1699,20 +1619,6 @@ Copyright: Copyright (c) 2015 Vitaly Puzrin.
Source: markdown-it/linkify-it
Link: markdown-it/linkify-it
-----------
-livereload-js
-License: MIT
-License File: node_modules/livereload-js/LICENSE
-Copyright: Copyright (c) 2010-2012 Andrey Tarantsov
-Source: git://github.com/livereload/livereload-js.git
-Link: https://github.com/livereload/livereload-js
------------
-livereload
-License: MIT
-License File: node_modules/livereload/LICENSE
-Copyright: Copyright (c) 2010 Joshua Peek
-Source: http://github.com/napcs/node-livereload.git
-Link: http://github.com/napcs/node-livereload.git
------------
load-json-file
License: MIT
License File: node_modules/load-json-file/license
@@ -1827,22 +1733,6 @@ Copyright: Copyright (c) 2014-present, Jon Schlinkert.
Source: micromatch/micromatch
Link: https://github.com/micromatch/micromatch
-----------
-mime-db
-License: MIT
-License File: node_modules/mime-db/LICENSE
-Copyright: Copyright (c) 2014 Jonathan Ong <**@***********.***>
-Copyright (c) 2015-2022 Douglas Christopher Wilson <****@*************.***>
-Source: jshttp/mime-db
-Link: jshttp/mime-db
------------
-mime-types
-License: MIT
-License File: node_modules/mime-types/LICENSE
-Copyright: Copyright (c) 2014 Jonathan Ong <**@***********.***>
-Copyright (c) 2015 Douglas Christopher Wilson <****@*************.***>
-Source: jshttp/mime-types
-Link: jshttp/mime-types
------------
mimic-fn
License: MIT
License File: node_modules/mimic-fn/license
@@ -1863,6 +1753,13 @@ License File: node_modules/minimist/LICENSE
Source: git://github.com/minimistjs/minimist.git
Link: https://github.com/minimistjs/minimist
-----------
+minipass
+License: ISC
+License File: node_modules/minipass/LICENSE
+Copyright: Copyright (c) 2017-2023 npm, Inc., Isaac Z. Schlueter, and Contributors
+Source: https://github.com/isaacs/minipass
+Link: https://github.com/isaacs/minipass
+-----------
ms
License: MIT
License File: node_modules/ms/license.md
@@ -1870,11 +1767,26 @@ Copyright: Copyright (c) 2020 Vercel, Inc.
Source: vercel/ms
Link: vercel/ms
-----------
+napi-postinstall
+License: MIT
+License File: node_modules/napi-postinstall/LICENSE
+Copyright: Copyright (c) 2021-present UnTS
+Source: git+https://github.com/un-ts/napi-postinstall.git
+Link: git+https://github.com/un-ts/napi-postinstall.git
+-----------
natural-compare
License: MIT
Source: git://github.com/litejs/natural-compare-lite.git
Link: git://github.com/litejs/natural-compare-lite.git
-----------
+neo-async
+License: MIT
+License File: node_modules/neo-async/LICENSE
+Copyright: Copyright (c) 2014-2018 Suguru Motegi
+Based on Async.js, Copyright Caolan McMahon
+Source: git@github.com:suguru03/neo-async.git
+Link: https://github.com/suguru03/neo-async
+-----------
nice-try
License: MIT
License File: node_modules/nice-try/LICENSE
@@ -2002,14 +1914,6 @@ Copyright: Copyright (c) George Zahariev
Source: git://github.com/gkz/optionator.git
Link: https://github.com/gkz/optionator
-----------
-opts
-License: BSD-2-Clause
-License File: node_modules/opts/LICENSE.txt
-Copyright: Copyright (c) 2010, Joey Mazzarelli
-All rights reserved.
-Source: github:khtdr/opts
-Link: http://khtdr.com/opts
------------
own-keys
License: MIT
License File: node_modules/own-keys/LICENSE
@@ -2038,6 +1942,12 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.co
Source: sindresorhus/p-try
Link: sindresorhus/p-try
-----------
+package-json-from-dist
+License: BlueOak-1.0.0
+License File: node_modules/package-json-from-dist/LICENSE.md
+Source: git+https://github.com/isaacs/package-json-from-dist.git
+Link: git+https://github.com/isaacs/package-json-from-dist.git
+-----------
parent-module
License: MIT
License File: node_modules/parent-module/license
@@ -2087,6 +1997,12 @@ Copyright: Copyright (c) 2015 Javier Blanco
Source: https://github.com/jbgutierrez/path-parse.git
Link: https://github.com/jbgutierrez/path-parse#readme
-----------
+path-scurry
+License: BlueOak-1.0.0
+License File: node_modules/path-scurry/LICENSE.md
+Source: git+https://github.com/isaacs/path-scurry
+Link: git+https://github.com/isaacs/path-scurry
+-----------
path-type
License: MIT
License File: node_modules/path-type/license
@@ -2157,20 +2073,6 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
Source: https://github.com/jestjs/jest.git
Link: https://github.com/jestjs/jest.git
-----------
-prompts
-License: MIT
-License File: node_modules/prompts/license
-Copyright: Copyright (c) 2018 Terkel Gjervig Nielsen
-Source: terkelg/prompts
-Link: terkelg/prompts
------------
-psl
-License: MIT
-License File: node_modules/psl/LICENSE
-Copyright: Copyright (c) 2017 Lupo Montero ***********@*****.***
-Source: git@github.com:lupomontero/psl.git
-Link: git@github.com:lupomontero/psl.git
------------
punycode.js
License: MIT
License File: node_modules/punycode.js/LICENSE-MIT.txt
@@ -2190,13 +2092,6 @@ Copyright: Copyright (c) 2018 Nicolas DUBIEN
Source: git+https://github.com/dubzzz/pure-rand.git
Link: https://github.com/dubzzz/pure-rand#readme
-----------
-querystringify
-License: MIT
-License File: node_modules/querystringify/LICENSE
-Copyright: Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors.
-Source: https://github.com/unshiftio/querystringify
-Link: https://github.com/unshiftio/querystringify
------------
react-is
License: MIT
License File: node_modules/react-is/LICENSE
@@ -2246,13 +2141,6 @@ Copyright: Copyright (c) 2016, Contributors
Source: git+ssh://git@github.com/yargs/require-main-filename.git
Link: https://github.com/yargs/require-main-filename#readme
-----------
-requires-port
-License: MIT
-License File: node_modules/requires-port/LICENSE
-Copyright: Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors.
-Source: https://github.com/unshiftio/requires-port
-Link: https://github.com/unshiftio/requires-port
------------
resolve-cwd
License: MIT
License File: node_modules/resolve-cwd/license
@@ -2267,13 +2155,6 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.co
Source: sindresorhus/resolve-from
Link: sindresorhus/resolve-from
-----------
-resolve.exports
-License: MIT
-License File: node_modules/resolve.exports/license
-Copyright: Copyright (c) Luke Edwards <****.*********@*****.***> (lukeed.com)
-Source: lukeed/resolve.exports
-Link: lukeed/resolve.exports
------------
resolve
License: MIT
License File: node_modules/resolve/LICENSE
@@ -2281,6 +2162,13 @@ Copyright: Copyright (c) 2012 James Halliday
Source: git://github.com/browserify/resolve.git
Link: git://github.com/browserify/resolve.git
-----------
+rrweb-cssom
+License: MIT
+License File: node_modules/rrweb-cssom/LICENSE.txt
+Copyright: Copyright (c) Nikita Vasilyev
+Source: rrweb-io/CSSOM
+Link: rrweb-io/CSSOM
+-----------
safe-array-concat
License: MIT
License File: node_modules/safe-array-concat/LICENSE
@@ -2408,16 +2296,9 @@ Link: https://github.com/ljharb/side-channel#readme
signal-exit
License: ISC
License File: node_modules/signal-exit/LICENSE.txt
-Copyright: Copyright (c) 2015, Contributors
+Copyright: Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and Contributors
Source: https://github.com/tapjs/signal-exit.git
-Link: https://github.com/tapjs/signal-exit
------------
-sisteransi
-License: MIT
-License File: node_modules/sisteransi/license
-Copyright: Copyright (c) 2018 Terkel Gjervig Nielsen
-Source: https://github.com/terkelg/sisteransi
-Link: https://github.com/terkelg/sisteransi
+Link: https://github.com/tapjs/signal-exit.git
-----------
slash
License: MIT
@@ -2516,6 +2397,13 @@ Link: sindresorhus/string-length
-----------
string-width
License: MIT
+License File: node_modules/string-width-cjs/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/string-width
+Link: sindresorhus/string-width
+-----------
+string-width
+License: MIT
License File: node_modules/string-width/license
Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
Source: sindresorhus/string-width
@@ -2551,11 +2439,18 @@ Link: git://github.com/es-shims/String.prototype.trimStart.git
-----------
strip-ansi
License: MIT
-License File: node_modules/strip-ansi/license
+License File: node_modules/strip-ansi-cjs/license
Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
Source: chalk/strip-ansi
Link: chalk/strip-ansi
-----------
+strip-ansi
+License: MIT
+License File: node_modules/strip-ansi/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: chalk/strip-ansi
+Link: chalk/strip-ansi
+-----------
strip-bom
License: MIT
License File: node_modules/strip-bom/license
@@ -2605,6 +2500,13 @@ Copyright: Copyright (c) 2015 Joris van der Wel
Source: https://github.com/jsdom/js-symbol-tree.git
Link: https://github.com/jsdom/js-symbol-tree#symbol-tree
-----------
+synckit
+License: MIT
+License File: node_modules/synckit/LICENSE
+Copyright: Copyright (c) 2021 UnTS
+Source: https://github.com/un-ts/synckit.git
+Link: https://github.com/un-ts/synckit.git
+-----------
test-exclude
License: ISC
License File: node_modules/test-exclude/LICENSE.txt
@@ -2612,6 +2514,20 @@ Copyright: Copyright (c) 2016, Contributors
Source: git+https://github.com/istanbuljs/test-exclude.git
Link: https://istanbul.js.org/
-----------
+tldts-core
+License: MIT
+License File: node_modules/tldts-core/LICENSE
+Copyright: Copyright (c) 2017 Thomas Parisot, 2018 Rémi Berson
+Source: git+ssh://git@github.com/remusao/tldts.git
+Link: https://github.com/remusao/tldts#readme
+-----------
+tldts
+License: MIT
+License File: node_modules/tldts/LICENSE
+Copyright: Copyright (c) 2017 Thomas Parisot, 2018 Rémi Berson
+Source: git+ssh://git@github.com/remusao/tldts.git
+Link: https://github.com/remusao/tldts#readme
+-----------
tmpl
License: BSD-3-Clause
License File: node_modules/tmpl/license
@@ -2722,6 +2638,13 @@ License File: node_modules/uc.micro/LICENSE.txt
Source: markdown-it/uc.micro
Link: markdown-it/uc.micro
-----------
+uglify-js
+License: BSD-2-Clause
+License File: node_modules/uglify-js/LICENSE
+Copyright: Copyright 2012-2024 (c) Mihai Bazon <*****.*****@*****.***>
+Source: mishoo/UglifyJS
+Link: mishoo/UglifyJS
+-----------
unbox-primitive
License: MIT
License File: node_modules/unbox-primitive/LICENSE
@@ -2736,12 +2659,10 @@ Copyright: Copyright (c) Matteo Collina and Undici contributors
Source: git+https://github.com/nodejs/undici.git
Link: https://undici.nodejs.org
-----------
-universalify
+unrs-resolver
License: MIT
-License File: node_modules/universalify/LICENSE
-Copyright: Copyright (c) 2017, Ryan Zimmerman <*******@*******.***>
-Source: git+https://github.com/RyanZim/universalify.git
-Link: https://github.com/RyanZim/universalify#readme
+Source: git+https://github.com/unrs/unrs-resolver.git
+Link: https://github.com/unrs/unrs-resolver#readme
-----------
update-browserslist-db
License: MIT
@@ -2757,13 +2678,6 @@ Copyright: Copyright 2011 Gary Court. All rights reserved.
Source: http://github.com/garycourt/uri-js
Link: https://github.com/garycourt/uri-js
-----------
-url-parse
-License: MIT
-License File: node_modules/url-parse/LICENSE
-Copyright: Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors.
-Source: https://github.com/unshiftio/url-parse.git
-Link: https://github.com/unshiftio/url-parse.git
------------
v8-compile-cache-lib
License: MIT
License File: node_modules/v8-compile-cache-lib/LICENSE
@@ -2880,6 +2794,19 @@ Copyright: Copyright (c) 2014-2016, Jon Schlinkert
Source: jonschlinkert/word-wrap
Link: https://github.com/jonschlinkert/word-wrap
-----------
+wordwrap
+License: MIT
+License File: node_modules/wordwrap/LICENSE
+Source: git://github.com/substack/node-wordwrap.git
+Link: git://github.com/substack/node-wordwrap.git
+-----------
+wrap-ansi
+License: MIT
+License File: node_modules/wrap-ansi-cjs/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: chalk/wrap-ansi
+Link: chalk/wrap-ansi
+-----------
wrap-ansi
License: MIT
License File: node_modules/wrap-ansi/license
@@ -2971,6 +2898,31 @@ License File: node_modules/@ampproject/remapping/LICENSE
Source: git+https://github.com/ampproject/remapping.git
Link: git+https://github.com/ampproject/remapping.git
-----------
+@asamuzakjp/css-color
+License: MIT
+License File: node_modules/@asamuzakjp/css-color/LICENSE
+Copyright: Copyright (c) 2024 asamuzaK (Kazz)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+Source: git+https://github.com/asamuzaK/cssColor.git
+Link: https://github.com/asamuzaK/cssColor#readme
+-----------
@babel/code-frame
License: MIT
License File: node_modules/@babel/code-frame/LICENSE
@@ -3335,6 +3287,54 @@ Copyright: Copyright (c) 2014 Evan Wallace
Source: https://github.com/cspotcode/node-source-map-support
Link: https://github.com/cspotcode/node-source-map-support
-----------
+@csstools/color-helpers
+License: MIT-0
+License File: node_modules/@csstools/color-helpers/LICENSE.md
+Source: git+https://github.com/csstools/postcss-plugins.git
+Link: https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers#readme
+-----------
+@csstools/css-calc
+License: MIT
+License File: node_modules/@csstools/css-calc/LICENSE.md
+Copyright: Copyright 2022 Romain Menke, Antonio Laguna <*******@******.**>
+Source: git+https://github.com/csstools/postcss-plugins.git
+Link: https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc#readme
+-----------
+@csstools/css-color-parser
+License: MIT
+License File: node_modules/@csstools/css-color-parser/LICENSE.md
+Copyright: Copyright 2022 Romain Menke, Antonio Laguna <*******@******.**>
+Source: git+https://github.com/csstools/postcss-plugins.git
+Link: https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser#readme
+-----------
+@csstools/css-parser-algorithms
+License: MIT
+License File: node_modules/@csstools/css-parser-algorithms/LICENSE.md
+Copyright: Copyright 2022 Romain Menke, Antonio Laguna <*******@******.**>
+Source: git+https://github.com/csstools/postcss-plugins.git
+Link: https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms#readme
+-----------
+@csstools/css-tokenizer
+License: MIT
+License File: node_modules/@csstools/css-tokenizer/LICENSE.md
+Copyright: Copyright 2022 Romain Menke, Antonio Laguna <*******@******.**>
+Source: git+https://github.com/csstools/postcss-plugins.git
+Link: https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer#readme
+-----------
+@emnapi/core
+License: MIT
+License File: node_modules/@emnapi/core/LICENSE
+Copyright: Copyright (c) 2021-present Toyobayashi
+Source: git+https://github.com/toyobayashi/emnapi.git
+Link: https://github.com/toyobayashi/emnapi#readme
+-----------
+@emnapi/runtime
+License: MIT
+License File: node_modules/@emnapi/runtime/LICENSE
+Copyright: Copyright (c) 2021-present Toyobayashi
+Source: git+https://github.com/toyobayashi/emnapi.git
+Link: https://github.com/toyobayashi/emnapi#readme
+-----------
@esbuild/linux-x64
License: MIT
Source: git+https://github.com/evanw/esbuild.git
@@ -3388,7 +3388,7 @@ Link: https://eslint.org
License: Apache-2.0
License File: node_modules/@eslint/object-schema/LICENSE
Source: git+https://github.com/eslint/rewrite.git
-Link: https://github.com/eslint/rewrite#readme
+Link: https://github.com/eslint/rewrite/tree/main/packages/object-schema#readme
-----------
@eslint/plugin-kit
License: Apache-2.0
@@ -3420,6 +3420,13 @@ License File: node_modules/@humanwhocodes/retry/LICENSE
Source: git+https://github.com/humanwhocodes/retry.git
Link: git+https://github.com/humanwhocodes/retry.git
-----------
+@isaacs/cliui
+License: ISC
+License File: node_modules/@isaacs/cliui/LICENSE.txt
+Copyright: Copyright (c) 2015, Contributors
+Source: yargs/cliui
+Link: yargs/cliui
+-----------
@istanbuljs/load-nyc-config
License: ISC
License File: node_modules/@istanbuljs/load-nyc-config/LICENSE
@@ -3448,6 +3455,20 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
Source: https://github.com/jestjs/jest.git
Link: https://jestjs.io/
-----------
+@jest/diff-sequences
+License: MIT
+License File: node_modules/@jest/diff-sequences/LICENSE
+Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
+Source: https://github.com/jestjs/jest.git
+Link: https://github.com/jestjs/jest.git
+-----------
+@jest/environment-jsdom-abstract
+License: MIT
+License File: node_modules/@jest/environment-jsdom-abstract/LICENSE
+Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
+Source: https://github.com/jestjs/jest.git
+Link: https://github.com/jestjs/jest.git
+-----------
@jest/environment
License: MIT
License File: node_modules/@jest/environment/LICENSE
@@ -3476,6 +3497,13 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
Source: https://github.com/jestjs/jest.git
Link: https://github.com/jestjs/jest.git
-----------
+@jest/get-type
+License: MIT
+License File: node_modules/@jest/get-type/LICENSE
+Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
+Source: https://github.com/jestjs/jest.git
+Link: https://github.com/jestjs/jest.git
+-----------
@jest/globals
License: MIT
License File: node_modules/@jest/globals/LICENSE
@@ -3483,6 +3511,13 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
Source: https://github.com/jestjs/jest.git
Link: https://github.com/jestjs/jest.git
-----------
+@jest/pattern
+License: MIT
+License File: node_modules/@jest/pattern/LICENSE
+Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
+Source: https://github.com/jestjs/jest.git
+Link: https://github.com/jestjs/jest.git
+-----------
@jest/reporters
License: MIT
License File: node_modules/@jest/reporters/LICENSE
@@ -3497,6 +3532,13 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
Source: https://github.com/jestjs/jest.git
Link: https://github.com/jestjs/jest.git
-----------
+@jest/snapshot-utils
+License: MIT
+License File: node_modules/@jest/snapshot-utils/LICENSE
+Copyright: Copyright (c) Meta Platforms, Inc. and affiliates.
+Source: https://github.com/jestjs/jest.git
+Link: https://github.com/jestjs/jest.git
+-----------
@jest/source-map
License: MIT
License File: node_modules/@jest/source-map/LICENSE
@@ -3665,6 +3707,17 @@ Copyright: Copyright (c) 2017-present Devon Govett
Source: https://github.com/parcel-bundler/watcher.git
Link: https://github.com/parcel-bundler/watcher.git
-----------
+@pkgjs/parseargs
+License: MIT
+License File: node_modules/@pkgjs/parseargs/LICENSE
+Source: git@github.com:pkgjs/parseargs.git
+Link: https://github.com/pkgjs/parseargs#readme
+-----------
+@pkgr/core
+License: MIT
+Source: git+https://github.com/un-ts/pkgr.git
+Link: https://github.com/un-ts/pkgr/blob/master/packages/core
+-----------
@rtsao/scc
License: MIT
License File: node_modules/@rtsao/scc/LICENSE
@@ -3690,7 +3743,7 @@ Link: https://github.com/sinonjs/commons#readme
License: BSD-3-Clause
License File: node_modules/@sinonjs/fake-timers/LICENSE
Copyright: Copyright (c) 2010-2014, Christian Johansen, *********@*********.**. All rights reserved.
-Source: https://github.com/sinonjs/fake-timers.git
+Source: git+https://github.com/sinonjs/fake-timers.git
Link: https://github.com/sinonjs/fake-timers
-----------
@ssddanbrown/codemirror-lang-smarty
@@ -3703,13 +3756,6 @@ License: MIT
License File: node_modules/@ssddanbrown/codemirror-lang-twig/LICENSE
Copyright: Copyright (C) 2023 by Dan Brown, Marijn Haverbeke and others
-----------
-@tootallnate/once
-License: MIT
-License File: node_modules/@tootallnate/once/LICENSE
-Copyright: Copyright (c) 2020 Nathan Rajlich
-Source: git://github.com/TooTallNate/once.git
-Link: git://github.com/TooTallNate/once.git
------------
@tsconfig/node10
License: MIT
License File: node_modules/@tsconfig/node10/LICENSE
@@ -3738,6 +3784,11 @@ Copyright: Copyright (c) Microsoft Corporation.
Source: https://github.com/tsconfig/bases.git
Link: https://github.com/tsconfig/bases.git
-----------
+@tybys/wasm-util
+License: MIT
+Source: https://github.com/toyobayashi/wasm-util.git
+Link: https://github.com/toyobayashi/wasm-util.git
+-----------
@types/babel__core
License: MIT
License File: node_modules/@types/babel__core/LICENSE
@@ -3773,13 +3824,6 @@ Copyright: Copyright (c) Microsoft Corporation.
Source: https://github.com/DefinitelyTyped/DefinitelyTyped.git
Link: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree
-----------
-@types/graceful-fs
-License: MIT
-License File: node_modules/@types/graceful-fs/LICENSE
-Copyright: Copyright (c) Microsoft Corporation.
-Source: https://github.com/DefinitelyTyped/DefinitelyTyped.git
-Link: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/graceful-fs
------------
@types/istanbul-lib-coverage
License: MIT
License File: node_modules/@types/istanbul-lib-coverage/LICENSE
@@ -3889,3 +3933,20 @@ License File: node_modules/@types/yargs/LICENSE
Copyright: Copyright (c) Microsoft Corporation.
Source: https://github.com/DefinitelyTyped/DefinitelyTyped.git
Link: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/yargs
+-----------
+@ungap/structured-clone
+License: ISC
+License File: node_modules/@ungap/structured-clone/LICENSE
+Copyright: Copyright (c) 2021, Andrea Giammarchi, @WebReflection
+Source: git+https://github.com/ungap/structured-clone.git
+Link: https://github.com/ungap/structured-clone#readme
+-----------
+@unrs/resolver-binding-linux-x64-gnu
+License: MIT
+Source: git+https://github.com/unrs/unrs-resolver.git
+Link: https://github.com/unrs/unrs-resolver#readme
+-----------
+@unrs/resolver-binding-linux-x64-musl
+License: MIT
+Source: git+https://github.com/unrs/unrs-resolver.git
+Link: https://github.com/unrs/unrs-resolver#readme
diff --git a/dev/licensing/php-library-licenses.txt b/dev/licensing/php-library-licenses.txt
index f1ca23c9f..d178e9243 100644
--- a/dev/licensing/php-library-licenses.txt
+++ b/dev/licensing/php-library-licenses.txt
@@ -13,7 +13,7 @@ Link: http://aws.amazon.com/sdkforphp
bacon/bacon-qr-code
License: BSD-2-Clause
License File: vendor/bacon/bacon-qr-code/LICENSE
-Copyright: Copyright (c) 2017, Ben Scholzen 'DASPRiD'
+Copyright: Copyright (c) 2017-present, Ben Scholzen 'DASPRiD'
All rights reserved.
Source: https://github.com/Bacon/BaconQrCode.git
Link: https://github.com/Bacon/BaconQrCode
@@ -176,7 +176,7 @@ License: MIT
License File: vendor/intervention/image/LICENSE
Copyright: Copyright (c) 2013-present Oliver Vogel
Source: https://github.com/Intervention/image.git
-Link: https://image.intervention.io/
+Link: https://image.intervention.io
-----------
knplabs/knp-snappy
License: MIT
@@ -465,7 +465,7 @@ Link: https://github.com/php-fig/simple-cache.git
psy/psysh
License: MIT
License File: vendor/psy/psysh/LICENSE
-Copyright: Copyright (c) 2012-2023 Justin Hileman
+Copyright: Copyright (c) 2012-2025 Justin Hileman
Source: https://github.com/bobthecow/psysh.git
Link: https://psysh.org
-----------
@@ -592,6 +592,13 @@ Copyright: Copyright (c) 2018-present Fabien Potencier
Source: https://github.com/symfony/event-dispatcher-contracts.git
Link: https://symfony.com
-----------
+symfony/filesystem
+License: MIT
+License File: vendor/symfony/filesystem/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/filesystem.git
+Link: https://symfony.com
+-----------
symfony/finder
License: MIT
License File: vendor/symfony/finder/LICENSE
@@ -676,6 +683,20 @@ Copyright: Copyright (c) 2022-present Fabien Potencier
Source: https://github.com/symfony/polyfill-php83.git
Link: https://symfony.com
-----------
+symfony/polyfill-php84
+License: MIT
+License File: vendor/symfony/polyfill-php84/LICENSE
+Copyright: Copyright (c) 2024-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-php84.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-php85
+License: MIT
+License File: vendor/symfony/polyfill-php85/LICENSE
+Copyright: Copyright (c) 2025-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-php85.git
+Link: https://symfony.com
+-----------
symfony/polyfill-uuid
License: MIT
License File: vendor/symfony/polyfill-uuid/LICENSE
@@ -759,10 +780,3 @@ License File: vendor/voku/portable-ascii/LICENSE.txt
Copyright: Copyright (C) 2019 Lars Moelleken
Source: https://github.com/voku/portable-ascii.git
Link: https://github.com/voku/portable-ascii
------------
-webmozart/assert
-License: MIT
-License File: vendor/webmozart/assert/LICENSE
-Copyright: Copyright (c) 2014 Bernhard Schussek
-Source: https://github.com/webmozarts/assert.git
-Link: https://github.com/webmozarts/assert.git
diff --git a/lang/ar/entities.php b/lang/ar/entities.php
index 1f1d4e411..8b2882c60 100644
--- a/lang/ar/entities.php
+++ b/lang/ar/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'سيؤدي هذا إلى حذف مِلَفّ الاستيراد المضغوط ZIP، ولا يمكن التراجع عنه.',
'import_errors' => 'أخطاء الاستيراد',
'import_errors_desc' => 'حدثت الأخطاء التالية خلال محاولة الاستيراد:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'تصفح أشقاء هذه الصفحة',
+ 'breadcrumb_siblings_for_chapter' => 'تصفح أشقاء هذا الفصل',
+ 'breadcrumb_siblings_for_book' => 'تصفح أشقاء هذا الكتاب',
+ 'breadcrumb_siblings_for_bookshelf' => 'تصفح أشقاء هذا الرف',
// Permissions and restrictions
'permissions' => 'الأذونات',
diff --git a/lang/ar/errors.php b/lang/ar/errors.php
index 4c6325cb3..491f04c07 100644
--- a/lang/ar/errors.php
+++ b/lang/ar/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'لم أتمكن من قراءة المِلَفّ المضغوط -ZIP-.',
'import_zip_cant_decode_data' => 'لم نتمكن من العثور على محتوى المِلَفّ المضغوط data.json وفك تشفيره.',
'import_zip_no_data' => 'لا تتضمن بيانات المِلَفّ المضغوط أي محتوى متوقع للكتاب أو الفصل أو الصفحة.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'فشل التحقق من صحة استيراد المِلَفّ المضغوط بسبب الأخطاء التالية:',
'import_zip_failed_notification' => 'فشل استيراد المِلَفّ المضغوط.',
'import_perms_books' => 'أنت تفتقر إلى الصلاحيات المطلوبة لإنشاء الكتب.',
diff --git a/lang/ar/notifications.php b/lang/ar/notifications.php
index 30a49a631..69d5dfdcf 100644
--- a/lang/ar/notifications.php
+++ b/lang/ar/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'تم تحديث الصفحة: :pageName',
'updated_page_intro' => 'تم تحديث الصفحة في :appName:',
'updated_page_debounce' => 'لمنع تلقي عدد كبير من الإشعارات، لن يتم إرسال إشعارات إليك لفترة من الوقت لإجراء المزيد من التعديلات على هذه الصفحة بواسطة نفس المحرر.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'اسم الصفحة:',
'detail_page_path' => 'مسار الصفحة:',
diff --git a/lang/ar/preferences.php b/lang/ar/preferences.php
index 9158b4b37..92733c998 100644
--- a/lang/ar/preferences.php
+++ b/lang/ar/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'التحكم في إشعارات البريد الإلكتروني الذي تتلقاها عند إجراء نشاط معين داخل النظام.',
'notifications_opt_own_page_changes' => 'إشعاري عند حدوث تغييرات في الصفحات التي أملكها',
'notifications_opt_own_page_comments' => 'إشعاري بشأن التعليقات على الصفحات التي أملكها',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'إشعاري عند الردود على تعليقاتي',
'notifications_save' => 'حفظ اﻹعدادات',
'notifications_update_success' => 'تم تحديث إعدادات الإشعارات!',
diff --git a/lang/ar/settings.php b/lang/ar/settings.php
index 9006ac227..dc95ac846 100644
--- a/lang/ar/settings.php
+++ b/lang/ar/settings.php
@@ -75,7 +75,7 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'لم يتم اختيار أي قيود',
// Sorting Settings
- 'sorting' => 'طريقة الترتيب',
+ 'sorting' => 'القوائم و الفرز',
'sorting_book_default' => 'ترتيب الكتاب الافتراضي',
'sorting_book_default_desc' => 'حدد قاعدة الترتيب الافتراضية لتطبيقها على الكتب الجديدة. لن يؤثر هذا على الكتب الحالية، ويمكن تجاوزه لكل كتاب على حدة.',
'sorting_rules' => 'قواعد الترتيب',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'تاريخ التحديث',
'sort_rule_op_chapters_first' => 'الفصول الأولى',
'sort_rule_op_chapters_last' => 'الفصول الأخيرة',
+ 'sorting_page_limits' => 'حدود العرض لكل صفحة',
+ 'sorting_page_limits_desc' => 'تعيين عدد العناصر لإظهار كل صفحة في قوائم مختلفة داخل النظام. عادةً ما يكون الرقم الأقل هو الأكثر أداء، بينما وضع رقم أعلى يغني عن النقر على صفحات متعددة. يوصى باستخدام مضاعفات رقم ٣ (18 و 24 و 30 و إلخ...).',
// Maintenance settings
'maint' => 'الصيانة',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'استيراد المحتوى',
'role_editor_change' => 'تغيير محرر الصفحة',
'role_notifications' => 'تلقي الإشعارات وإدارتها',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'أذونات الأصول',
'roles_system_warning' => 'اعلم أن الوصول إلى أي من الأذونات الثلاثة المذكورة أعلاه يمكن أن يسمح للمستخدم بتغيير امتيازاته الخاصة أو امتيازات الآخرين في النظام. قم بتعيين الأدوار مع هذه الأذونات فقط للمستخدمين الموثوق بهم.',
'role_asset_desc' => 'تتحكم هذه الأذونات في الوصول الافتراضي إلى الأصول داخل النظام. ستتجاوز الأذونات الخاصة بالكتب والفصول والصفحات هذه الأذونات.',
'role_asset_admins' => 'يُمنح المسؤولين حق الوصول تلقائيًا إلى جميع المحتويات ولكن هذه الخيارات قد تعرض خيارات واجهة المستخدم أو تخفيها.',
'role_asset_image_view_note' => 'يتعلق هذا بالرؤية داخل مدير الصور. يعتمد الوصول الفعلي لملفات الصور المُحمّلة على خِيار تخزين الصور في النظام.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'الكل',
'role_own' => 'ما يخص',
'role_controlled_by_asset' => 'يتحكم فيها الأصول التي يتم رفعها إلى',
diff --git a/lang/ar/validation.php b/lang/ar/validation.php
index c27770fe3..813f622a3 100644
--- a/lang/ar/validation.php
+++ b/lang/ar/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'تعذر تحميل الملف. قد لا يقبل الخادم ملفات بهذا الحجم.',
'zip_file' => ':attribute بحاجة إلى الرجوع إلى مِلَفّ داخل المِلَفّ المضغوط.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute بحاجة إلى الإشارة إلى مِلَفّ من نوع :validTypes، وجدت :foundType.',
'zip_model_expected' => 'عنصر البيانات المتوقع ولكن ":type" تم العثور عليه.',
'zip_unique' => 'يجب أن يكون :attribute فريداً لنوع الكائن داخل المِلَفّ المضغوط.',
diff --git a/lang/bg/errors.php b/lang/bg/errors.php
index dd0245180..d8dbd4e11 100644
--- a/lang/bg/errors.php
+++ b/lang/bg/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/bg/notifications.php b/lang/bg/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/bg/notifications.php
+++ b/lang/bg/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/bg/preferences.php b/lang/bg/preferences.php
index f954340e2..8f5aaa07e 100644
--- a/lang/bg/preferences.php
+++ b/lang/bg/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/bg/settings.php b/lang/bg/settings.php
index 6dd27d74a..ae770c559 100644
--- a/lang/bg/settings.php
+++ b/lang/bg/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Няма наложени ограничения',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Поддръжка',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Настройки за достъп до активи',
'roles_system_warning' => 'Важно: Добавянето на потребител в някое от горните три роли може да му позволи да промени собствените си права или правата на другите в системата. Възлагайте тези роли само на доверени потребители.',
'role_asset_desc' => 'Тези настройки за достъп контролират достъпа по подразбиране до активите в системата. Настройките за достъп до книги, глави и страници ще отменят тези настройки.',
'role_asset_admins' => 'Администраторите автоматично получават достъп до цялото съдържание, но тези опции могат да показват или скриват опциите за потребителския интерфейс.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Всички',
'role_own' => 'Собствени',
'role_controlled_by_asset' => 'Контролирани от актива, към който са качени',
diff --git a/lang/bg/validation.php b/lang/bg/validation.php
index e08eb55de..e2f9bdaa9 100644
--- a/lang/bg/validation.php
+++ b/lang/bg/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Файлът не можа да бъде качен. Сървърът може да не приема файлове с такъв размер.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/bn/activities.php b/lang/bn/activities.php
index 7e4ba8229..c9268f8ab 100644
--- a/lang/bn/activities.php
+++ b/lang/bn/activities.php
@@ -131,7 +131,7 @@ return [
'sort_rule_create' => 'created sort rule',
'sort_rule_create_notification' => 'Sort rule successfully created',
'sort_rule_update' => 'updated sort rule',
- 'sort_rule_update_notification' => 'Sort rule successfully updated',
+ 'sort_rule_update_notification' => 'রোলটি সার্থকভাবে হালনাগাদ করা হয়েছে',
'sort_rule_delete' => 'deleted sort rule',
'sort_rule_delete_notification' => 'Sort rule successfully deleted',
diff --git a/lang/bn/auth.php b/lang/bn/auth.php
index 06ed376a7..30879fcb6 100644
--- a/lang/bn/auth.php
+++ b/lang/bn/auth.php
@@ -24,8 +24,8 @@ return [
'password_hint' => 'ন্যূনতম ৮ অক্ষরের হতে হবে',
'forgot_password' => 'পাসওয়ার্ড ভুলে গেছেন?',
'remember_me' => 'লগইন স্থায়িত্ব ধরে রাখুন',
- 'ldap_email_hint' => 'Please enter an email to use for this account.',
- 'create_account' => 'Create Account',
+ 'ldap_email_hint' => 'অনুগ্রহ করে এই অ্যাকাউন্টের জন্য ব্যবহার করার জন্য একটি ইমেইল ঠিকানা লিখুন।',
+ 'create_account' => 'অ্যাকাউন্ট তৈরি করুন',
'already_have_account' => 'Already have an account?',
'dont_have_account' => 'Don\'t have an account?',
'social_login' => 'Social Login',
@@ -39,16 +39,16 @@ return [
'register_success' => 'Thanks for signing up! You are now registered and signed in.',
// Login auto-initiation
- 'auto_init_starting' => 'Attempting Login',
+ 'auto_init_starting' => 'লগইন করার চেষ্টা করা হচ্ছে',
'auto_init_starting_desc' => 'We\'re contacting your authentication system to start the login process. If there\'s no progress after 5 seconds you can try clicking the link below.',
'auto_init_start_link' => 'Proceed with authentication',
// Password Reset
- 'reset_password' => 'Reset Password',
+ 'reset_password' => 'পাসওয়ার্ড রিসেট করুন',
'reset_password_send_instructions' => 'Enter your email below and you will be sent an email with a password reset link.',
'reset_password_send_button' => 'Send Reset Link',
'reset_password_sent' => 'A password reset link will be sent to :email if that email address is found in the system.',
- 'reset_password_success' => 'Your password has been successfully reset.',
+ 'reset_password_success' => 'আপনার পাসওয়ার্ড সফলভাবে রিসেট করা হয়েছে.',
'email_reset_subject' => 'Reset your :appName password',
'email_reset_text' => 'You are receiving this email because we received a password reset request for your account.',
'email_reset_not_requested' => 'If you did not request a password reset, no further action is required.',
diff --git a/lang/bn/errors.php b/lang/bn/errors.php
index ee2fbfa21..32dac63e2 100644
--- a/lang/bn/errors.php
+++ b/lang/bn/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/bn/notifications.php b/lang/bn/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/bn/notifications.php
+++ b/lang/bn/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/bn/preferences.php b/lang/bn/preferences.php
index 2e47604e4..c59ec62da 100644
--- a/lang/bn/preferences.php
+++ b/lang/bn/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/bn/settings.php b/lang/bn/settings.php
index 04aca4f2e..6d0f4ab88 100644
--- a/lang/bn/settings.php
+++ b/lang/bn/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Maintenance',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'All',
'role_own' => 'Own',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/bn/validation.php b/lang/bn/validation.php
index d9b982d1e..ff028525d 100644
--- a/lang/bn/validation.php
+++ b/lang/bn/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/bs/errors.php b/lang/bs/errors.php
index f60f92f07..fc1744805 100644
--- a/lang/bs/errors.php
+++ b/lang/bs/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/bs/notifications.php b/lang/bs/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/bs/notifications.php
+++ b/lang/bs/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/bs/preferences.php b/lang/bs/preferences.php
index 2872f5f3c..f4459d738 100644
--- a/lang/bs/preferences.php
+++ b/lang/bs/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/bs/settings.php b/lang/bs/settings.php
index 81c2c0a93..c68605fe1 100644
--- a/lang/bs/settings.php
+++ b/lang/bs/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Maintenance',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'All',
'role_own' => 'Own',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/bs/validation.php b/lang/bs/validation.php
index 4b026afd2..e7e62f2ab 100644
--- a/lang/bs/validation.php
+++ b/lang/bs/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Fajl nije učitan. Server ne prihvata fajlove ove veličine.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/ca/activities.php b/lang/ca/activities.php
index 8decaa739..4894c279a 100644
--- a/lang/ca/activities.php
+++ b/lang/ca/activities.php
@@ -18,35 +18,35 @@ return [
'page_move_notification' => 'S’ha mogut la pàgina',
// Chapters
- 'chapter_create' => 'ha creat el capítol',
+ 'chapter_create' => 'S\'ha creat el capítol',
'chapter_create_notification' => 'S’ha creat el capítol',
'chapter_update' => 'ha actualitzat el capítol',
'chapter_update_notification' => 'S’ha actualitzat el capítol',
'chapter_delete' => 'ha suprimit el capítol',
'chapter_delete_notification' => 'S’ha suprimit el capítol',
- 'chapter_move' => 'ha mogut el capítol',
+ 'chapter_move' => 's\'ha mogut el capítol',
'chapter_move_notification' => 'S’ha mogut el capítol',
// Books
- 'book_create' => 'ha creat el llibre',
+ 'book_create' => 'llibre creat',
'book_create_notification' => 'S’ha creat el llibre',
'book_create_from_chapter' => 'ha convertit el capítol a llibre',
'book_create_from_chapter_notification' => 'S’ha convertit el capítol a llibre',
- 'book_update' => 'ha actualitzat el llibre',
+ 'book_update' => 'llibre actualitzat',
'book_update_notification' => 'S’ha actualitzat el llibre',
- 'book_delete' => 'ha suprimit el llibre',
+ 'book_delete' => 'llibre suprimit',
'book_delete_notification' => 'S’ha suprimit el llibre',
- 'book_sort' => 'ha ordenat el llibre',
+ 'book_sort' => 'llibre ordenat',
'book_sort_notification' => 'S’ha tornat a ordenar el llibre',
// Bookshelves
'bookshelf_create' => 'ha creat el prestatge',
'bookshelf_create_notification' => 'S’ha creat el prestatge',
- 'bookshelf_create_from_book' => 'ha convertit el llibre a prestatge',
+ 'bookshelf_create_from_book' => 'llibre convertit a prestatge',
'bookshelf_create_from_book_notification' => 'S’ha convertit el llibre a prestatge',
- 'bookshelf_update' => 'ha actualitzat el prestatge',
+ 'bookshelf_update' => 'prestatge actualitzat',
'bookshelf_update_notification' => 'S’ha actualitzat el prestatge',
- 'bookshelf_delete' => 'ha suprimit el prestatge',
+ 'bookshelf_delete' => 'prestatge suprimit',
'bookshelf_delete_notification' => 'S’ha suprimit el prestatge',
// Revisions
@@ -85,12 +85,12 @@ return [
'webhook_delete_notification' => 'S’ha suprimit el webhook',
// Imports
- 'import_create' => 'created import',
- 'import_create_notification' => 'Import successfully uploaded',
- 'import_run' => 'updated import',
- 'import_run_notification' => 'Content successfully imported',
- 'import_delete' => 'deleted import',
- 'import_delete_notification' => 'Import successfully deleted',
+ 'import_create' => 'importació creada',
+ 'import_create_notification' => 'L\'importació s\'ha carregat correctament',
+ 'import_run' => 'importació actualitzada',
+ 'import_run_notification' => 'Contingut importat correctament',
+ 'import_delete' => 'importació eliminada',
+ 'import_delete_notification' => 'Importació eliminada correctament',
// Users
'user_create' => 'ha creat l’usuari',
@@ -128,12 +128,12 @@ return [
'comment_delete' => 'ha suprimit un comentari',
// Sort Rules
- 'sort_rule_create' => 'created sort rule',
- 'sort_rule_create_notification' => 'Sort rule successfully created',
- 'sort_rule_update' => 'updated sort rule',
- 'sort_rule_update_notification' => 'Sort rule successfully updated',
- 'sort_rule_delete' => 'deleted sort rule',
- 'sort_rule_delete_notification' => 'Sort rule successfully deleted',
+ 'sort_rule_create' => 'crear regla d\'ordenació',
+ 'sort_rule_create_notification' => 'Regla d\'ordenació creada correctament',
+ 'sort_rule_update' => 'regla d\'ordenació actualitzada',
+ 'sort_rule_update_notification' => 'Regla d\'ordenació actualitzada correctament',
+ 'sort_rule_delete' => 'regla d\'ordenació eliminada',
+ 'sort_rule_delete_notification' => 'Regla d\'ordenació eliminada correctament',
// Other
'permissions_update' => 'ha actualitzat els permisos',
diff --git a/lang/ca/common.php b/lang/ca/common.php
index 698956601..8976edaa1 100644
--- a/lang/ca/common.php
+++ b/lang/ca/common.php
@@ -30,8 +30,8 @@ return [
'create' => 'Crea',
'update' => 'Actualitza',
'edit' => 'Edita',
- 'archive' => 'Archive',
- 'unarchive' => 'Un-Archive',
+ 'archive' => 'Arxivar',
+ 'unarchive' => 'Desarxivar',
'sort' => 'Ordena',
'move' => 'Mou',
'copy' => 'Copia',
@@ -111,5 +111,5 @@ return [
'terms_of_service' => 'Condicions del servei',
// OpenSearch
- 'opensearch_description' => 'Search :appName',
+ 'opensearch_description' => 'Buscar :appName',
];
diff --git a/lang/ca/editor.php b/lang/ca/editor.php
index 8cc04c1ca..e19d82f8f 100644
--- a/lang/ca/editor.php
+++ b/lang/ca/editor.php
@@ -25,7 +25,7 @@ return [
'width' => 'Amplada',
'height' => 'Altura',
'More' => 'Més',
- 'select' => 'Selecciona…',
+ 'select' => 'Selecciona …',
// Toolbar
'formats' => 'Formats',
@@ -48,7 +48,7 @@ return [
'superscript' => 'Superíndex',
'subscript' => 'Subíndex',
'text_color' => 'Color del text',
- 'highlight_color' => 'Highlight color',
+ 'highlight_color' => 'Color ressaltat',
'custom_color' => 'Color personalitzat',
'remove_color' => 'Elimina el color',
'background_color' => 'Color de fons',
@@ -149,7 +149,7 @@ return [
'url' => 'URL',
'text_to_display' => 'Text per a mostrar',
'title' => 'Títol',
- 'browse_links' => 'Browse links',
+ 'browse_links' => 'Explorar enllaços',
'open_link' => 'Obre l’enllaç',
'open_link_in' => 'Obre l’enllaç…',
'open_link_current' => 'A la finestra actual',
@@ -166,8 +166,8 @@ return [
'about' => 'Quant a l’Editor',
'about_title' => 'Quant a l’Editor WYSIWYG',
'editor_license' => 'Llicència i copyright de l’Editor',
- 'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
- 'editor_lexical_license_link' => 'Full license details can be found here.',
+ 'editor_lexical_license' => 'Aquest editor està construït com una bifurcació de :lexicalLink i es distribueix sota la llicència MIT.',
+ 'editor_lexical_license_link' => 'Tots els detalls complets de la llicència es poden trobar aquí.',
'editor_tiny_license' => 'Aquest editor s’ha creat amb :tinyLink que es proporciona amb la llicència MIT.',
'editor_tiny_license_link' => 'Detalls de la llicència i el copyright de TinyMCE.',
'save_continue' => 'Desa la pàgina i continua',
diff --git a/lang/ca/entities.php b/lang/ca/entities.php
index 51bb4aecb..108a38c2c 100644
--- a/lang/ca/entities.php
+++ b/lang/ca/entities.php
@@ -39,34 +39,34 @@ return [
'export_pdf' => 'Fitxer PDF',
'export_text' => 'Fitxer de text sense format',
'export_md' => 'Fitxer Markdown',
- 'export_zip' => 'Portable ZIP',
- 'default_template' => 'Default Page Template',
- 'default_template_explain' => 'Assign a page template that will be used as the default content for all pages created within this item. Keep in mind this will only be used if the page creator has view access to the chosen template page.',
- 'default_template_select' => 'Select a template page',
- 'import' => 'Import',
- 'import_validate' => 'Validate Import',
- 'import_desc' => 'Import books, chapters & pages using a portable zip export from the same, or a different, instance. Select a ZIP file to proceed. After the file has been uploaded and validated you\'ll be able to configure & confirm the import in the next view.',
- 'import_zip_select' => 'Select ZIP file to upload',
- 'import_zip_validation_errors' => 'Errors were detected while validating the provided ZIP file:',
- 'import_pending' => 'Pending Imports',
- 'import_pending_none' => 'No imports have been started.',
- 'import_continue' => 'Continue Import',
- 'import_continue_desc' => 'Review the content due to be imported from the uploaded ZIP file. When ready, run the import to add its contents to this system. The uploaded ZIP import file will be automatically removed on successful import.',
- 'import_details' => 'Import Details',
- 'import_run' => 'Run Import',
- 'import_size' => ':size Import ZIP Size',
- 'import_uploaded_at' => 'Uploaded :relativeTime',
- 'import_uploaded_by' => 'Uploaded by',
- 'import_location' => 'Import Location',
- 'import_location_desc' => 'Select a target location for your imported content. You\'ll need the relevant permissions to create within the location you choose.',
- 'import_delete_confirm' => 'Are you sure you want to delete this import?',
- 'import_delete_desc' => 'This will delete the uploaded import ZIP file, and cannot be undone.',
- 'import_errors' => 'Import Errors',
- 'import_errors_desc' => 'The follow errors occurred during the import attempt:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'export_zip' => 'ZIP portable',
+ 'default_template' => 'Plantilla de pàgina per defecte',
+ 'default_template_explain' => 'Assigna una plantilla de pàgina que s\'utilitzarà com a contingut predeterminat per a totes les pàgines creades en aquest element. Tingues en compte que això només s\'utilitzarà si el creador de pàgines té accés a la plantilla de pàgina triada.',
+ 'default_template_select' => 'Seleccioneu una plantilla de pàgina',
+ 'import' => 'Importar',
+ 'import_validate' => 'Validar importació',
+ 'import_desc' => 'Importar llibres, capítols i pàgines utilitzant una exportació ZIP portable de la mateixa o una altra instància. Selecciona un arxiu ZIP per continuar. Després que l\'arxiu s\'hagi penjat i validat, podrà configurar i confirmar l\'importació en la següent vista.',
+ 'import_zip_select' => 'Seleccioneu un fitxer ZIP per pujar',
+ 'import_zip_validation_errors' => 'S\'han detectat errors al validar l\'arxiu ZIP proporcionat:',
+ 'import_pending' => 'Importació pendent',
+ 'import_pending_none' => 'No s\'han iniciat les importacions.',
+ 'import_continue' => 'Continuar importació',
+ 'import_continue_desc' => 'Revisa el contingut que s\'ha d\'importar de l\'arxiu ZIP penjat. Quan estigui llest, executa l\'importació per afegir el seu contingut al sistema. L\'arxiu d\'importació ZIP penjat s\'eliminarà automàticament al finalitzar l\'importació correctament.',
+ 'import_details' => 'Detalls d\'importació',
+ 'import_run' => 'Executar importació',
+ 'import_size' => ':size Mida de l\'arxiu ZIP',
+ 'import_uploaded_at' => 'Penjat :relativeTime',
+ 'import_uploaded_by' => 'Actualitzat per',
+ 'import_location' => 'Importar ubicació',
+ 'import_location_desc' => 'Selecciona una ubicació de destí pel contingut importat. Necessitarà els permisos pertinents per crear-lo dins de la ubicació triada.',
+ 'import_delete_confirm' => 'Esteu segur que voleu suplir aquesta importació?',
+ 'import_delete_desc' => 'Això eliminarà l\'arxiu ZIP d\'importació penjat i no es pot desfer.',
+ 'import_errors' => 'Importar errors',
+ 'import_errors_desc' => 'S\'han produït els següents errors durant l\'intent d\'importació:',
+ 'breadcrumb_siblings_for_page' => 'Navegar entre pàgines del mateix nivell',
+ 'breadcrumb_siblings_for_chapter' => 'Navegar entre capítols del mateix nivell',
+ 'breadcrumb_siblings_for_book' => 'Navegar entre llibres del mateix nivell',
+ 'breadcrumb_siblings_for_bookshelf' => 'Navegar entre llibreries del mateix nivell',
// Permissions and restrictions
'permissions' => 'Permisos',
@@ -170,9 +170,9 @@ return [
'books_search_this' => 'Cerca en aquest llibre',
'books_navigation' => 'Navegació del llibre',
'books_sort' => 'Ordena el contingut d’un llibre',
- 'books_sort_desc' => 'Move chapters and pages within a book to reorganise its contents. Other books can be added which allows easy moving of chapters and pages between books. Optionally an auto sort rule can be set to automatically sort this book\'s contents upon changes.',
- 'books_sort_auto_sort' => 'Auto Sort Option',
- 'books_sort_auto_sort_active' => 'Auto Sort Active: :sortName',
+ 'books_sort_desc' => 'Mou capítols i pàgines dins d\'un llibre per reorganitzar el seu contingut. Es poden afegir altres llibres que permetin moure fàcilment capítols i pàgines entre llibres. De manera opcional, es poden establir regles d\'ordenació automàtica per ordenar automàticament el contingut d\'aquest llibre quan hi hagi canvis.',
+ 'books_sort_auto_sort' => 'Opció d\'ordenació automàtica',
+ 'books_sort_auto_sort_active' => 'Opció d\'ordenació activa :sortName',
'books_sort_named' => 'Ordena el llibre «:bookName»',
'books_sort_name' => 'Ordena pel nom',
'books_sort_created' => 'Ordena per la data de creació',
@@ -234,7 +234,7 @@ return [
'pages_delete_draft' => 'Suprimeix l’esborrany de pàgina',
'pages_delete_success' => 'S’ha suprimit la pàgina',
'pages_delete_draft_success' => 'S’ha suprimit l’esborrany de pàgina',
- 'pages_delete_warning_template' => 'This page is in active use as a book or chapter default page template. These books or chapters will no longer have a default page template assigned after this page is deleted.',
+ 'pages_delete_warning_template' => 'Aquesta pàgina està en ús com a plantilla de pàgina predeterminada de llibre o capítol. Aquests llibres o capítols ja no tindran una plantilla de pàgina predeterminada assignada després d\'eliminar aquesta pàgina.',
'pages_delete_confirm' => 'Esteu segur que voleu suprimir aquesta pàgina?',
'pages_delete_draft_confirm' => 'Esteu segur que voleu suprimir aquest esborrany de pàgina?',
'pages_editing_named' => 'Edició de la pàgina «:pageName»',
@@ -251,8 +251,8 @@ return [
'pages_edit_switch_to_markdown_clean' => '(Contingut net)',
'pages_edit_switch_to_markdown_stable' => '(Contingut estable)',
'pages_edit_switch_to_wysiwyg' => 'Canvia a l’editor WYSIWYG',
- 'pages_edit_switch_to_new_wysiwyg' => 'Switch to new WYSIWYG',
- 'pages_edit_switch_to_new_wysiwyg_desc' => '(In Beta Testing)',
+ 'pages_edit_switch_to_new_wysiwyg' => 'Canviar al nou editor WYSIWYG',
+ 'pages_edit_switch_to_new_wysiwyg_desc' => '(En Beta Test)',
'pages_edit_set_changelog' => 'Registre de canvis',
'pages_edit_enter_changelog_desc' => 'Introduïu una descripció breu dels canvis que heu fet',
'pages_edit_enter_changelog' => 'Registra un canvi',
@@ -272,7 +272,7 @@ return [
'pages_md_insert_drawing' => 'Insereix un dibuix',
'pages_md_show_preview' => 'Mostra la visualització prèvia',
'pages_md_sync_scroll' => 'Sincronitza el desplaçament de la visualització prèvia',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => 'Editor de text pla',
'pages_drawing_unsaved' => 'S’ha trobat un dibuix sense desar',
'pages_drawing_unsaved_confirm' => 'S’han trobat dades d’un dibuix d’un intent anterior de desar un dibuix. Voleu restaurar aquest dibuix no desat per a reprendre’n l’edició?',
'pages_not_in_chapter' => 'La pàgina no és un capítol',
@@ -397,11 +397,11 @@ return [
'comment' => 'Comentari',
'comments' => 'Comentaris',
'comment_add' => 'Afegeix un comentari',
- 'comment_none' => 'No comments to display',
+ 'comment_none' => 'No hi ha comentaris per mostrar',
'comment_placeholder' => 'Deixa un comentari aquí',
- 'comment_thread_count' => ':count Comment Thread|:count Comment Threads',
- 'comment_archived_count' => ':count Archived',
- 'comment_archived_threads' => 'Archived Threads',
+ 'comment_thread_count' => ':count fil de comentaris|:count fils de comentaris',
+ 'comment_archived_count' => ':count Arxivats',
+ 'comment_archived_threads' => 'Fils arxivats',
'comment_save' => 'Desa el comentari',
'comment_new' => 'Crea un comentari',
'comment_created' => 'ha comentat :createDiff',
@@ -410,14 +410,14 @@ return [
'comment_deleted_success' => 'S’ha suprimit el comentari',
'comment_created_success' => 'S’ha afegit un comentari',
'comment_updated_success' => 'S’ha actualitzat un comentari',
- 'comment_archive_success' => 'Comment archived',
- 'comment_unarchive_success' => 'Comment un-archived',
- 'comment_view' => 'View comment',
- 'comment_jump_to_thread' => 'Jump to thread',
+ 'comment_archive_success' => 'Comentari arxivat',
+ 'comment_unarchive_success' => 'Comentari desarxivat',
+ 'comment_view' => 'Mostra el comentari',
+ 'comment_jump_to_thread' => 'Anar al fil',
'comment_delete_confirm' => 'Esteu segur que voleu suprimir aquest comentari?',
'comment_in_reply_to' => 'En resposta a :commentId',
- 'comment_reference' => 'Reference',
- 'comment_reference_outdated' => '(Outdated)',
+ 'comment_reference' => 'Referència',
+ 'comment_reference_outdated' => '(Obsolet)',
'comment_editor_explain' => 'Vet aquí els comentaris que s’han fet en aquesta pàgina. Els comentaris es poden fer i gestionar quan es visualitza la pàgina desada.',
// Revision
diff --git a/lang/ca/errors.php b/lang/ca/errors.php
index 76fb293da..945d6fd0f 100644
--- a/lang/ca/errors.php
+++ b/lang/ca/errors.php
@@ -6,17 +6,17 @@ return [
// Permissions
'permission' => 'No teniu permís per a accedir a la pàgina sol·licitada.',
- 'permissionJson' => 'No teniu permís per a fer l’acció sol·licitada.',
+ 'permissionJson' => 'No teniu permís per a executar l’acció sol·licitada.',
// Auth
'error_user_exists_different_creds' => 'Ja existeix un usuari amb el correu electrònic :email però amb unes credencials diferents.',
- 'auth_pre_register_theme_prevention' => 'User account could not be registered for the provided details',
- 'email_already_confirmed' => 'Ja s’ha confirmat el correu electrònic. Proveu d’iniciar sessió.',
+ 'auth_pre_register_theme_prevention' => 'El compte d\'usuari no s\'ha pogut registrar amb els detalls proporcionats',
+ 'email_already_confirmed' => 'L’adreça electrònica ja està confirmada. Proveu d’iniciar la sessió.',
'email_confirmation_invalid' => 'Aquest testimoni de confirmació no és vàlid o ja s’ha utilitzat. Proveu de tornar-vos a registrar.',
'email_confirmation_expired' => 'Aquest testimoni de confirmació ha caducat. S’ha enviat un altre correu electrònic de confirmació.',
- 'email_confirmation_awaiting' => 'Cal confirmar l’adreça electrònica del compte que utilitzeu.',
+ 'email_confirmation_awaiting' => 'Cal confirmar l’adreça electrònica del compte que utilitzeu',
'ldap_fail_anonymous' => 'L’accés LDAP anònim ha fallat',
- 'ldap_fail_authed' => 'L’accés LDAP amb el nom distintiu i la contrasenya proporcionades',
+ 'ldap_fail_authed' => 'L’accés LDAP amb el nom distintiu i la contrasenya proporcionats ha fallat',
'ldap_extension_not_installed' => 'L’extensió PHP de l’LDAP no està instal·lada',
'ldap_cannot_connect' => 'No s’ha pogut connectar amb el servidor LDAP perquè la connexió inicial ha fallat',
'saml_already_logged_in' => 'Ja heu iniciat sessió',
@@ -29,15 +29,15 @@ return [
'social_no_action_defined' => 'No s’ha definit cap acció',
'social_login_bad_response' => "S’ha produït un error en l’inici de sessió amb :socialAccount: \n:error",
'social_account_in_use' => 'Aquest compte de :socialAccount ja s’està utilitzant. Proveu d’iniciar sessió amb :socialAccount.',
- 'social_account_email_in_use' => 'L’adreça electrònica :email ja s’està utilitzant. Si ja teniu uns compte podeu connectar-hi el vostre compte de :socialAccount des de la configuració del vostre perfil.',
+ 'social_account_email_in_use' => 'L’adreça electrònica :email ja està en ús. Si ja teniu un compte, podeu connectar-hi el vostre compte de :socialAccount a la configuració del vostre perfil.',
'social_account_existing' => 'Aquest compte de :socialAccount ja està associat al vostre perfil.',
'social_account_already_used_existing' => 'Aquest compte de :socialAccount ja està associat a un altre usuari.',
'social_account_not_used' => 'Aquest compte de :socialAccount no està associat a cap usuari. Associeu-lo a la configuració del vostre perfil. ',
'social_account_register_instructions' => 'Si encara no teniu un compte, podeu registrar-vos amb l’opció :socialAccount.',
'social_driver_not_found' => 'No s’ha trobat el controlador social',
'social_driver_not_configured' => 'La configuració de :socialAccount no és correcta.',
- 'invite_token_expired' => 'Aquest enllaç d’invitació ha caducat. Proveu de reinicialitzar la contrasenya.',
- 'login_user_not_found' => 'A user for this action could not be found.',
+ 'invite_token_expired' => 'Aquest enllaç d’invitació ha caducat. Podeu provar de restablir la contrasenya del vostre compte.',
+ 'login_user_not_found' => 'No s\'ha pogut trobar un usuari per aquesta acció.',
// System
'path_not_writable' => 'No s’ha pogut pujar a :filePath. Assegureu-vos que teniu permisos d’escriptura al servidor.',
@@ -78,7 +78,7 @@ return [
// Users
'users_cannot_delete_only_admin' => 'No podeu suprimir l’administrador únic.',
'users_cannot_delete_guest' => 'No podeu suprimir l’usuari convidat.',
- 'users_could_not_send_invite' => 'Could not create user since invite email failed to send',
+ 'users_could_not_send_invite' => 'No s\'ha pogut crear l\'usuari, ja que no s\'ha pogut enviar el correu d\'invitació',
// Roles
'role_cannot_be_edited' => 'No es pot editar aquest rol.',
@@ -106,16 +106,17 @@ return [
'back_soon' => 'Aviat ho arreglarem.',
// Import
- 'import_zip_cant_read' => 'Could not read ZIP file.',
- 'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
- 'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
- 'import_validation_failed' => 'Import ZIP failed to validate with errors:',
- 'import_zip_failed_notification' => 'Failed to import ZIP file.',
- 'import_perms_books' => 'You are lacking the required permissions to create books.',
- 'import_perms_chapters' => 'You are lacking the required permissions to create chapters.',
- 'import_perms_pages' => 'You are lacking the required permissions to create pages.',
- 'import_perms_images' => 'You are lacking the required permissions to create images.',
- 'import_perms_attachments' => 'You are lacking the required permission to create attachments.',
+ 'import_zip_cant_read' => 'No es pot llegir el fitxer ZIP.',
+ 'import_zip_cant_decode_data' => 'No s\'ha pogut trobar i descodificar el fitxer data.json en el fitxer ZIP.',
+ 'import_zip_no_data' => 'Les dades del fitxer ZIP no contenen cap llibre, capítol o contingut de pàgina.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
+ 'import_validation_failed' => 'Error en validar la importació del ZIP amb els errors:',
+ 'import_zip_failed_notification' => 'Error en importar l\'arxiu ZIP.',
+ 'import_perms_books' => 'Li falten els permisos necessaris per crear llibres.',
+ 'import_perms_chapters' => 'Li falten els permisos necessaris per crear capítols.',
+ 'import_perms_pages' => 'Li falten els permisos necessaris per crear pàgines.',
+ 'import_perms_images' => 'Li falten els permisos necessaris per crear imatges.',
+ 'import_perms_attachments' => 'Li falten els permisos necessaris per crear adjunts.',
// API errors
'api_no_authorization_found' => 'No s’ha trobat cap testimoni d’autorització en aquesta sol·licitud.',
diff --git a/lang/ca/notifications.php b/lang/ca/notifications.php
index fdea33436..e3fb928a1 100644
--- a/lang/ca/notifications.php
+++ b/lang/ca/notifications.php
@@ -11,9 +11,11 @@ return [
'updated_page_subject' => 'S’ha actualitzat la pàgina :pageName',
'updated_page_intro' => 'S’ha actualitzat una pàgina a :appName.',
'updated_page_debounce' => 'Per a evitar que s’acumulin les notificacions, durant un temps no se us notificarà cap canvi fet en aquesta pàgina pel mateix usuari.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Nom de la pàgina:',
- 'detail_page_path' => 'Camí de la pàgina:',
+ 'detail_page_path' => 'Ruta de la pàgina:',
'detail_commenter' => 'Autor del comentari:',
'detail_comment' => 'Comentari:',
'detail_created_by' => 'Creada per:',
diff --git a/lang/ca/preferences.php b/lang/ca/preferences.php
index 25206726e..09fdaa4e5 100644
--- a/lang/ca/preferences.php
+++ b/lang/ca/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Gestioneu les notificacions de correu electrònic que rebreu quan es facin certes activitats.',
'notifications_opt_own_page_changes' => 'Notifica’m els canvis a les meves pàgines.',
'notifications_opt_own_page_comments' => 'Notifica’m la creació de comentaris a les meves pàgines.',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notifica’m les respostes als meus comentaris.',
'notifications_save' => 'Desa les preferències',
'notifications_update_success' => 'S’han actualitzat les preferències de notificació',
diff --git a/lang/ca/settings.php b/lang/ca/settings.php
index e25a4a032..352291fe5 100644
--- a/lang/ca/settings.php
+++ b/lang/ca/settings.php
@@ -8,7 +8,7 @@ return [
// Common Messages
'settings' => 'Configuració',
- 'settings_save' => 'Configuració de desat',
+ 'settings_save' => 'Guardar configuració',
'system_version' => 'Versió de sistema',
'categories' => 'Categories',
@@ -19,8 +19,8 @@ return [
'app_name_desc' => 'El nom es mostra a la capçalera i als correus electrònics enviats pel sistema.',
'app_name_header' => 'Mostra el nom a la capçalera',
'app_public_access' => 'Accés públic',
- 'app_public_access_desc' => 'Si activeu aquesta opció les visitants podran accedir a la vostra instància del BookStack sense iniciar sessió.',
- 'app_public_access_desc_guest' => 'L’accés per als visitants públics es pot gestionar amb l’usuari «Convidat».',
+ 'app_public_access_desc' => 'Si activeu aquesta opció permetrà als visitants, accedir a la vostra instància del BookStack sense iniciar sessió.',
+ 'app_public_access_desc_guest' => 'L’accés per als visitants públics es pot gestionar amb l’usuari Convidat.',
'app_public_access_toggle' => 'Permet l’accés públic',
'app_public_viewing' => 'Esteu segur que voleu permetre l’accés públic?',
'app_secure_images' => 'Pujada d’imatges amb més seguretat',
@@ -75,34 +75,36 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'No hi ha cap restricció',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
- 'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
- 'sorting_rules' => 'Sort Rules',
- 'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
- 'sort_rule_assigned_to_x_books' => 'Assigned to :count Book|Assigned to :count Books',
- 'sort_rule_create' => 'Create Sort Rule',
- 'sort_rule_edit' => 'Edit Sort Rule',
- 'sort_rule_delete' => 'Delete Sort Rule',
- 'sort_rule_delete_desc' => 'Remove this sort rule from the system. Books using this sort will revert to manual sorting.',
- 'sort_rule_delete_warn_books' => 'This sort rule is currently used on :count book(s). Are you sure you want to delete this?',
- 'sort_rule_delete_warn_default' => 'This sort rule is currently used as the default for books. Are you sure you want to delete this?',
- 'sort_rule_details' => 'Sort Rule Details',
- 'sort_rule_details_desc' => 'Set a name for this sort rule, which will appear in lists when users are selecting a sort.',
- 'sort_rule_operations' => 'Sort Operations',
- 'sort_rule_operations_desc' => 'Configure the sort actions to be performed by moving them from the list of available operations. Upon use, the operations will be applied in order, from top to bottom. Any changes made here will be applied to all assigned books upon save.',
- 'sort_rule_available_operations' => 'Available Operations',
- 'sort_rule_available_operations_empty' => 'No operations remaining',
- 'sort_rule_configured_operations' => 'Configured Operations',
- 'sort_rule_configured_operations_empty' => 'Drag/add operations from the "Available Operations" list',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
+ 'sorting_book_default_desc' => 'Selecciona la regla d\'ordenació predeterminada per aplicar a nous llibres. Això no afectarà els llibres existents, i pot ser anul·lat per llibre.',
+ 'sorting_rules' => 'Regles d\'ordenació',
+ 'sorting_rules_desc' => 'Són operacions d\'ordenació predefinides que es poden aplicar al contingut en el sistema.',
+ 'sort_rule_assigned_to_x_books' => 'Assignat a :count llibre | Assignat a :count llibres',
+ 'sort_rule_create' => 'Crear regla d\'ordenació',
+ 'sort_rule_edit' => 'Editar regla d\'ordenació',
+ 'sort_rule_delete' => 'Eliminar regla d\'ordenació',
+ 'sort_rule_delete_desc' => 'Eliminar aquesta regla d\'ordenació del sistema. Els llibres que utilitzin aquest tipus, es revertiran a l\'ordenació manual.',
+ 'sort_rule_delete_warn_books' => 'Aquesta regla d\'ordenació s\'utilitza actualment en :count llibre(s). Està segur que vol eliminar-la?',
+ 'sort_rule_delete_warn_default' => 'Aquesta regla d\'ordenació s\'utilitza actualment com a predeterminada per als llibres. Està segur que vol eliminar-la?',
+ 'sort_rule_details' => 'Detalls de la regla d\'ordenació',
+ 'sort_rule_details_desc' => 'Defineix un nom per aquesta regla d\'ordenació, que apareixerà a les llistes quan els usuaris estiguin seleccionant un ordre.',
+ 'sort_rule_operations' => 'Operacions d\'ordenació',
+ 'sort_rule_operations_desc' => 'Configura les accions d\'ordenació a realitzar movent-les de la llista d\'operacions disponibles. En utilitzar-se, les operacions s\'aplicaran en ordre, de dalt cap a baix. Qualsevol canvi realitzat aquí, s\'aplicarà a tots els llibres assignats en guardar.',
+ 'sort_rule_available_operations' => 'Operacions disponibles',
+ 'sort_rule_available_operations_empty' => 'No hi ha operacions pendents',
+ 'sort_rule_configured_operations' => 'Operacions configurades',
+ 'sort_rule_configured_operations_empty' => 'Arrossegar/afegir operacions des de la llista d\'Operacions Disponibles',
'sort_rule_op_asc' => '(Asc)',
'sort_rule_op_desc' => '(Desc)',
- 'sort_rule_op_name' => 'Name - Alphabetical',
- 'sort_rule_op_name_numeric' => 'Name - Numeric',
- 'sort_rule_op_created_date' => 'Created Date',
- 'sort_rule_op_updated_date' => 'Updated Date',
- 'sort_rule_op_chapters_first' => 'Chapters First',
- 'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sort_rule_op_name' => 'Nom - Alfabètic',
+ 'sort_rule_op_name_numeric' => 'Nom - Numèric',
+ 'sort_rule_op_created_date' => 'Data de creació',
+ 'sort_rule_op_updated_date' => 'Data d\'actualització',
+ 'sort_rule_op_chapters_first' => 'Capítols a l\'inici',
+ 'sort_rule_op_chapters_last' => 'Capítols al final',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Manteniment',
@@ -139,7 +141,7 @@ return [
'recycle_bin_contents_empty' => 'La paperera és buida',
'recycle_bin_empty' => 'Buida la paperera',
'recycle_bin_empty_confirm' => 'Se suprimiran permanentment tots els elements que hi ha a la paperera incloent-hi el contingut que hi hagi a cada element. Esteu segur que voleu buidar la paperera?',
- 'recycle_bin_destroy_confirm' => 'This action will permanently delete this item from the system, along with any child elements listed below, and you will not be able to restore this content. Are you sure you want to permanently delete this item?',
+ 'recycle_bin_destroy_confirm' => 'Aquesta acció suprimirà del sistema de manera permanent aquest element, juntament amb tots els fills que es llisten a sota, i no podreu restaurar aquest contingut. Segur que voleu suprimir de manera permanent aquest element?',
'recycle_bin_destroy_list' => 'Elements per destruir',
'recycle_bin_restore_list' => 'Elements per restaurar',
'recycle_bin_restore_confirm' => 'Aquesta acció restaurarà l’element suprimit, incloent-hi els elements fills, a la seva ubicació original. Si la ubicació original s’ha suprimit i és a la paperera, l’element pare també s’haurà de restaurar.',
@@ -192,14 +194,16 @@ return [
'role_access_api' => 'Accés a l’API del sistema',
'role_manage_settings' => 'Gestió de la configuració de l’aplicació',
'role_export_content' => 'Exportació de contingut',
- 'role_import_content' => 'Import content',
+ 'role_import_content' => 'Importar contingut',
'role_editor_change' => 'Canvi de l’editor de pàgina',
'role_notifications' => 'Recepció i gestió de notificacions',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Permisos de recursos',
'roles_system_warning' => 'Tingueu en compte que l’accés a qualsevol dels tres permisos de dalt permeten que l’usuari canviï els seus privilegis i els privilegis d’altres usuaris. Assigneu rols d’usuari amb aquests permisos només a usuaris de confiança.',
'role_asset_desc' => 'Aquests permisos controlen l’accés per defecte als recursos del sistema. El permisos dels llibres, capítols i pàgines sobreescriuran aquests permisos.',
'role_asset_admins' => 'Als administradors se’ls dona accés automàticament a tot el contingut però aquestes opcions mostren o amaguen opcions de la interfície d’usuari.',
'role_asset_image_view_note' => 'Això té relació amb la visibilitat al gestor d’imatges. L’accés a les imatges pujades dependrà de l’opció d’emmagatzematge d’imatges dels sistema.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Tot',
'role_own' => 'Propi',
'role_controlled_by_asset' => 'Controlat pel recurs a què estan pujats',
@@ -308,13 +312,13 @@ return [
'webhooks_last_error_message' => 'Darrer missatge d’error:',
// Licensing
- 'licenses' => 'Licenses',
- 'licenses_desc' => 'This page details license information for BookStack in addition to the projects & libraries that are used within BookStack. Many projects listed may only be used in a development context.',
- 'licenses_bookstack' => 'BookStack License',
- 'licenses_php' => 'PHP Library Licenses',
- 'licenses_js' => 'JavaScript Library Licenses',
- 'licenses_other' => 'Other Licenses',
- 'license_details' => 'License Details',
+ 'licenses' => 'Llicències',
+ 'licenses_desc' => 'Aquesta pàgina detalla informació sobre la llicència de BookStack a més dels projectes i biblioteques que s\'utilitzen en BookStack. Molts projectes enumerats aquí poden ser utilitzats només en un context de desenvolupament.',
+ 'licenses_bookstack' => 'Llicència de BookStack',
+ 'licenses_php' => 'Llicències de Biblioteques de PHP',
+ 'licenses_js' => 'Llicències de Biblioteques de JavaScript',
+ 'licenses_other' => 'Altres llicències',
+ 'license_details' => 'Detalls de la llicència',
//! If editing translations files directly please ignore this in all
//! languages apart from en. Content will be auto-copied from en.
diff --git a/lang/ca/validation.php b/lang/ca/validation.php
index e33ae336f..1debc5eb2 100644
--- a/lang/ca/validation.php
+++ b/lang/ca/validation.php
@@ -105,10 +105,11 @@ return [
'url' => 'El format :attribute no és vàlid.',
'uploaded' => 'No s’ha pogut pujar el fitxer. És possible que el servidor no admeti fitxers d’aquesta mida.',
- 'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
- 'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
- 'zip_model_expected' => 'Data object expected but ":type" found.',
- 'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
+ 'zip_file' => 'El :attribute necessita fer referència a un arxiu dins del ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
+ 'zip_file_mime' => 'El :attribute necessita fer referència a un arxiu de tipus :validTyes, trobat :foundType.',
+ 'zip_model_expected' => 'S\'esperava un objecte de dades, però s\'ha trobat ":type".',
+ 'zip_unique' => 'El :attribute ha de ser únic pel tipus d\'objecte dins del ZIP.',
// Custom validation lines
'custom' => [
diff --git a/lang/cs/entities.php b/lang/cs/entities.php
index cda6b6c82..d65d85ccb 100644
--- a/lang/cs/entities.php
+++ b/lang/cs/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'Potvrzením odstraníte nahraný ZIP soubor. Tento krok nelze vrátit zpět.',
'import_errors' => 'Chyby importu',
'import_errors_desc' => 'Při pokusu o import došlo k následujícím chybám:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Přejít na jinou stránku',
+ 'breadcrumb_siblings_for_chapter' => 'Přejít na jinou kapitolu',
+ 'breadcrumb_siblings_for_book' => 'Přejít na jinou knihu',
+ 'breadcrumb_siblings_for_bookshelf' => 'Přejít na jinou polici',
// Permissions and restrictions
'permissions' => 'Oprávnění',
diff --git a/lang/cs/errors.php b/lang/cs/errors.php
index b1eeb54e0..2077bd4c4 100644
--- a/lang/cs/errors.php
+++ b/lang/cs/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Nelze načíst ZIP soubor.',
'import_zip_cant_decode_data' => 'Nelze najít a dekódovat data.json v archivu ZIP.',
'import_zip_no_data' => 'ZIP archiv neobsahuje knihy, kapitoly nebo stránky.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Importování ZIP selhalo s chybami:',
'import_zip_failed_notification' => 'Nepodařilo se naimportovat ZIP soubor.',
'import_perms_books' => 'Chybí vám požadovaná oprávnění k vytvoření knih.',
diff --git a/lang/cs/notifications.php b/lang/cs/notifications.php
index caf75f179..7e20f654f 100644
--- a/lang/cs/notifications.php
+++ b/lang/cs/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Aktualizovaná stránka: :pageName',
'updated_page_intro' => 'V :appName byla aktualizována stránka:',
'updated_page_debounce' => 'Po nějakou dobu neobdržíte další oznámení o aktualizaci této stránky stejným editorem, aby se omezil počet stejných zpráv.',
+ 'comment_mention_subject' => 'Byli jste zmíněni v komentáři na stránce: :pageName',
+ 'comment_mention_intro' => 'Byli jste zmíněni v komentáři na webu :appName:',
'detail_page_name' => 'Název stránky:',
'detail_page_path' => 'Umístění:',
diff --git a/lang/cs/preferences.php b/lang/cs/preferences.php
index ec7afaf27..be0f972f9 100644
--- a/lang/cs/preferences.php
+++ b/lang/cs/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Nastavte si e-mailová oznámení, která dostanete při provedení určitých akcí v systému.',
'notifications_opt_own_page_changes' => 'Upozornit na změny stránek u kterých jsem vlastníkem',
'notifications_opt_own_page_comments' => 'Upozornit na komentáře na stránkách, které vlastním',
+ 'notifications_opt_comment_mentions' => 'Upozornit, když mě někdo zmíní v komentáři',
'notifications_opt_comment_replies' => 'Upozornit na odpovědi na mé komentáře',
'notifications_save' => 'Uložit nastavení',
'notifications_update_success' => 'Nastavení oznámení byla aktualizována!',
diff --git a/lang/cs/settings.php b/lang/cs/settings.php
index e72d4b403..73ba6bfb0 100644
--- a/lang/cs/settings.php
+++ b/lang/cs/settings.php
@@ -75,7 +75,7 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Žádná omezení nebyla nastavena',
// Sorting Settings
- 'sorting' => 'Řazení',
+ 'sorting' => 'Seznamy a řazení',
'sorting_book_default' => 'Výchozí řazení knih',
'sorting_book_default_desc' => 'Vybere výchozí pravidlo řazení pro nové knihy. Řazení neovlivní existující knihy a může být upraveno u konkrétní knihy.',
'sorting_rules' => 'Pravidla řazení',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Datum aktualizace',
'sort_rule_op_chapters_first' => 'Kapitoly jako první',
'sort_rule_op_chapters_last' => 'Kapitoly jako poslední',
+ 'sorting_page_limits' => 'Počet zobrazených položek na stránce',
+ 'sorting_page_limits_desc' => 'Nastavte, kolik položek se má zobrazit na stránce v různých seznamech na webu. Obvykle bude nižší počet výkonnější, zatímco vyšší počet eliminuje nutnost proklikávat se několika stránkami. Doporučuje se použít sudý násobek čísla 3 (18, 24, 30 atd.).',
// Maintenance settings
'maint' => 'Údržba',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Importovat obsah',
'role_editor_change' => 'Změnit editor stránek',
'role_notifications' => 'Přijímat a spravovat oznámení',
+ 'role_permission_note_users_and_roles' => 'Tato oprávnění zároveň umožní zobrazit a vyhledat uživatele a role na webu.',
'role_asset' => 'Obsahová oprávnění',
'roles_system_warning' => 'Berte na vědomí, že přístup k některému ze tří výše uvedených oprávnění může uživateli umožnit změnit svá vlastní oprávnění nebo oprávnění ostatních uživatelů v systému. Přiřazujte role s těmito oprávněními pouze důvěryhodným uživatelům.',
'role_asset_desc' => 'Tato oprávnění řídí přístup k obsahu napříč systémem. Specifická oprávnění na knihách, kapitolách a stránkách převáží tato nastavení.',
'role_asset_admins' => 'Administrátoři automaticky dostávají přístup k veškerému obsahu, ale tyto volby mohou ukázat nebo skrýt volby v uživatelském rozhraní.',
'role_asset_image_view_note' => 'To se týká viditelnosti ve správci obrázků. Skutečný přístup k nahraným souborům obrázků bude záviset na možnosti uložení systémových obrázků.',
+ 'role_asset_users_note' => 'Tato oprávnění zároveň umožní zobrazit a vyhledat uživatele v systému.',
'role_all' => 'Vše',
'role_own' => 'Vlastní',
'role_controlled_by_asset' => 'Řídí se obsahem, do kterého jsou nahrávány',
diff --git a/lang/cs/validation.php b/lang/cs/validation.php
index b05d94625..219f95a87 100644
--- a/lang/cs/validation.php
+++ b/lang/cs/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Nahrávání :attribute se nezdařilo.',
'zip_file' => ':attribute musí odkazovat na soubor v archivu ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute musí odkazovat na soubor typu :validTypes, nalezen :foundType.',
'zip_model_expected' => 'Očekáván datový objekt, ale nalezen „:type“.',
'zip_unique' => ':attribute musí být jedinečný pro typ objektu v archivu ZIP.',
diff --git a/lang/cy/errors.php b/lang/cy/errors.php
index db3a468b6..f6123c928 100644
--- a/lang/cy/errors.php
+++ b/lang/cy/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Wedi methu darllen ffeil ZIP.',
'import_zip_cant_decode_data' => 'Wedi methu ffeindio a dadgodio cynnwys ZIP data.json.',
'import_zip_no_data' => 'Nid oes cynnwys llyfr, pennod neu dudalen disgwyliedig yn nata ffeil ZIP.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'ZIP mewnforyn wedi\'i methu dilysu gyda gwallau:',
'import_zip_failed_notification' => 'Wedi methu mewnforio ffeil ZIP.',
'import_perms_books' => 'Dych chi\'n methu\'r caniatâd gofynnol i greu llyfrau.',
diff --git a/lang/cy/notifications.php b/lang/cy/notifications.php
index 26f65f144..766e666b9 100644
--- a/lang/cy/notifications.php
+++ b/lang/cy/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Tudalen wedi\'i diweddaru :pageName',
'updated_page_intro' => 'Mae tudalen newydd wedi cael ei diweddaru yn :appName:',
'updated_page_debounce' => 'Er mwyn atal llu o hysbysiadau, am gyfnod ni fyddwch yn cael hysbysiadau am ragor o olygiadau i\'r dudalen hon gan yr un golygydd.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Enw\'r dudalen:',
'detail_page_path' => 'Llwybr Tudalen:',
diff --git a/lang/cy/preferences.php b/lang/cy/preferences.php
index 6e00adfe8..4a08ca498 100644
--- a/lang/cy/preferences.php
+++ b/lang/cy/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Rheoli’r hysbysiadau e-bost a gewch pan fydd gweithgaredd penodol yn cael ei gyflawni o fewn y system.',
'notifications_opt_own_page_changes' => 'Hysbysu am newidiadau i dudalennau yr wyf yn berchen arnynt',
'notifications_opt_own_page_comments' => 'Hysbysu am sylwadau ar dudalennau yr wyf yn berchen arnynt',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Hysbysu am atebion i\'m sylwadau',
'notifications_save' => 'Dewisiadau Cadw',
'notifications_update_success' => 'Mae’r dewisiadau hysbysu wedi\'u diweddaru!',
diff --git a/lang/cy/settings.php b/lang/cy/settings.php
index cb08e8c90..29e86e28b 100644
--- a/lang/cy/settings.php
+++ b/lang/cy/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Ni osodwyd cyfyngiad',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Cynnal',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Mewnforio Cynnwys',
'role_editor_change' => 'Newid golygydd tudalen',
'role_notifications' => 'Derbyn a rheoli hysbysiadau',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Caniatâd Asedau',
'roles_system_warning' => 'Byddwch yn ymwybodol y gall mynediad i unrhyw un o\'r tri chaniatâd uchod ganiatáu i ddefnyddiwr newid eu breintiau eu hunain neu freintiau eraill yn y system. Neilltuo rolau gyda\'r caniatâd hyn i ddefnyddwyr dibynadwy yn unig.',
'role_asset_desc' => 'Mae\'r caniatâd hwn yn rheoli mynediad diofyn i\'r asedau o fewn y system. Bydd caniatâd ar Lyfrau, Penodau a Thudalennau yn diystyru\'r caniatâd hwn.',
'role_asset_admins' => 'Mae gweinyddwyr yn cael mynediad awtomatig i\'r holl gynnwys ond gall yr opsiynau hyn ddangos neu guddio opsiynau UI.',
'role_asset_image_view_note' => 'Mae hyn yn ymwneud â gwelededd o fewn y rheolwr delweddau. Bydd mynediad gwirioneddol i ffeiliau delwedd wedi\'u huwchlwytho yn dibynnu ar opsiwn storio delwedd y system.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Popeth',
'role_own' => 'Meddu',
'role_controlled_by_asset' => 'Wedi\'u rheoli gan yr ased y maent yn cael eu huwchlwytho iddo',
diff --git a/lang/cy/validation.php b/lang/cy/validation.php
index 5259f6472..63a19bf23 100644
--- a/lang/cy/validation.php
+++ b/lang/cy/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Nid oedd modd uwchlwytho’r ffeil. Efallai na fydd y gweinydd yn derbyn ffeiliau o\'r maint hwn.',
'zip_file' => 'Mae\'r :attribute angen cyfeirio at ffeil yn y ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'Mae\'r :attribute angen cyfeirio at ffeil o fath :valid Types, sydd wedi\'i ffeindio :foundType.',
'zip_model_expected' => 'Dyswgyl am wrthrych data ond wedi ffeindio ":type".',
'zip_unique' => 'Mae rhaid y :attribute fod yn unigol i\'r fath o wrthrych yn y ZIP.',
diff --git a/lang/da/auth.php b/lang/da/auth.php
index 9f717a3d5..dcc531125 100644
--- a/lang/da/auth.php
+++ b/lang/da/auth.php
@@ -6,11 +6,11 @@
*/
return [
- 'failed' => 'Dee indtastede brugeroplysninger stemmer ikke overens med vores registreringer.',
+ 'failed' => 'De indtastede brugeroplysninger stemmer ikke overens med vores registreringer.',
'throttle' => 'For mange mislykkede loginforsøg. Prøv igen om :seconds sekunder.',
// Login & Register
- 'sign_up' => 'Registrér',
+ 'sign_up' => 'Registrer',
'log_in' => 'Log ind',
'log_in_with' => 'Log ind med :socialDriver',
'sign_up_with' => 'Registrér med :socialDriver',
@@ -45,28 +45,28 @@ return [
// Password Reset
'reset_password' => 'Nulstil adgangskode',
- 'reset_password_send_instructions' => 'Indtast din E-Mail herunder og du vil blive sendt en E-Mail med et link til at nulstille din adgangskode.',
+ 'reset_password_send_instructions' => 'Indtast din e-mail herunder og du vil blive sendt en e-mail med et link til at nulstille din adgangskode.',
'reset_password_send_button' => 'Send link til nulstilling',
'reset_password_sent' => 'Et link til nulstilling af adgangskode sendes til :email, hvis den e-mail-adresse findes i systemet.',
'reset_password_success' => 'Din adgangskode er blevet nulstillet.',
'email_reset_subject' => 'Nulstil din :appName adgangskode',
- 'email_reset_text' => 'Du modtager denne E-Mail fordi vi har modtaget en anmodning om at nulstille din adgangskode.',
+ 'email_reset_text' => 'Du modtager denne e-mail fordi vi har modtaget en anmodning om at nulstille din adgangskode.',
'email_reset_not_requested' => 'Hvis du ikke har anmodet om at få din adgangskode nulstillet, behøver du ikke at foretage dig noget.',
// Email Confirmation
'email_confirm_subject' => 'Bekræft din E-Mail på :appName',
'email_confirm_greeting' => 'Tak for at oprette dig på :appName!',
- 'email_confirm_text' => 'Bekræft venligst din E-Mail adresse ved at klikke på linket nedenfor:',
- 'email_confirm_action' => 'Bekræft E-Mail',
- 'email_confirm_send_error' => 'E-Mail-bekræftelse kræves, men systemet kunne ikke sende E-Mailen. Kontakt administratoren for at sikre, at E-Mail er konfigureret korrekt.',
- 'email_confirm_success' => 'Din email er blevet bekræftet! Du bør nu kune logge ind med denne emailadresse.',
+ 'email_confirm_text' => 'Bekræft venligst din e-mail adresse ved at klikke på linket nedenfor:',
+ 'email_confirm_action' => 'Bekræft e-mail',
+ 'email_confirm_send_error' => 'E-mailbekræftelse kræves, men systemet kunne ikke sende e-mailen. Kontakt administratoren for at sikre, at e-mail er konfigureret korrekt.',
+ 'email_confirm_success' => 'Din e-mail er blevet bekræftet! Du bør nu kunne logge ind med denne e-mailadresse.',
'email_confirm_resent' => 'Bekræftelsesmail sendt, tjek venligst din indboks.',
'email_confirm_thanks' => 'Tak for bekræftelsen!',
'email_confirm_thanks_desc' => 'Vent venligst et øjeblik, mens din bekræftelse behandles. Hvis du ikke bliver omdirigeret efter 3 sekunder, skal du trykke på linket "Fortsæt" nedenfor for at fortsætte.',
- 'email_not_confirmed' => 'E-Mail adresse ikke bekræftet',
- 'email_not_confirmed_text' => 'Din E-Mail adresse er endnu ikke blevet bekræftet.',
- 'email_not_confirmed_click_link' => 'Klik venligst på linket i E-Mailen der blev sendt kort efter du registrerede dig.',
+ 'email_not_confirmed' => 'E-mailadresse ikke bekræftet',
+ 'email_not_confirmed_text' => 'Din e-mailadresse er endnu ikke blevet bekræftet.',
+ 'email_not_confirmed_click_link' => 'Klik venligst på linket i e-mailen der blev sendt kort efter du registrerede dig.',
'email_not_confirmed_resend' => 'Hvis du ikke kan finde E-Mailen, kan du du få gensendt bekræftelsesemailen ved at trykke herunder.',
'email_not_confirmed_resend_button' => 'Gensend bekræftelsesemail',
diff --git a/lang/da/common.php b/lang/da/common.php
index 69c80e844..db75772c8 100644
--- a/lang/da/common.php
+++ b/lang/da/common.php
@@ -30,8 +30,8 @@ return [
'create' => 'Opret',
'update' => 'Opdater',
'edit' => 'Rediger',
- 'archive' => 'Archive',
- 'unarchive' => 'Un-Archive',
+ 'archive' => 'Arkiver',
+ 'unarchive' => 'Tilbagekald',
'sort' => 'Sorter',
'move' => 'Flyt',
'copy' => 'Kopier',
@@ -50,8 +50,8 @@ return [
'unfavourite' => 'Fjern som foretrukken',
'next' => 'Næste',
'previous' => 'Forrige',
- 'filter_active' => 'Aktivt Filter:',
- 'filter_clear' => 'Nulstil Filter',
+ 'filter_active' => 'Aktivt filter:',
+ 'filter_clear' => 'Nulstil filter',
'download' => 'Hent',
'open_in_tab' => 'Åben i ny fane',
'open' => 'Åbn',
diff --git a/lang/da/components.php b/lang/da/components.php
index 410ed4fc5..3deeadf48 100644
--- a/lang/da/components.php
+++ b/lang/da/components.php
@@ -6,8 +6,8 @@ return [
// Image Manager
'image_select' => 'Billedselektion',
- 'image_list' => 'Billede Liste',
- 'image_details' => 'Billede Detaljer',
+ 'image_list' => 'Billedliste',
+ 'image_details' => 'Billeddetaljer',
'image_upload' => 'Upload billede',
'image_intro' => 'Her kan du vælge og administrere billeder, der tidligere er blevet uploadet til systemet.',
'image_intro_upload' => 'Upload et nyt billede ved at trække en billedfil ind i dette vindue, eller ved at bruge knappen "Upload billede" ovenfor.',
diff --git a/lang/da/entities.php b/lang/da/entities.php
index c91772190..66e3fd206 100644
--- a/lang/da/entities.php
+++ b/lang/da/entities.php
@@ -272,7 +272,7 @@ return [
'pages_md_insert_drawing' => 'Indsæt tegning',
'pages_md_show_preview' => 'Vis forhåndsvisning',
'pages_md_sync_scroll' => 'Rulning af forhåndsvisning af synkronisering',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => 'Klartekst editor',
'pages_drawing_unsaved' => 'Ikke gemt tegning fundet',
'pages_drawing_unsaved_confirm' => 'Der blev fundet ikke-gemte tegningsdata fra et tidligere mislykket forsøg på at gemme en tegning. Vil du gendanne og fortsætte med at redigere denne ikke-gemte tegning?',
'pages_not_in_chapter' => 'Side er ikke i et kapitel',
@@ -400,7 +400,7 @@ return [
'comment_none' => 'No comments to display',
'comment_placeholder' => 'Skriv en kommentar her',
'comment_thread_count' => ':count Comment Thread|:count Comment Threads',
- 'comment_archived_count' => ':count Archived',
+ 'comment_archived_count' => ':count Arkiveret',
'comment_archived_threads' => 'Archived Threads',
'comment_save' => 'Gem kommentar',
'comment_new' => 'Ny kommentar',
@@ -412,12 +412,12 @@ return [
'comment_updated_success' => 'Kommentaren er opdateret',
'comment_archive_success' => 'Comment archived',
'comment_unarchive_success' => 'Comment un-archived',
- 'comment_view' => 'View comment',
- 'comment_jump_to_thread' => 'Jump to thread',
+ 'comment_view' => 'Se kommentar',
+ 'comment_jump_to_thread' => 'Hop til tråd',
'comment_delete_confirm' => 'Er du sikker på, at du vil slette denne kommentar?',
'comment_in_reply_to' => 'Som svar til :commentId',
'comment_reference' => 'Reference',
- 'comment_reference_outdated' => '(Outdated)',
+ 'comment_reference_outdated' => '(Forældet)',
'comment_editor_explain' => 'Her er de kommentarer, der er blevet efterladt på denne side. Kommentarer kan tilføjes og administreres, når du ser den gemte side.',
// Revision
diff --git a/lang/da/errors.php b/lang/da/errors.php
index 864dec270..6f9d1d53c 100644
--- a/lang/da/errors.php
+++ b/lang/da/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Kunne ikke læse ZIP-filen.',
'import_zip_cant_decode_data' => 'Kunne ikke finde og afkode ZIP data.json-indhold.',
'import_zip_no_data' => 'ZIP-filens data har ikke noget forventet bog-, kapitel- eller sideindhold.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP kunne ikke valideres med fejl:',
'import_zip_failed_notification' => 'Kunne ikke importere ZIP-fil.',
'import_perms_books' => 'Du mangler de nødvendige tilladelser til at oprette bøger.',
diff --git a/lang/da/notifications.php b/lang/da/notifications.php
index 8074c03c4..3aaf2ff18 100644
--- a/lang/da/notifications.php
+++ b/lang/da/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Opdateret side: :pageName',
'updated_page_intro' => 'En side er blevet opdateret i :appName:',
'updated_page_debounce' => 'For at forhindre en masse af notifikationer, i et stykke tid vil du ikke blive sendt notifikationer for yderligere redigeringer til denne side af den samme editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Sidens navn:',
'detail_page_path' => 'Sidesti:',
diff --git a/lang/da/passwords.php b/lang/da/passwords.php
index 343fa2b85..b58a4c94b 100644
--- a/lang/da/passwords.php
+++ b/lang/da/passwords.php
@@ -7,7 +7,7 @@
return [
'password' => 'Adgangskoder skal være mindst otte tegn og svare til bekræftelsen.',
- 'user' => "Vi kan ikke finde en bruger med den e-mail adresse.",
+ 'user' => "Vi kan ikke finde en bruger med den e-mailadresse.",
'token' => 'Linket til nulstilling af adgangskode er ugyldigt for denne e-mail-adresse.',
'sent' => 'Vi har sendt dig en e-mail med et link til at nulstille adgangskoden!',
'reset' => 'Dit kodeord er blevet nulstillet!',
diff --git a/lang/da/preferences.php b/lang/da/preferences.php
index 9b9436dba..5ba4f450c 100644
--- a/lang/da/preferences.php
+++ b/lang/da/preferences.php
@@ -23,13 +23,14 @@ return [
'notifications_desc' => 'Administrer de e-mail-notifikationer, du modtager, når visse aktiviteter udføres i systemet.',
'notifications_opt_own_page_changes' => 'Adviser ved ændringer af sider, jeg ejer',
'notifications_opt_own_page_comments' => 'Adviser ved kommentarer på sider, jeg ejer',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Adviser ved svar på mine kommentarer',
- 'notifications_save' => 'Gem Indstillinger',
+ 'notifications_save' => 'Gem indstillinger',
'notifications_update_success' => 'Indstillinger for notifikationer er blevet opdateret!',
- 'notifications_watched' => 'Overvågede & Ignorerede',
+ 'notifications_watched' => 'Overvågede og ignorerede',
'notifications_watched_desc' => 'Nedenfor er de elementer, der har brugerdefinerede overvågning aktivt. For at opdatere dine præferencer for disse, gå til elementet og find derefter overvågning i sidepanelet.',
- 'auth' => 'Adgang & Sikkerhed',
+ 'auth' => 'Adgang og sikkerhed',
'auth_change_password' => 'Skift adgangskode',
'auth_change_password_desc' => 'Skift den adgangskode, du bruger til at logge ind med. Den skal være mindst 8 tegn lang.',
'auth_change_password_success' => 'Adgangskoden er blevet opdateret!',
@@ -41,7 +42,7 @@ return [
'profile_email_desc' => 'Denne e-mail vil blive brugt til notifikationer og, afhængigt af aktiv systemgodkendelse, systemadgang.',
'profile_email_no_permission' => 'Desværre har du ikke tilladelse til at ændre din e-mailadresse. Hvis du ønsker at ændre dette, skal du bede en administrator om at ændre dette for dig.',
'profile_avatar_desc' => 'Vælg et billede som vil blive brugt til at repræsentere dig selv over for andre i systemet. Ideelt set bør dette billede være kvadrat og omkring 256px i bredde og højde.',
- 'profile_admin_options' => 'Administrator Indstillinger',
+ 'profile_admin_options' => 'Administratorindstillinger',
'profile_admin_options_desc' => 'Yderligere indstillinger på administratorniveau, såsom dem der håndterer rolleopgaver, kan findes for din brugerkonto i området "Indstillinger > Brugere".',
'delete_account' => 'Slet konto',
diff --git a/lang/da/settings.php b/lang/da/settings.php
index a4136f6fd..8d89c30af 100644
--- a/lang/da/settings.php
+++ b/lang/da/settings.php
@@ -26,14 +26,14 @@ return [
'app_secure_images' => 'Højere sikkerhed for billeduploads',
'app_secure_images_toggle' => 'Aktiver højere sikkerhed for billeduploads',
'app_secure_images_desc' => 'Af performanceårsager er alle billeder offentlige. Denne funktion tilføjer en tilfældig, vanskelig at gætte streng foran billed-url\'er. Sørg for, at mappeindeksering ikke er aktiveret for at forhindre nem adgang.',
- 'app_default_editor' => 'Standard Side Editor',
+ 'app_default_editor' => 'Standard sideeditor',
'app_default_editor_desc' => 'Vælg hvilken editor der som standard skal bruges ved redigering af nye sider. Dette kan tilsidesættes på side niveau, hvor tilladelser tillader det.',
'app_custom_html' => 'Tilpasset HTML head indhold',
'app_custom_html_desc' => 'Alt indhold tilføjet her, vil blive indsat i bunden af sektionen på alle sider. Dette er brugbart til overskrivning af styles og tilføjelse af analytics kode.',
'app_custom_html_disabled_notice' => 'Brugerdefineret HTML head indhold er deaktiveret på denne indstillingsside for at, at ændringer kan rulles tilbage.',
'app_logo' => 'Applikationslogo',
'app_logo_desc' => 'Det bruges blandt andet i applikationens headerbar. Dette billede skal være 86px i højden. Store billeder vil blive skaleret ned.',
- 'app_icon' => 'Program ikon',
+ 'app_icon' => 'Programikon',
'app_icon_desc' => 'Dette ikon bruges til browserfaner og genvejsikoner. Det skal være et 256px kvadratisk PNG-billede.',
'app_homepage' => 'Applikationsforside',
'app_homepage_desc' => 'Vælg en visning, der skal vises på forsiden i stedet for standardvisningen. Sidetilladelser ignoreres for de valgte sider.',
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Ingen restriktion opsat',
// Sorting Settings
- 'sorting' => 'Sortering',
- 'sorting_book_default' => 'Standard bog-sortering',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Vælg den standardsorteringsregel, der skal gælde for nye bøger. Dette påvirker ikke eksisterende bøger og kan tilsidesættes for hver enkelt bog.',
'sorting_rules' => 'Regler for sortering',
'sorting_rules_desc' => 'Det er foruddefinerede sorteringsoperationer, som kan anvendes på indhold i systemet.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Opdateret dato',
'sort_rule_op_chapters_first' => 'Kapitler først',
'sort_rule_op_chapters_last' => 'De sidste kapitler',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Vedligeholdelse',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Importer indhold',
'role_editor_change' => 'Skift side editor',
'role_notifications' => 'Modtag og administrer notifikationer',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Tilladelser for medier og "assets"',
'roles_system_warning' => 'Vær opmærksom på, at adgang til alle af de ovennævnte tre tilladelser, kan give en bruger mulighed for at ændre deres egne brugerrettigheder eller brugerrettigheder for andre i systemet. Tildel kun roller med disse tilladelser til betroede brugere.',
'role_asset_desc' => 'Disse tilladelser kontrollerer standardadgang til medier og "assets" i systemet. Tilladelser til bøger, kapitler og sider tilsidesætter disse tilladelser.',
'role_asset_admins' => 'Administratorer får automatisk adgang til alt indhold, men disse indstillinger kan vise eller skjule UI-indstillinger.',
'role_asset_image_view_note' => 'Dette vedrører synlighed i billedhåndteringen. Den faktiske adgang til uploadede billedfiler vil afhænge af systemets billedlagringsindstilling.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Alle',
'role_own' => 'Eget',
'role_controlled_by_asset' => 'Styres af det medie/"asset", de uploades til',
@@ -245,7 +249,7 @@ return [
'users_social_accounts_info' => 'Her kan du forbinde dine andre konti for hurtigere og lettere login. Afbrydelse af en konto her tilbagekalder ikke tidligere autoriseret adgang. Tilbagekald adgang fra dine profilindstillinger på den tilsluttede sociale konto.',
'users_social_connect' => 'Forbind konto',
'users_social_disconnect' => 'Frakobl konto',
- 'users_social_status_connected' => 'Tilsuttet',
+ 'users_social_status_connected' => 'Tilsluttet',
'users_social_status_disconnected' => 'Afbrudt',
'users_social_connected' => ':socialAccount kontoen blev knyttet til din profil.',
'users_social_disconnected' => ':socialAccount kontoen blev afbrudt fra din profil.',
@@ -289,7 +293,7 @@ return [
'webhooks_details' => 'Webhook detaljer',
'webhooks_details_desc' => 'Angiv et brugervenligt navn og et POST endpoint som en lokation for webhook data at blive sendt til.',
'webhooks_events' => 'Webhook Begivenheder',
- 'webhooks_events_desc' => 'Vælg alle begivenhederd er skal udløse denne webhook til at blive kaldt.',
+ 'webhooks_events_desc' => 'Vælg alle begivenheder der skal udløse denne webhook til at blive kaldt.',
'webhooks_events_warning' => 'Husk, at disse begivenheder vil blive udløst for alle valgte begivenheder, selv om brugerdefinerede tilladelser bliver anvendt. Sørg for, at brugen af denne webhook ikke vil afsløre fortroligt indhold.',
'webhooks_events_all' => 'Alle systemhændelser',
'webhooks_name' => 'Webhook Navn',
diff --git a/lang/da/validation.php b/lang/da/validation.php
index 3caf1417a..36b9b49fb 100644
--- a/lang/da/validation.php
+++ b/lang/da/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Filen kunne ikke oploades. Serveren accepterer muligvis ikke filer af denne størrelse.',
'zip_file' => 'Attributten skal henvise til en fil i ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'Attributten skal henvise til en fil af typen: validTypes, fundet:foundType.',
'zip_model_expected' => 'Data objekt forventet men ":type" fundet.',
'zip_unique' => 'Attributten skal være unik for objekttypen i ZIP.',
diff --git a/lang/de/entities.php b/lang/de/entities.php
index ac70c2a9f..94c327b7e 100644
--- a/lang/de/entities.php
+++ b/lang/de/entities.php
@@ -65,7 +65,7 @@ return [
'import_errors_desc' => 'Die folgenden Fehler sind während des Importversuchs aufgetreten:',
'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
+ 'breadcrumb_siblings_for_book' => 'Navigiere in Büchern',
'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
// Permissions and restrictions
@@ -272,7 +272,7 @@ return [
'pages_md_insert_drawing' => 'Zeichnung einfügen',
'pages_md_show_preview' => 'Vorschau anzeigen',
'pages_md_sync_scroll' => 'Vorschau synchronisieren',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => 'Einfacher Editor',
'pages_drawing_unsaved' => 'Ungespeicherte Zeichnung gefunden',
'pages_drawing_unsaved_confirm' => 'Es wurden ungespeicherte Zeichnungsdaten von einem früheren, fehlgeschlagenen Versuch, die Zeichnung zu speichern, gefunden. Möchten Sie diese ungespeicherte Zeichnung wiederherstellen und weiter bearbeiten?',
'pages_not_in_chapter' => 'Seite ist in keinem Kapitel',
diff --git a/lang/de/errors.php b/lang/de/errors.php
index c1f65d940..56dc6d59e 100644
--- a/lang/de/errors.php
+++ b/lang/de/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'ZIP-Datei konnte nicht gelesen werden.',
'import_zip_cant_decode_data' => 'ZIP data.json konnte nicht gefunden und dekodiert werden.',
'import_zip_no_data' => 'ZIP-Datei Daten haben kein erwartetes Buch, Kapitel oder Seiteninhalt.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'ZIP Import konnte mit Fehlern nicht validiert werden:',
'import_zip_failed_notification' => 'Importieren der ZIP-Datei fehlgeschlagen.',
'import_perms_books' => 'Ihnen fehlt die erforderliche Berechtigung, um Bücher zu erstellen.',
diff --git a/lang/de/notifications.php b/lang/de/notifications.php
index f3b86b502..71b71d1b6 100644
--- a/lang/de/notifications.php
+++ b/lang/de/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Aktualisierte Seite: :pageName',
'updated_page_intro' => 'Eine Seite wurde in :appName aktualisiert:',
'updated_page_debounce' => 'Um eine Flut von Benachrichtigungen zu vermeiden, werden Sie für eine gewisse Zeit keine Benachrichtigungen für weitere Bearbeitungen dieser Seite durch denselben Bearbeiter erhalten.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Name der Seite:',
'detail_page_path' => 'Seitenpfad:',
diff --git a/lang/de/preferences.php b/lang/de/preferences.php
index 26f0b05da..1f74f3d3e 100644
--- a/lang/de/preferences.php
+++ b/lang/de/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Legen Sie fest, welche E-Mail-Benachrichtigungen Sie erhalten, wenn bestimmte Aktivitäten im System durchgeführt werden.',
'notifications_opt_own_page_changes' => 'Benachrichtigung bei Änderungen an eigenen Seiten',
'notifications_opt_own_page_comments' => 'Benachrichtigung bei Kommentaren an eigenen Seiten',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Bei Antworten auf meine Kommentare benachrichtigen',
'notifications_save' => 'Einstellungen speichern',
'notifications_update_success' => 'Benachrichtigungseinstellungen wurden aktualisiert!',
diff --git a/lang/de/settings.php b/lang/de/settings.php
index 250668e8a..a87408995 100644
--- a/lang/de/settings.php
+++ b/lang/de/settings.php
@@ -76,8 +76,8 @@ Hinweis: Benutzer können ihre E-Mail-Adresse nach erfolgreicher Registrierung
'reg_confirm_restrict_domain_placeholder' => 'Keine Einschränkung gesetzt',
// Sorting Settings
- 'sorting' => 'Sortierung',
- 'sorting_book_default' => 'Standard-Buchsortierung',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Wählen Sie die Standard-Sortierregel aus, die auf neue Bücher angewendet werden soll. Dies wirkt sich nicht auf bestehende Bücher aus und kann pro Buch überschrieben werden.',
'sorting_rules' => 'Sortierregeln',
'sorting_rules_desc' => 'Dies sind vordefinierte Sortieraktionen, die auf Inhalte im System angewendet werden können.',
@@ -104,6 +104,8 @@ Hinweis: Benutzer können ihre E-Mail-Adresse nach erfolgreicher Registrierung
'sort_rule_op_updated_date' => 'Aktualisierungsdatum',
'sort_rule_op_chapters_first' => 'Kapitel zuerst',
'sort_rule_op_chapters_last' => 'Kapitel zuletzt',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Wartung',
@@ -196,11 +198,13 @@ Hinweis: Benutzer können ihre E-Mail-Adresse nach erfolgreicher Registrierung
'role_import_content' => 'Inhalt importieren',
'role_editor_change' => 'Seiten-Editor ändern',
'role_notifications' => 'Empfangen und Verwalten von Benachrichtigungen',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Berechtigungen',
'roles_system_warning' => 'Beachten Sie, dass der Zugriff auf eine der oben genannten drei Berechtigungen einem Benutzer erlauben kann, seine eigenen Berechtigungen oder die Rechte anderer im System zu ändern. Weisen Sie nur Rollen, mit diesen Berechtigungen, vertrauenswürdigen Benutzern zu.',
'role_asset_desc' => 'Diese Berechtigungen gelten für den Standard-Zugriff innerhalb des Systems. Berechtigungen für Bücher, Kapitel und Seiten überschreiben diese Berechtigungenen.',
'role_asset_admins' => 'Administratoren erhalten automatisch Zugriff auf alle Inhalte, aber diese Optionen können Oberflächenoptionen ein- oder ausblenden.',
'role_asset_image_view_note' => 'Das bezieht sich auf die Sichtbarkeit innerhalb des Bildmanagers. Der tatsächliche Zugriff auf hochgeladene Bilddateien hängt von der Speicheroption des Systems für Bilder ab.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Alle',
'role_own' => 'Eigene',
'role_controlled_by_asset' => 'Berechtigungen werden vom Uploadziel bestimmt',
diff --git a/lang/de/validation.php b/lang/de/validation.php
index 2ffad0529..21e850bbf 100644
--- a/lang/de/validation.php
+++ b/lang/de/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Die Datei konnte nicht hochgeladen werden. Der Server akzeptiert möglicherweise keine Dateien dieser Größe.',
'zip_file' => ':attribute muss eine Datei innerhalb des ZIP referenzieren.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute muss eine Datei des Typs :validType referenzieren, gefunden :foundType.',
'zip_model_expected' => 'Datenobjekt erwartet, aber ":type" gefunden.',
'zip_unique' => ':attribute muss für den Objekttyp innerhalb des ZIP eindeutig sein.',
diff --git a/lang/de_informal/entities.php b/lang/de_informal/entities.php
index 346cd891e..a3e6e5f36 100644
--- a/lang/de_informal/entities.php
+++ b/lang/de_informal/entities.php
@@ -65,7 +65,7 @@ return [
'import_errors_desc' => 'Die folgenden Fehler sind während des Importversuchs aufgetreten:',
'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
+ 'breadcrumb_siblings_for_book' => 'Navigiere in Büchern',
'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
// Permissions and restrictions
@@ -272,7 +272,7 @@ return [
'pages_md_insert_drawing' => 'Zeichnung einfügen',
'pages_md_show_preview' => 'Vorschau anzeigen',
'pages_md_sync_scroll' => 'Vorschau synchronisieren',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => 'Einfacher Editor',
'pages_drawing_unsaved' => 'Ungespeicherte Zeichnung gefunden',
'pages_drawing_unsaved_confirm' => 'Es wurden ungespeicherte Zeichnungsdaten von einem früheren, fehlgeschlagenen Versuch, die Zeichnung zu speichern, gefunden. Möchtest du diese ungespeicherte Zeichnung wiederherstellen und weiter bearbeiten?',
'pages_not_in_chapter' => 'Seite ist in keinem Kapitel',
diff --git a/lang/de_informal/errors.php b/lang/de_informal/errors.php
index 856f02b48..cd14dd929 100644
--- a/lang/de_informal/errors.php
+++ b/lang/de_informal/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'ZIP-Datei konnte nicht gelesen werden.',
'import_zip_cant_decode_data' => 'Konnte Inhalt der data.json im ZIP nicht finden und dekodieren.',
'import_zip_no_data' => 'ZIP-Datei hat kein erwartetes Buch, Kapitel oder Seiteninhalt.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'ZIP Import konnte aufgrund folgender Fehler nicht validiert werden:',
'import_zip_failed_notification' => 'Importieren der ZIP-Datei fehlgeschlagen.',
'import_perms_books' => 'Dir fehlt die erforderliche Berechtigung, um Bücher zu erstellen.',
diff --git a/lang/de_informal/notifications.php b/lang/de_informal/notifications.php
index 0bf7739f4..99c270ec1 100644
--- a/lang/de_informal/notifications.php
+++ b/lang/de_informal/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Aktualisierte Seite: :pageName',
'updated_page_intro' => 'Eine Seite wurde in :appName aktualisiert:',
'updated_page_debounce' => 'Um eine Flut von Benachrichtigungen zu vermeiden, wirst du für eine gewisse Zeit keine Benachrichtigungen für weitere Bearbeitungen dieser Seite durch denselben Bearbeiter erhalten.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Seitenname:',
'detail_page_path' => 'Seitenpfad:',
diff --git a/lang/de_informal/preferences.php b/lang/de_informal/preferences.php
index 07b83a8da..bfb57b2f4 100644
--- a/lang/de_informal/preferences.php
+++ b/lang/de_informal/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Lege fest, welche E-Mail-Benachrichtigungen du erhältst, wenn bestimmte Aktivitäten im System durchgeführt werden.',
'notifications_opt_own_page_changes' => 'Benachrichtigung bei Änderungen an eigenen Seiten',
'notifications_opt_own_page_comments' => 'Benachrichtigung bei Kommentaren an eigenen Seiten',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Bei Antworten auf meine Kommentare benachrichtigen',
'notifications_save' => 'Einstellungen speichern',
'notifications_update_success' => 'Benachrichtigungseinstellungen wurden aktualisiert!',
diff --git a/lang/de_informal/settings.php b/lang/de_informal/settings.php
index 50003c58e..ab9a075a0 100644
--- a/lang/de_informal/settings.php
+++ b/lang/de_informal/settings.php
@@ -76,8 +76,8 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
'reg_confirm_restrict_domain_placeholder' => 'Keine Einschränkung gesetzt',
// Sorting Settings
- 'sorting' => 'Sortierung',
- 'sorting_book_default' => 'Standard-Buchsortierung',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Wähle die Standard-Sortierregel aus, die auf neue Bücher angewendet werden soll. Dies wirkt sich nicht auf bestehende Bücher aus und kann pro Buch überschrieben werden.',
'sorting_rules' => 'Sortierregeln',
'sorting_rules_desc' => 'Dies sind vordefinierte Sortieraktionen, die auf Inhalte im System angewendet werden können.',
@@ -104,6 +104,8 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
'sort_rule_op_updated_date' => 'Aktualisierungsdatum',
'sort_rule_op_chapters_first' => 'Kapitel zuerst',
'sort_rule_op_chapters_last' => 'Kapitel zuletzt',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Wartung',
@@ -196,11 +198,13 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
'role_import_content' => 'Inhalt importieren',
'role_editor_change' => 'Seiteneditor ändern',
'role_notifications' => 'Empfangen und Verwalten von Benachrichtigungen',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Berechtigungen',
'roles_system_warning' => 'Beachte, dass der Zugriff auf eine der oben genannten drei Berechtigungen einem Benutzer erlauben kann, seine eigenen Berechtigungen oder die Rechte anderer im System zu ändern. Weise nur Rollen mit diesen Berechtigungen vertrauenswürdigen Benutzern zu.',
'role_asset_desc' => 'Diese Berechtigungen gelten für den Standard-Zugriff innerhalb des Systems. Berechtigungen für Bücher, Kapitel und Seiten überschreiben diese Berechtigungen.',
'role_asset_admins' => 'Administratoren erhalten automatisch Zugriff auf alle Inhalte, aber diese Optionen können Oberflächenoptionen ein- oder ausblenden.',
'role_asset_image_view_note' => 'Das bezieht sich auf die Sichtbarkeit innerhalb des Bildmanagers. Der tatsächliche Zugriff auf hochgeladene Bilddateien hängt von der Speicheroption des Systems für Bilder ab.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Alle',
'role_own' => 'Eigene',
'role_controlled_by_asset' => 'Berechtigungen werden vom Uploadziel bestimmt',
diff --git a/lang/de_informal/validation.php b/lang/de_informal/validation.php
index f7be5a016..d693adecd 100644
--- a/lang/de_informal/validation.php
+++ b/lang/de_informal/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Die Datei konnte nicht hochgeladen werden. Der Server akzeptiert möglicherweise keine Dateien dieser Größe.',
'zip_file' => ':attribute muss auf eine Datei innerhalb des ZIP verweisen.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute muss eine Datei des Typs :validType referenzieren, gefunden :foundType.',
'zip_model_expected' => 'Datenobjekt erwartet, aber ":type" gefunden.',
'zip_unique' => ':attribute muss für den Objekttyp innerhalb des ZIP eindeutig sein.',
diff --git a/lang/el/errors.php b/lang/el/errors.php
index cdfa2155f..fb13ec2fb 100644
--- a/lang/el/errors.php
+++ b/lang/el/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/el/notifications.php b/lang/el/notifications.php
index 3924cab3b..e9a9fe15d 100644
--- a/lang/el/notifications.php
+++ b/lang/el/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Ενημερωμένη σελίδα: :pageName',
'updated_page_intro' => 'Μια σελίδα έχει ενημερωθεί στο :appName:',
'updated_page_debounce' => 'Για να αποτρέψετε μαζικές ειδοποιήσεις, για κάποιο διάστημα δε θα σας αποστέλλονται ειδοποιήσεις για περαιτέρω αλλαγές σε αυτήν τη σελίδα από τον ίδιο συντάκτη.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Όνομα σελίδας:',
'detail_page_path' => 'Διαδρομή σελίδας:',
diff --git a/lang/el/preferences.php b/lang/el/preferences.php
index 4f7e97d52..2c2ce8fe9 100644
--- a/lang/el/preferences.php
+++ b/lang/el/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/el/settings.php b/lang/el/settings.php
index 172038fd0..67461604e 100644
--- a/lang/el/settings.php
+++ b/lang/el/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Δε έχουν ρυθμιστεί περιορισμοί ακόμα',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Συντήρηση',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Εισαγωγή περιεχομένου',
'role_editor_change' => 'Αλλαγή προγράμματος επεξεργασίας σελίδας',
'role_notifications' => 'Λήψη & διαχείριση ειδοποιήσεων',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Δικαιώματα Συστήματος',
'roles_system_warning' => 'Λάβετε υπόψη ότι η πρόσβαση σε οποιοδήποτε από τις τρεις παραπάνω άδειες (δικαιώματα) μπορεί να επιτρέψει σε έναν χρήστη να αλλάξει τα δικά του προνόμια ή τα προνόμια άλλων στο σύστημα. Εκχωρήστε ρόλους με αυτά τα δικαιώματα μόνο σε αξιόπιστους χρήστες.',
'role_asset_desc' => 'Αυτά τα δικαιώματα ελέγχουν την προεπιλεγμένη πρόσβαση στα στοιχεία (άδειες) εντός του συστήματος. Τα δικαιώματα σε Βιβλία, Κεφάλαια και Σελίδες θα παρακάμψουν αυτές τις άδειες.',
'role_asset_admins' => 'Οι διαχειριστές έχουν αυτόματα πρόσβαση σε όλο το περιεχόμενο, αλλά αυτές οι επιλογές ενδέχεται να εμφανίζουν ή να αποκρύπτουν τις επιλογές διεπαφής χρήστη.',
'role_asset_image_view_note' => 'Αυτό σχετίζεται με την ορατότητα εντός του διαχειριστή εικόνων. Η πραγματική πρόσβαση των μεταφορτωμένων αρχείων εικόνας θα εξαρτηθεί από την επιλογή αποθήκευσης εικόνας συστήματος.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Ολα',
'role_own' => 'Τα δικά του',
'role_controlled_by_asset' => 'Ελέγχονται από το στοιχείο στο οποίο ανεβαίνουν (Ράφια, Βιβλία)',
diff --git a/lang/el/validation.php b/lang/el/validation.php
index 12d4919ca..4f384efae 100644
--- a/lang/el/validation.php
+++ b/lang/el/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Δεν ήταν δυνατή η αποστολή του αρχείου. Ο διακομιστής ενδέχεται να μην δέχεται αρχεία αυτού του μεγέθους.',
'zip_file' => 'Το :attribute πρέπει να παραπέμπει σε ένα αρχείο εντός του ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'Το :attribute πρέπει να αναφέρεται σε αρχείο τύπου :validTypes, βρέθηκε :foundType.',
'zip_model_expected' => 'Αναμενόταν αντικείμενο δεδομένων, αλλά ":type" βρέθηκε.',
'zip_unique' => 'Το :attribute πρέπει να είναι μοναδικό για τον τύπο αντικειμένου εντός του ZIP.',
diff --git a/lang/en/errors.php b/lang/en/errors.php
index 9d7383796..77d7ee69e 100644
--- a/lang/en/errors.php
+++ b/lang/en/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/en/notifications.php b/lang/en/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/en/notifications.php
+++ b/lang/en/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/en/preferences.php b/lang/en/preferences.php
index 2872f5f3c..f4459d738 100644
--- a/lang/en/preferences.php
+++ b/lang/en/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/en/settings.php b/lang/en/settings.php
index 81c2c0a93..c68605fe1 100644
--- a/lang/en/settings.php
+++ b/lang/en/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Maintenance',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'All',
'role_own' => 'Own',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/en/validation.php b/lang/en/validation.php
index d9b982d1e..ff028525d 100644
--- a/lang/en/validation.php
+++ b/lang/en/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/es/entities.php b/lang/es/entities.php
index 23ec5f442..e652d4dc0 100644
--- a/lang/es/entities.php
+++ b/lang/es/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'Esto eliminará el archivo ZIP de importación subido y no se puede deshacer.',
'import_errors' => 'Errores de Importación',
'import_errors_desc' => 'Se han producido los siguientes errores durante el intento de importación:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Navegar por páginas del mismo nivel',
+ 'breadcrumb_siblings_for_chapter' => 'Navegar por capítulos del mismo nivel',
+ 'breadcrumb_siblings_for_book' => 'Navegar por libros del mismo nivel',
+ 'breadcrumb_siblings_for_bookshelf' => 'Navegar por estantes del mismo nivel',
// Permissions and restrictions
'permissions' => 'Permisos',
diff --git a/lang/es/errors.php b/lang/es/errors.php
index 98aa2acd5..53e035c0d 100644
--- a/lang/es/errors.php
+++ b/lang/es/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'No se pudo leer el archivo ZIP.',
'import_zip_cant_decode_data' => 'No se pudo encontrar y decodificar el archivo data.json. en el archivo ZIP.',
'import_zip_no_data' => 'Los datos del archivo ZIP no contienen ningún libro, capítulo o contenido de página.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Error al validar la importación del ZIP con errores:',
'import_zip_failed_notification' => 'Error al importar archivo ZIP.',
'import_perms_books' => 'Le faltan los permisos necesarios para crear libros.',
diff --git a/lang/es/notifications.php b/lang/es/notifications.php
index 5ebc42129..38c770888 100644
--- a/lang/es/notifications.php
+++ b/lang/es/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Página actualizada: :pageName',
'updated_page_intro' => 'Una página ha sido actualizada en :appName:',
'updated_page_debounce' => 'Para prevenir notificaciones en masa, durante un tiempo no se enviarán notificaciones para futuras ediciones de esta página por el mismo editor.',
+ 'comment_mention_subject' => 'Ha sido mencionado en un comentario en la página: :pageName',
+ 'comment_mention_intro' => 'Fue mencionado en un comentario en :appName:',
'detail_page_name' => 'Nombre de página:',
'detail_page_path' => 'Ruta de la página:',
diff --git a/lang/es/preferences.php b/lang/es/preferences.php
index 13af93d29..0328a572a 100644
--- a/lang/es/preferences.php
+++ b/lang/es/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Controle las notificaciones por correo electrónico que recibe cuando se realiza cierta actividad dentro del sistema.',
'notifications_opt_own_page_changes' => 'Notificar sobre los cambios en las páginas en las que soy propietario',
'notifications_opt_own_page_comments' => 'Notificar sobre comentarios en las páginas en las que soy propietario',
+ 'notifications_opt_comment_mentions' => 'Notificarme cuando he sido mencionado en un comentario',
'notifications_opt_comment_replies' => 'Notificar sobre respuestas a mis comentarios',
'notifications_save' => 'Guardar preferencias',
'notifications_update_success' => '¡Se han actualizado las preferencias de notificaciones!',
diff --git a/lang/es/settings.php b/lang/es/settings.php
index 55eb498d6..1a9927c8e 100644
--- a/lang/es/settings.php
+++ b/lang/es/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Ninguna restricción establecida',
// Sorting Settings
- 'sorting' => 'Ordenación',
- 'sorting_book_default' => 'Orden por defecto del libro',
+ 'sorting' => 'Listas y ordenación',
+ 'sorting_book_default' => 'Orden de libros por defecto',
'sorting_book_default_desc' => 'Seleccione la regla de ordenación predeterminada para aplicar a nuevos libros. Esto no afectará a los libros existentes, y puede ser anulado por libro.',
'sorting_rules' => 'Reglas de ordenación',
'sorting_rules_desc' => 'Son operaciones de ordenación predefinidas que se pueden aplicar al contenido en el sistema.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Fecha de actualización',
'sort_rule_op_chapters_first' => 'Capítulos al inicio',
'sort_rule_op_chapters_last' => 'Capítulos al final',
+ 'sorting_page_limits' => 'Límites de visualización por página',
+ 'sorting_page_limits_desc' => 'Establecer cuántos elementos a mostrar por página en varias listas dentro del sistema. Normalmente una cantidad más baja rendirá mejor, mientras que una cantidad más alta evita la necesidad de hacer clic a través de varias páginas. Se recomienda utilizar un múltiplo par de 3 (18, 24, 30, etc).',
// Maintenance settings
'maint' => 'Mantenimiento',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Importar contenido',
'role_editor_change' => 'Cambiar editor de página',
'role_notifications' => 'Recibir y gestionar notificaciones',
+ 'role_permission_note_users_and_roles' => 'Estos permisos proporcionarán también visibilidad y búsqueda de usuarios y roles en el sistema.',
'role_asset' => 'Permisos de contenido',
'roles_system_warning' => 'Tenga en cuenta que el acceso a cualquiera de los tres permisos anteriores puede permitir a un usuario alterar sus propios privilegios o los privilegios de otros en el sistema. Sólo asignar roles con estos permisos a usuarios de confianza.',
'role_asset_desc' => 'Estos permisos controlan el acceso por defecto a los contenidos del sistema. Los permisos de Libros, Capítulos y Páginas sobreescribiran estos permisos.',
'role_asset_admins' => 'A los administradores se les asigna automáticamente permisos para acceder a todo el contenido pero estas opciones podrían mostrar u ocultar opciones de la interfaz.',
'role_asset_image_view_note' => 'Esto se refiere a la visibilidad dentro del gestor de imágenes. El acceso a los archivos de imagen subidos dependerá de la opción de almacenamiento de imágenes del sistema.',
+ 'role_asset_users_note' => 'Estos permisos proporcionarán también visibilidad y búsqueda de usuarios en el sistema.',
'role_all' => 'Todo',
'role_own' => 'Propio',
'role_controlled_by_asset' => 'Controlado por el contenido al que ha sido subido',
diff --git a/lang/es/validation.php b/lang/es/validation.php
index d5f4f8495..1a9aebd4c 100644
--- a/lang/es/validation.php
+++ b/lang/es/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'El archivo no ha podido subirse. Es posible que el servidor no acepte archivos de este tamaño.',
'zip_file' => 'El :attribute necesita hacer referencia a un archivo dentro del ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'El :attribute necesita hacer referencia a un archivo de tipo :validTypes, encontrado :foundType.',
'zip_model_expected' => 'Se esperaba un objeto de datos, pero se encontró ":type".',
'zip_unique' => 'El :attribute debe ser único para el tipo de objeto dentro del ZIP.',
diff --git a/lang/es_AR/entities.php b/lang/es_AR/entities.php
index 6c54a0004..1ae092de1 100644
--- a/lang/es_AR/entities.php
+++ b/lang/es_AR/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'Esto eliminará el archivo ZIP de importación subido y no se puede deshacer.',
'import_errors' => 'Errores de Importación',
'import_errors_desc' => 'Se produjeron los siguientes errores durante el intento de importación:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Navegar por páginas del mismo nivel',
+ 'breadcrumb_siblings_for_chapter' => 'Navegar por capítulos del mismo nivel',
+ 'breadcrumb_siblings_for_book' => 'Navegar por libros del mismo nivel',
+ 'breadcrumb_siblings_for_bookshelf' => 'Navegar por estantes del mismo nivel',
// Permissions and restrictions
'permissions' => 'Permisos',
diff --git a/lang/es_AR/errors.php b/lang/es_AR/errors.php
index 16a5b5467..7bc3a189a 100644
--- a/lang/es_AR/errors.php
+++ b/lang/es_AR/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'No se pudo leer el archivo ZIP.',
'import_zip_cant_decode_data' => 'No se pudo encontrar ni decodificar el contenido del archivo ZIP data.json.',
'import_zip_no_data' => 'Los datos del archivo ZIP no tienen un libro, un capítulo o contenido de página en su contenido.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Error al validar la importación del ZIP con los errores:',
'import_zip_failed_notification' => 'Error al importar archivo ZIP.',
'import_perms_books' => 'Le faltan los permisos necesarios para crear libros.',
diff --git a/lang/es_AR/notifications.php b/lang/es_AR/notifications.php
index fc89b2c25..af9f5332b 100644
--- a/lang/es_AR/notifications.php
+++ b/lang/es_AR/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Página actualizada: :pageName',
'updated_page_intro' => 'Se actualizó una página en :appName:',
'updated_page_debounce' => 'Para evitar una avalancha de notificaciones, durante un tiempo no se enviarán notificaciones sobre más ediciones de esta página por el mismo editor.',
+ 'comment_mention_subject' => 'Ha sido mencionado en un comentario en la página: :pageName',
+ 'comment_mention_intro' => 'Fue mencionado en un comentario en :appName:',
'detail_page_name' => 'Nombre de la página:',
'detail_page_path' => 'Ruta de la página:',
diff --git a/lang/es_AR/preferences.php b/lang/es_AR/preferences.php
index 11c872021..deca55466 100644
--- a/lang/es_AR/preferences.php
+++ b/lang/es_AR/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Controle las notificaciones por correo electrónico que recibe cuando se realiza cierta actividad dentro del sistema.',
'notifications_opt_own_page_changes' => 'Notificar sobre los cambios en las páginas de las que soy propietario',
'notifications_opt_own_page_comments' => 'Notificar sobre comentarios en las páginas de las que soy propietario',
+ 'notifications_opt_comment_mentions' => 'Notificarme cuando he sido mencionado en un comentario',
'notifications_opt_comment_replies' => 'Notificar sobre respuestas a mis comentarios',
'notifications_save' => 'Guardar preferencias',
'notifications_update_success' => '¡Se actualizaron las preferencias de notificaciones!',
diff --git a/lang/es_AR/settings.php b/lang/es_AR/settings.php
index 5cbcff86e..3eb41d2cc 100644
--- a/lang/es_AR/settings.php
+++ b/lang/es_AR/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Ninguna restricción establecida',
// Sorting Settings
- 'sorting' => 'Ordenando',
- 'sorting_book_default' => 'Orden predeterminado del libro',
+ 'sorting' => 'Listas y ordenación',
+ 'sorting_book_default' => 'Orden de libros por defecto',
'sorting_book_default_desc' => 'Seleccione la regla de ordenación predeterminada para aplicar a nuevos libros. Esto no afectará a los libros existentes, y puede ser anulado por libro.',
'sorting_rules' => 'Reglas de Ordenación',
'sorting_rules_desc' => 'Son operaciones de ordenación predefinidas que se pueden aplicar al contenido en el sistema.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Fecha de actualización',
'sort_rule_op_chapters_first' => 'Capítulos al inicio',
'sort_rule_op_chapters_last' => 'Capítulos al final',
+ 'sorting_page_limits' => 'Límites de visualización por página',
+ 'sorting_page_limits_desc' => 'Establecer cuántos elementos a mostrar por página en varias listas dentro del sistema. Normalmente una cantidad más baja rendirá mejor, mientras que una cantidad más alta evita la necesidad de hacer clic a través de varias páginas. Se recomienda utilizar un múltiplo par de 3 (18, 24, 30, etc).',
// Maintenance settings
'maint' => 'Mantenimiento',
@@ -196,11 +198,13 @@ return [
'role_import_content' => 'Importar contenido',
'role_editor_change' => 'Cambiar editor de página',
'role_notifications' => 'Recibir y gestionar notificaciones',
+ 'role_permission_note_users_and_roles' => 'Estos permisos proporcionarán también visibilidad y búsqueda de usuarios y roles en el sistema.',
'role_asset' => 'Permisos de activos',
'roles_system_warning' => 'Tenga en cuenta que el acceso a cualquiera de los tres permisos anteriores puede permitir a un usuario modificar sus propios privilegios o los privilegios de otros usuarios en el sistema. Asignar roles con estos permisos sólo a usuarios de comfianza.',
'role_asset_desc' => 'Estos permisos controlan el acceso por defecto a los activos del sistema. Permisos definidos en Libros, Capítulos y Páginas ignorarán estos permisos.',
'role_asset_admins' => 'Los administradores reciben automáticamente acceso a todo el contenido pero estas opciones pueden mostrar u ocultar opciones de UI.',
'role_asset_image_view_note' => 'Esto se refiere a la visibilidad dentro del gestor de imágenes. El acceso real a los archivos de imágenes subidos, dependerá de la opción de almacenamiento de imágenes del sistema.',
+ 'role_asset_users_note' => 'Estos permisos proporcionarán también visibilidad y búsqueda de usuarios en el sistema.',
'role_all' => 'Todo',
'role_own' => 'Propio',
'role_controlled_by_asset' => 'Controlado por el activo al que ha sido subido',
diff --git a/lang/es_AR/validation.php b/lang/es_AR/validation.php
index db16845e0..1073933fe 100644
--- a/lang/es_AR/validation.php
+++ b/lang/es_AR/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'El archivo no se pudo subir. Puede ser que el servidor no acepte archivos de este tamaño.',
'zip_file' => 'El :attribute necesita hacer referencia a un archivo dentro del ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'El :attribute necesita hacer referencia a un archivo de tipo :validTypes, encontrado :foundType.',
'zip_model_expected' => 'Se esperaba un objeto de datos, pero se encontró ":type".',
'zip_unique' => 'El :attribute debe ser único para el tipo de objeto dentro del ZIP.',
diff --git a/lang/et/entities.php b/lang/et/entities.php
index 72f09eca0..323985b2d 100644
--- a/lang/et/entities.php
+++ b/lang/et/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'See kustutab üleslaaditud ZIP-faili, ja seda ei saa tagasi võtta.',
'import_errors' => 'Importimise vead',
'import_errors_desc' => 'Importimisel esinesid järgmised vead:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Sirvi teisi lehti',
+ 'breadcrumb_siblings_for_chapter' => 'Sirvi teisi peatükke',
+ 'breadcrumb_siblings_for_book' => 'Sirvi teisi raamatuid',
+ 'breadcrumb_siblings_for_bookshelf' => 'Sirvi teisi riiuleid',
// Permissions and restrictions
'permissions' => 'Õigused',
diff --git a/lang/et/errors.php b/lang/et/errors.php
index 49e755fcc..e1c951993 100644
--- a/lang/et/errors.php
+++ b/lang/et/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'ZIP-faili lugemine ebaõnnestus.',
'import_zip_cant_decode_data' => 'ZIP-failist ei leitud data.json sisu.',
'import_zip_no_data' => 'ZIP-failist ei leitud raamatute, peatükkide või lehtede sisu.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Imporditud ZIP-faili valideerimine ebaõnnestus vigadega:',
'import_zip_failed_notification' => 'ZIP-faili importimine ebaõnnestus.',
'import_perms_books' => 'Sul puuduvad õigused raamatute lisamiseks.',
diff --git a/lang/et/notifications.php b/lang/et/notifications.php
index 0b5fc814c..2843d5799 100644
--- a/lang/et/notifications.php
+++ b/lang/et/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Muudetud leht: :pageName',
'updated_page_intro' => 'Rakenduses :appName muudeti lehte:',
'updated_page_debounce' => 'Et vältida liigseid teavitusi, ei saadeta sulle mõnda aega teavitusi selle lehe muutmiste kohta sama kasutaja poolt.',
+ 'comment_mention_subject' => 'Sind mainiti kommentaaris lehel: :pageName',
+ 'comment_mention_intro' => 'Sind mainiti kommentaaris rakenduses :appName:',
'detail_page_name' => 'Lehe nimetus:',
'detail_page_path' => 'Lehe asukoht:',
diff --git a/lang/et/preferences.php b/lang/et/preferences.php
index f4ba5e6ae..a4003463c 100644
--- a/lang/et/preferences.php
+++ b/lang/et/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Halda e-posti teavitusi, mis saadetakse teatud tegevuste puhul.',
'notifications_opt_own_page_changes' => 'Teavita muudatustest minu lehtedel',
'notifications_opt_own_page_comments' => 'Teavita kommentaaridest minu lehtedel',
+ 'notifications_opt_comment_mentions' => 'Teavita mind, kui mind kommentaaris mainitakse',
'notifications_opt_comment_replies' => 'Teavita vastustest minu kommentaaridele',
'notifications_save' => 'Salvesta eelistused',
'notifications_update_success' => 'Teavituste eelistused on salvestatud!',
diff --git a/lang/et/settings.php b/lang/et/settings.php
index 003238cfe..fbd9d9c7e 100644
--- a/lang/et/settings.php
+++ b/lang/et/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Piirangut ei ole',
// Sorting Settings
- 'sorting' => 'Sorteerimine',
- 'sorting_book_default' => 'Vaikimisi raamatu sorteerimine',
+ 'sorting' => 'Loendid ja järjestamine',
+ 'sorting_book_default' => 'Vaikimisi raamatute sorteerimise reegel',
'sorting_book_default_desc' => 'Vali vaikimisi uutele raamatutele rakenduv sorteerimisreegel. See ei mõjuta olemasolevaid raamatuid ning seda saab raamatupõhiselt muuta.',
'sorting_rules' => 'Sorteerimisreeglid',
'sorting_rules_desc' => 'Need on eeldefineeritud sorteerimistoimingud, mida saab süsteemis olevale sisule rakendada.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Muutmise aeg',
'sort_rule_op_chapters_first' => 'Peatükid eespool',
'sort_rule_op_chapters_last' => 'Peatükid tagapool',
+ 'sorting_page_limits' => 'Leheküljepõhised kuvalimiidid',
+ 'sorting_page_limits_desc' => 'Seadista, mitut objekti erinevates loendites ühel leheküljel kuvada. Väiksem väärtus tähendab reeglina paremat jõudlust, samas kui suurem väärtus vähendab vajadust mitut lehekülge läbi klikkida. Soovituslik on kasutada 3-ga jaguvat väärtust (18, 24, 30 jne).',
// Maintenance settings
'maint' => 'Hooldus',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Imporditud sisu',
'role_editor_change' => 'Lehe redaktori muutmine',
'role_notifications' => 'Võta vastu ja halda teavitusi',
+ 'role_permission_note_users_and_roles' => 'Need õigused lubavad ka süsteemis olevaid kasutajaid ja rolle vaadata ja otsida.',
'role_asset' => 'Sisu õigused',
'roles_system_warning' => 'Pane tähele, et ülalolevad kolm õigust võimaldavad kasutajal enda või teiste kasutajate õiguseid muuta. Määra nende õigustega roll ainult usaldusväärsetele kasutajatele.',
'role_asset_desc' => 'Need load kontrollivad vaikimisi ligipääsu süsteemis olevale sisule. Raamatute, peatükkide ja lehtede õigused rakenduvad esmajärjekorras.',
'role_asset_admins' => 'Administraatoritel on automaatselt ligipääs kogu sisule, aga need valikud võivad peida või näidata kasutajaliidese elemente.',
'role_asset_image_view_note' => 'See käib nähtavuse kohta pildifailide halduris. Tegelik ligipääs üleslaaditud pildifailidele sõltub süsteemsest piltide salvestamise valikust.',
+ 'role_asset_users_note' => 'Need õigused lubavad ka süsteemis olevaid kasutajaid vaadata ja otsida.',
'role_all' => 'Kõik',
'role_own' => 'Enda omad',
'role_controlled_by_asset' => 'Õigused määratud seotud objekti kaudu',
diff --git a/lang/et/validation.php b/lang/et/validation.php
index 1354d1ed4..947007d26 100644
--- a/lang/et/validation.php
+++ b/lang/et/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Faili üleslaadimine ebaõnnestus. Server ei pruugi sellise suurusega faile vastu võtta.',
'zip_file' => ':attribute peab viitama failile ZIP-arhiivi sees.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute peab viitama :validTypes tüüpi failile, leiti :foundType.',
'zip_model_expected' => 'Oodatud andmete asemel leiti ":type".',
'zip_unique' => ':attribute peab olema ZIP-arhiivi piires objekti tüübile unikaalne.',
diff --git a/lang/eu/errors.php b/lang/eu/errors.php
index 2a747e5f8..822c64829 100644
--- a/lang/eu/errors.php
+++ b/lang/eu/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/eu/notifications.php b/lang/eu/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/eu/notifications.php
+++ b/lang/eu/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/eu/preferences.php b/lang/eu/preferences.php
index da7638593..3818932d4 100644
--- a/lang/eu/preferences.php
+++ b/lang/eu/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/eu/settings.php b/lang/eu/settings.php
index e93f3c964..9a9227b83 100644
--- a/lang/eu/settings.php
+++ b/lang/eu/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Mugarik gabe',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Mantentze-lanak',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Fitxategi baimenak',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Guztiak',
'role_own' => 'Norberarenak',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/eu/validation.php b/lang/eu/validation.php
index f79dc852f..6dddd5297 100644
--- a/lang/eu/validation.php
+++ b/lang/eu/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/fa/editor.php b/lang/fa/editor.php
index a8b3d211a..8a05571b8 100644
--- a/lang/fa/editor.php
+++ b/lang/fa/editor.php
@@ -42,13 +42,13 @@ return [
'callout_warning' => 'هشدار',
'callout_danger' => 'خطر',
'bold' => 'توپر',
- 'italic' => 'حروف کج(ایتالیک)',
+ 'italic' => 'ایتالیک',
'underline' => 'زیرخط',
'strikethrough' => 'خط خورده',
'superscript' => 'بالانویسی',
'subscript' => 'پایین نویسی',
'text_color' => 'رنگ متن',
- 'highlight_color' => 'Highlight color',
+ 'highlight_color' => 'رنگ هایلایت',
'custom_color' => 'رنگ دلخواه',
'remove_color' => 'حذف رنگ',
'background_color' => 'رنگ زمینه',
diff --git a/lang/fa/entities.php b/lang/fa/entities.php
index 34a12689a..d7c0cc1c0 100644
--- a/lang/fa/entities.php
+++ b/lang/fa/entities.php
@@ -6,10 +6,10 @@
return [
// Shared
- 'recently_created' => 'اخیرا ایجاد شده',
- 'recently_created_pages' => 'صفحات اخیرا ایجاد شده',
- 'recently_updated_pages' => 'صفحاتی که اخیرا روزآمد شدهاند',
- 'recently_created_chapters' => 'فصل های اخیرا ایجاد شده',
+ 'recently_created' => 'تازه ایجاد شده',
+ 'recently_created_pages' => 'صفحههای تازه ایجاد شده',
+ 'recently_updated_pages' => 'صفحههای تازه بهروزرسانیشده',
+ 'recently_created_chapters' => 'فصلهای تازه ایجاد شده',
'recently_created_books' => 'کتاب های اخیرا ایجاد شده',
'recently_created_shelves' => 'قفسه کتاب های اخیرا ایجاد شده',
'recently_update' => 'اخیرا به روز شده',
@@ -39,13 +39,13 @@ return [
'export_pdf' => 'فایل PDF',
'export_text' => 'پرونده متنی ساده',
'export_md' => 'راهنما مارکدون',
- 'export_zip' => 'فایل فشردهی قابلحمل (ZIP)',
+ 'export_zip' => 'فایل فشردهی زیپ',
'default_template' => 'قالب پیشفرض صفحه',
'default_template_explain' => 'قالبی برای صفحه تعیین کنید که بهعنوان محتوای پیشفرض در تمام صفحاتی که در این مورد ایجاد میشوند، بهکار رود. توجه داشته باشید این قالب تنها در صورتی اعمال میشود که سازندهٔ صفحه به صفحهٔ قالب انتخابشده دسترسی نمایشی داشته باشد.',
'default_template_select' => 'انتخاب صفحهٔ قالب',
'import' => 'وارد کردن',
'import_validate' => 'اعتبارسنجی آیتمهای واردشده',
- 'import_desc' => 'میتوانید کتابها، فصلها و صفحات را با استفاده از یک فایل فشرده (ZIP) که از همین سامانه یا نمونهای دیگر استخراج شده، وارد کنید. برای ادامه، یک فایل ZIP انتخاب نمایید. پس از بارگذاری و اعتبارسنجی فایل، در مرحله بعد میتوانید تنظیمات انتقال را انجام داده و انتقال را تأیید کنید.',
+ 'import_desc' => 'میتوانید کتابها، فصلها و صفحهها را با استفاده از یک فایل فشردهٔ ZIP وارد کنید که از همین سامانه یا نمونهای دیگر استخراج شده است. برای ادامه، فایل ZIP را انتخاب و بارگذاری کنید. پس از بارگذاری و اعتبارسنجی، در مرحلهٔ بعد میتوانید تنظیمات ورود را انجام داده و آن را تأیید کنید.',
'import_zip_select' => 'انتخاب فایل ZIP برای بارگذاری',
'import_zip_validation_errors' => 'هنگام اعتبارسنجی فایل ZIP ارائهشده، خطاهایی شناسایی شد:',
'import_pending' => 'ورودیهای در انتظار انتقال',
@@ -54,25 +54,25 @@ return [
'import_continue_desc' => 'محتوای فایل ZIP بارگذاریشده را که قرار است وارد سامانه شود، مرور کنید. پس از اطمینان از صحت آن، انتقال را آغاز نمایید تا محتوا به این سامانه افزوده شود. توجه داشته باشید که پس از انتقال موفق، فایل ZIP بارگذاریشده بهصورت خودکار حذف خواهد شد.',
'import_details' => 'جزئیات انتقال ورودی',
'import_run' => 'شروع فرایند انتقال ورودی',
- 'import_size' => 'حجم فایل ZIP واردشده: :size',
- 'import_uploaded_at' => 'زمان بارگذاری: :relativeTime',
- 'import_uploaded_by' => 'بارگذاری شده توسط:',
+ 'import_size' => 'حجم فایل ZIP واردشده:size',
+ 'import_uploaded_at' => 'زمان بارگذاری:relativeTime',
+ 'import_uploaded_by' => 'بارگذاری شده توسط',
'import_location' => 'مکان انتقال',
'import_location_desc' => 'برای محتوای واردشده، مقصدی انتخاب کنید. برای ایجاد محتوا در آن مقصد، داشتن مجوزهای لازم ضروری است.',
'import_delete_confirm' => 'مطمئن هستید که میخواهید آیتم واردشده را حدف کنید؟',
'import_delete_desc' => 'با انجام این کار، فایل ZIP واردشده حذف میشود و این عمل بازگشتناپذیر است.',
'import_errors' => 'خطای انتقال ورودی',
'import_errors_desc' => 'در جریان تلاش برای انتقال ورودی، خطاهای زیر رخ داد:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'پیمایش صفحات همسطح',
+ 'breadcrumb_siblings_for_chapter' => 'پیمایش فصلهای همسطح',
+ 'breadcrumb_siblings_for_book' => 'پیمایش کتابهای همسطح',
+ 'breadcrumb_siblings_for_bookshelf' => 'پیمایش قفسههای همسطح',
// Permissions and restrictions
'permissions' => 'مجوزها',
'permissions_desc' => 'مجوزها را در اینجا تنظیم کنید تا مجوزهای پیش فرض تنظیم شده برای نقش های کاربر را لغو کنید.',
- 'permissions_book_cascade' => 'مجوزهای تنظیمشده روی کتابها بهطور خودکار به فصلها و صفحات داخل آن اختصاص داده میشوند، مگر اینکه مجوزهای اختصاصی برای آنها (فصلها و صفحات) تعریف شده باشد.',
- 'permissions_chapter_cascade' => 'مجوزهای تنظیمشده روی فصلها بهطور خودکار به صفحات داخل آن اختصاص داده میشوند، مگر اینکه مجوزهای اختصاصی برای آنها (صفحات) تعریف شده باشد.',
+ 'permissions_book_cascade' => 'مجوزهای تنظیمشده روی کتابها بهطور خودکار به فصلها و صفحات داخل آن اختصاص داده میشوند، مگر اینکه مجوزهای اختصاصی برای آنها تعریف شده باشد.',
+ 'permissions_chapter_cascade' => 'مجوزهای تنظیمشده روی فصلها بهطور خودکار به صفحات داخل آن اختصاص داده میشوند، مگر اینکه مجوزهای اختصاصی برای آنها تعریف شده باشد.',
'permissions_save' => 'ذخيره مجوزها',
'permissions_owner' => 'مالک',
'permissions_role_everyone_else' => 'سایر کاربران',
@@ -82,7 +82,7 @@ return [
// Search
'search_results' => 'نتایج جستجو',
- 'search_total_results_found' => 'نتیجه یافت شد :count | نتایج یافت شده :count',
+ 'search_total_results_found' => 'نتیجه یافت شد:count | نتایج یافت شده:count',
'search_clear' => 'پاک کردن جستجو',
'search_no_pages' => 'هیچ صفحه ای با این جستجو مطابقت ندارد',
'search_for_term' => 'جستجو برای :term',
@@ -155,7 +155,7 @@ return [
'books_delete' => 'حذف کتاب',
'books_delete_named' => 'حذف کتاب:bookName',
'books_delete_explain' => 'با این کار کتابی با نام \':bookName\' حذف می شود. تمام صفحات و فصل ها حذف خواهند شد.',
- 'books_delete_confirmation' => 'آیا مطمئن هستید که می خواهید این کتاب را حذف کنید؟',
+ 'books_delete_confirmation' => 'آیا مطمئن هستید که می خواهید این کتاب را حذف کنید?',
'books_edit' => 'ویرایش کتاب',
'books_edit_named' => 'ویرایش کتاب:bookName',
'books_form_book_name' => 'نام کتاب',
@@ -169,14 +169,14 @@ return [
'books_permissions_active' => 'مجوزهای کتاب فعال است',
'books_search_this' => 'این کتاب را جستجو کنید',
'books_navigation' => 'ناوبری کتاب',
- 'books_sort' => 'مرتب سازی مطالب کتاب',
+ 'books_sort' => 'مرتبسازی مطالب کتاب',
'books_sort_desc' => 'برای ساماندهی محتوای یک کتاب، میتوانید فصلها و صفحات آن را جابهجا کنید. همچنین میتوانید کتابهای دیگری بیفزایید تا جابهجایی فصلها و صفحات میان کتابها آسان شود. در صورت تمایل، میتوانید قاعدهای برای مرتبسازی خودکار تعیین کنید تا محتوای کتاب در صورت ایجاد تغییرات، به طور خودکار مرتب شود.',
'books_sort_auto_sort' => 'گزینه مرتبسازی خودکار',
'books_sort_auto_sort_active' => 'مرتبسازی خودکار با قاعده: :sortName فعال است',
'books_sort_named' => 'مرتبسازی کتاب:bookName',
- 'books_sort_name' => 'مرتب سازی بر اساس نام',
- 'books_sort_created' => 'مرتب سازی بر اساس تاریخ ایجاد',
- 'books_sort_updated' => 'مرتب سازی بر اساس تاریخ به روز رسانی',
+ 'books_sort_name' => 'مرتبسازی بر اساس نام',
+ 'books_sort_created' => 'مرتبسازی بر اساس تاریخ ایجاد',
+ 'books_sort_updated' => 'مرتبسازی بر اساس تاریخ به روز رسانی',
'books_sort_chapters_first' => 'فصل اول',
'books_sort_chapters_last' => 'فصل آخر',
'books_sort_show_other' => 'نمایش کتابهای دیگر',
@@ -234,9 +234,7 @@ return [
'pages_delete_draft' => 'حذف صفحه پیش نویس',
'pages_delete_success' => 'صفحه حذف شد',
'pages_delete_draft_success' => 'صفحه پیش نویس حذف شد',
- 'pages_delete_warning_template' => 'این صفحه هماکنون بهعنوان قالب پیشفرض صفحه برای یک کتاب یا فصل در حال استفاده است. پس از حذف این صفحه، کتابها یا فصلهای مربوطه دیگر قالب پیشفرض صفحه نخواهند داشت.
-
-',
+ 'pages_delete_warning_template' => 'این صفحه هماکنون بهعنوان قالب پیشفرض صفحه برای یک کتاب یا فصل در حال استفاده است. پس از حذف این صفحه، کتابها یا فصلهای مربوط دیگر قالب پیشفرض صفحه نخواهند داشت.',
'pages_delete_confirm' => 'آیا مطمئن هستید که می خواهید این صفحه را حذف کنید؟',
'pages_delete_draft_confirm' => 'آیا مطمئن هستید که می خواهید این صفحه پیش نویس را حذف کنید؟',
'pages_editing_named' => 'ویرایش صفحه :pageName',
@@ -245,7 +243,7 @@ return [
'pages_edit_draft' => 'ویرایش پیش نویس صفحه',
'pages_editing_draft' => 'در حال ویرایش پیش نویس',
'pages_editing_page' => 'در حال ویرایش صفحه',
- 'pages_edit_draft_save_at' => 'پیش نویس ذخیره شده در',
+ 'pages_edit_draft_save_at' => 'پیش نویس ذخیره شده در ',
'pages_edit_delete_draft' => 'حذف پیش نویس',
'pages_edit_delete_draft_confirm' => 'آیا از حذف تغییرات صفحه پیشنویس اطمینان دارید؟ تمامی تغییراتتان، از آخرین ذخیرهسازی کامل، از بین خواهد رفت و ویرایشگر به آخرین وضعیت پیشنویس ذخیره شده بازگردانی خواهد شد.',
'pages_edit_discard_draft' => 'دور انداختن پیش نویس',
@@ -253,8 +251,7 @@ return [
'pages_edit_switch_to_markdown_clean' => '(مطالب تمیز)',
'pages_edit_switch_to_markdown_stable' => '(محتوای پایدار)',
'pages_edit_switch_to_wysiwyg' => 'به ویرایشگر WYSIWYG بروید',
- 'pages_edit_switch_to_new_wysiwyg' => 'تغییر به ویرایشگر جدید WYSIWYG
-(ویرایشگر WYSIWYG: «آنچه میبینید همان است که بهدست میآورید»)',
+ 'pages_edit_switch_to_new_wysiwyg' => 'تغییر به ویرایشگر جدید WYSIWYG',
'pages_edit_switch_to_new_wysiwyg_desc' => '(در مرحله آزمایش بتا)',
'pages_edit_set_changelog' => 'تنظیم تغییرات',
'pages_edit_enter_changelog_desc' => 'توضیح مختصری از تغییراتی که ایجاد کرده اید وارد کنید',
@@ -275,7 +272,7 @@ return [
'pages_md_insert_drawing' => 'درج طرح',
'pages_md_show_preview' => 'دیدن پیش نمایش',
'pages_md_sync_scroll' => 'هماهنگ سازی اسکرول پیش نمایش',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => 'ویرایشگر متن ساده',
'pages_drawing_unsaved' => 'نقاشی ذخیره نشده پیدا شد',
'pages_drawing_unsaved_confirm' => 'نسخهای ذخیرهنشده از طراحیهای قبلی پیدا شد. آیا میخواهید این طراحی ذخیرهنشده را بازیابی کنید و به ویرایش آن ادامه دهید؟',
'pages_not_in_chapter' => 'صفحه در یک فصل نیست',
diff --git a/lang/fa/errors.php b/lang/fa/errors.php
index 9d5257fcf..d35745615 100644
--- a/lang/fa/errors.php
+++ b/lang/fa/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'امکان ایجاد کاربر وجود ندارد؛ زیرا ارسال ایمیل دعوت با خطا مواجه شد.',
'import_zip_cant_decode_data' => 'محتوای data.json در فایل ZIP پیدا یا رمزگشایی نشد.',
'import_zip_no_data' => 'دادههای فایل ZIP فاقد محتوای کتاب، فصل یا صفحه مورد انتظار است.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'اعتبارسنجی فایل ZIP واردشده با خطا مواجه شد:',
'import_zip_failed_notification' => ' فایل ZIP وارد نشد.',
'import_perms_books' => 'شما مجوز لازم برای ایجاد کتاب را ندارید.',
diff --git a/lang/fa/notifications.php b/lang/fa/notifications.php
index 4595fd825..d216b04fe 100644
--- a/lang/fa/notifications.php
+++ b/lang/fa/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'صفحه جدید: :pageName',
'updated_page_intro' => 'یک صفحه جدید ایجاد شده است در :appName:',
'updated_page_debounce' => 'برای جلوگیری از انبوه اعلانها، برای مدتی اعلان ویرایشهایی که توسط همان ویرایشگر در این صفحه انجام میشود، ارسال نخواهد شد.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'نام صفحه:',
'detail_page_path' => 'نام میسر صفحه:',
diff --git a/lang/fa/preferences.php b/lang/fa/preferences.php
index ceecedc80..00d277bdf 100644
--- a/lang/fa/preferences.php
+++ b/lang/fa/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'تنظیمات اطلاعیههای ایمیلی هنگام انجام فعالیتهای خاص در سیستم.',
'notifications_opt_own_page_changes' => 'در صورت تغییرات در صفحاتی که متعلق به من است، اطلاع بده',
'notifications_opt_own_page_comments' => 'در صورت ثبت نظر در صفحاتی که متعلق به من است، اطلاع بده',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'پس از درج پاسخ به روی نظراتی که من ثبت کردهام، اطلاع بده',
'notifications_save' => 'ذخیره تنظیمات',
'notifications_update_success' => 'تنظیمات اعلانها به روز شده است!',
diff --git a/lang/fa/settings.php b/lang/fa/settings.php
index e4cb9018e..abbfce470 100644
--- a/lang/fa/settings.php
+++ b/lang/fa/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'بدون محدودیت',
// Sorting Settings
- 'sorting' => 'مرتبسازی',
- 'sorting_book_default' => 'مرتبسازی پیشفرض کتاب',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'قانون پیشفرض مرتبسازی را برای کتابهای جدید انتخاب کنید. تغییر قانون بر ترتیب کتابهای موجود تأثیری ندارد و میتواند برای هر کتاب بهصورت جداگانه تغییر یابد.',
'sorting_rules' => 'قوانین مرتبسازی',
'sorting_rules_desc' => 'اینها عملیات مرتبسازی از پیش تعریفشدهای هستند که میتوانید آنها را بر محتوای سیستم اعمال کنید.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'تاریخ بهروزرسانی',
'sort_rule_op_chapters_first' => 'ابتدا فصلها',
'sort_rule_op_chapters_last' => 'فصلها در آخر',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'نگهداری',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'وارد کردن محتوا',
'role_editor_change' => 'تغییر ویرایشگر صفحه',
'role_notifications' => 'دریافت و مدیریت اعلانها',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'مجوزهای دارایی',
'roles_system_warning' => 'توجه داشته باشید که دسترسی به هر یک از سه مجوز فوق میتواند به کاربر اجازه دهد تا امتیازات خود یا امتیازات دیگران را در سیستم تغییر دهد. فقط نقش هایی را با این مجوزها به کاربران مورد اعتماد اختصاص دهید.',
'role_asset_desc' => 'این مجوزها دسترسی پیشفرض به داراییهای درون سیستم را کنترل میکنند. مجوزهای مربوط به کتابها، فصلها و صفحات این مجوزها را لغو میکنند.',
'role_asset_admins' => 'به ادمینها بهطور خودکار به همه محتوا دسترسی داده میشود، اما این گزینهها ممکن است گزینههای UI را نشان داده یا پنهان کنند.',
'role_asset_image_view_note' => 'این مربوط به مرئی بودن در بخش مدیر تصاویر است. دسترسی عملی به تصاویر آپلود شده بستگی به گزینه ذخیرهسازی تصویر سیستم دارد.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'همه',
'role_own' => 'صاحب',
'role_controlled_by_asset' => 'توسط دارایی که در آن آپلود می شود کنترل می شود',
diff --git a/lang/fa/validation.php b/lang/fa/validation.php
index e1c69ece9..93c7dcb66 100644
--- a/lang/fa/validation.php
+++ b/lang/fa/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'بارگذاری فایل :attribute موفقیت آمیز نبود.',
'zip_file' => 'ویژگی :attribute باید به یک فایل درون پرونده فشرده شده اشاره کند.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'ویژگی :attribute باید به فایلی با نوع :validTypes اشاره کند، اما نوع یافتشده :foundType است.',
'zip_model_expected' => 'سیستم در این بخش انتظار دریافت یک شیء دادهای را داشت، اما «:type» دریافت گردید',
'zip_unique' => 'برای هر نوع شیء در فایل ZIP، مقدار ویژگی :attribute باید یکتا و بدون تکرار باشد.',
diff --git a/lang/fi/errors.php b/lang/fi/errors.php
index 9af7490d5..f470ce614 100644
--- a/lang/fi/errors.php
+++ b/lang/fi/errors.php
@@ -110,6 +110,7 @@ Sovellus ei tunnista ulkoisen todennuspalvelun pyyntöä. Ongelman voi aiheuttaa
'import_zip_cant_read' => 'ZIP-tiedostoa ei voitu lukea.',
'import_zip_cant_decode_data' => 'ZIP-tiedoston data.json sisältöä ei löydy eikä sitä voitu purkaa.',
'import_zip_no_data' => 'ZIP-tiedostoilla ei ole odotettua kirjaa, lukua tai sivun sisältöä.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Tuonti ZIP epäonnistui virheiden kanssa:',
'import_zip_failed_notification' => 'ZIP-tiedoston tuominen epäonnistui.',
'import_perms_books' => 'Sinulla ei ole tarvittavia oikeuksia luoda kirjoja.',
diff --git a/lang/fi/notifications.php b/lang/fi/notifications.php
index a737ad7d9..647378ded 100644
--- a/lang/fi/notifications.php
+++ b/lang/fi/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Päivitetty sivu: :pageName',
'updated_page_intro' => 'Sivu on päivitetty sivustolla :appName:',
'updated_page_debounce' => 'Useiden ilmoitusten välttämiseksi sinulle ei toistaiseksi lähetetä ilmoituksia saman toimittajan tekemistä uusista muokkauksista tälle sivulle.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Sivun nimi:',
'detail_page_path' => 'Sivun polku:',
diff --git a/lang/fi/preferences.php b/lang/fi/preferences.php
index 25cd76bf7..05afc111f 100644
--- a/lang/fi/preferences.php
+++ b/lang/fi/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Hallitse järjestelmän toimintoihin liittyviä sähköposti-ilmoituksia.',
'notifications_opt_own_page_changes' => 'Ilmoita omistamilleni sivuille tehdyistä muutoksista',
'notifications_opt_own_page_comments' => 'Ilmoita omistamilleni sivuille tehdyistä kommenteista',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Ilmoita vastauksista kommentteihini',
'notifications_save' => 'Tallenna asetukset',
'notifications_update_success' => 'Ilmoitusasetukset on päivitetty!',
diff --git a/lang/fi/settings.php b/lang/fi/settings.php
index d9e91d4fa..499122fe3 100644
--- a/lang/fi/settings.php
+++ b/lang/fi/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Ei rajoituksia',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Huolto',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Vaihda sivun editoria',
'role_notifications' => 'Vastaanota ja hallinnoi ilmoituksia',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Sisältöjen oikeudet',
'roles_system_warning' => 'Huomaa, että minkä tahansa edellä mainituista kolmesta käyttöoikeudesta voi antaa käyttäjälle mahdollisuuden muuttaa omia tai muiden järjestelmän käyttäjien oikeuksia. Anna näitä oikeuksia sisältävät roolit vain luotetuille käyttäjille.',
'role_asset_desc' => 'Näillä asetuksilla hallitaan oletuksena annettavia käyttöoikeuksia järjestelmässä oleviin sisältöihin. Yksittäisten kirjojen, lukujen ja sivujen käyttöoikeudet kumoavat nämä käyttöoikeudet.',
'role_asset_admins' => 'Ylläpitäjät saavat automaattisesti pääsyn kaikkeen sisältöön, mutta nämä vaihtoehdot voivat näyttää tai piilottaa käyttöliittymävalintoja.',
'role_asset_image_view_note' => 'Tämä tarkoittaa näkyvyyttä kuvien hallinnassa. Pääsy ladattuihin kuvatiedostoihin riippuu asetetusta kuvien tallennusvaihtoehdosta.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Kaikki',
'role_own' => 'Omat',
'role_controlled_by_asset' => 'Määräytyy sen sisällön mukaan, johon ne on ladattu',
diff --git a/lang/fi/validation.php b/lang/fi/validation.php
index 8adc934a1..aef10b4d3 100644
--- a/lang/fi/validation.php
+++ b/lang/fi/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Tiedostoa ei voitu ladata. Palvelin ei ehkä hyväksy tämän kokoisia tiedostoja.',
'zip_file' => 'Attribuutin :attribute on viitattava tiedostoon ZIP-tiedoston sisällä.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/fr/activities.php b/lang/fr/activities.php
index b65134a24..0e70917da 100644
--- a/lang/fr/activities.php
+++ b/lang/fr/activities.php
@@ -59,7 +59,7 @@ return [
'favourite_remove_notification' => '":name" a été supprimé de vos favoris',
// Watching
- 'watch_update_level_notification' => 'Suivre les préférences mises à jour avec succès',
+ 'watch_update_level_notification' => 'Préférences de surveillance mises à jour avec succès',
// Auth
'auth_login' => 'connecté',
diff --git a/lang/fr/editor.php b/lang/fr/editor.php
index 73bc6ad21..4d4d8c0e8 100644
--- a/lang/fr/editor.php
+++ b/lang/fr/editor.php
@@ -35,7 +35,7 @@ return [
'header_tiny' => 'En-tête minuscule',
'paragraph' => 'Paragraphe',
'blockquote' => 'Bloc de citation',
- 'inline_code' => 'Ligne de Code',
+ 'inline_code' => 'Ligne de code',
'callouts' => 'Légendes',
'callout_information' => 'Information',
'callout_success' => 'Succès',
@@ -47,7 +47,7 @@ return [
'strikethrough' => 'Barré',
'superscript' => 'Exposant',
'subscript' => 'Indice',
- 'text_color' => 'Couleur Texte',
+ 'text_color' => 'Couleur de texte',
'highlight_color' => 'Couleur de surlignage',
'custom_color' => 'Couleur personnalisée',
'remove_color' => 'Supprimer la couleur',
@@ -75,7 +75,7 @@ return [
'insert_media_title' => 'Insérer/Modifier un média',
'clear_formatting' => 'Effacer le formatage',
'source_code' => 'Code source',
- 'source_code_title' => 'Code Source',
+ 'source_code_title' => 'Code source',
'fullscreen' => 'Plein écran',
'image_options' => 'Options d\'image',
@@ -130,7 +130,7 @@ return [
'caption' => 'Légende',
'show_caption' => 'Afficher la légende',
'constrain' => 'Conserver les proportions',
- 'cell_border_solid' => 'En continue',
+ 'cell_border_solid' => 'Continu',
'cell_border_dotted' => 'En pointillé',
'cell_border_dashed' => 'En tirets',
'cell_border_double' => 'En double trait',
diff --git a/lang/fr/entities.php b/lang/fr/entities.php
index 827e88a1b..ecf26442b 100644
--- a/lang/fr/entities.php
+++ b/lang/fr/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'Ceci supprimera le fichier ZIP importé et ne pourra pas être annulé.',
'import_errors' => 'Erreurs d\'importation',
'import_errors_desc' => 'Les erreurs suivantes se sont produites lors de la tentative d\'importation :',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Naviguer entre les pages voisines',
+ 'breadcrumb_siblings_for_chapter' => 'Naviguer entre les chapitres voisins',
+ 'breadcrumb_siblings_for_book' => 'Naviguer entre les livres voisins',
+ 'breadcrumb_siblings_for_bookshelf' => 'Naviguer entre les étagères voisines',
// Permissions and restrictions
'permissions' => 'Autorisations',
@@ -243,7 +243,7 @@ return [
'pages_edit_draft' => 'Modifier le brouillon',
'pages_editing_draft' => 'Modification du brouillon',
'pages_editing_page' => 'Modification de la page',
- 'pages_edit_draft_save_at' => 'Brouillon enregistré le ',
+ 'pages_edit_draft_save_at' => 'Brouillon enregistré à ',
'pages_edit_delete_draft' => 'Supprimer le brouillon',
'pages_edit_delete_draft_confirm' => 'Êtes-vous sûr de vouloir supprimer vos modifications de page brouillon ? Toutes vos modifications, depuis la dernière sauvegarde complète, seront perdues et l\'éditeur sera mis à jour avec l\'état de sauvegarde de la dernière page non-brouillon.',
'pages_edit_discard_draft' => 'Jeter le brouillon',
@@ -253,9 +253,9 @@ return [
'pages_edit_switch_to_wysiwyg' => 'Basculer vers l\'éditeur WYSIWYG',
'pages_edit_switch_to_new_wysiwyg' => 'Basculer vers le nouveau WYSIWYG',
'pages_edit_switch_to_new_wysiwyg_desc' => '(En bêta-test)',
- 'pages_edit_set_changelog' => 'Remplir le journal des changements',
+ 'pages_edit_set_changelog' => 'Journal des changements',
'pages_edit_enter_changelog_desc' => 'Entrez une brève description des changements effectués',
- 'pages_edit_enter_changelog' => 'Ouvrir le journal des changements',
+ 'pages_edit_enter_changelog' => 'Saisir les changements',
'pages_editor_switch_title' => 'Changer d\'éditeur',
'pages_editor_switch_are_you_sure' => 'Êtes-vous sûr de vouloir modifier l\'éditeur de cette page ?',
'pages_editor_switch_consider_following' => 'Considérez ce qui suit lors du changement d\'éditeur :',
@@ -272,7 +272,7 @@ return [
'pages_md_insert_drawing' => 'Insérer un dessin',
'pages_md_show_preview' => 'Prévisualisation',
'pages_md_sync_scroll' => 'Défilement prévisualisation',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => 'Éditeur texte brut',
'pages_drawing_unsaved' => 'Dessin non enregistré trouvé',
'pages_drawing_unsaved_confirm' => 'Des données de dessin non enregistrées ont été trouvées à partir d\'une tentative de sauvegarde de dessin échouée. Voulez-vous restaurer et continuer à modifier ce dessin non sauvegardé ?',
'pages_not_in_chapter' => 'La page n\'est pas dans un chapitre',
diff --git a/lang/fr/errors.php b/lang/fr/errors.php
index 94d21e1dd..a4fb9b565 100644
--- a/lang/fr/errors.php
+++ b/lang/fr/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Impossible de lire le fichier ZIP.',
'import_zip_cant_decode_data' => 'Impossible de trouver et de décoder le contenu ZIP data.json.',
'import_zip_no_data' => 'Les données du fichier ZIP n\'ont pas de livre, de chapitre ou de page attendus.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'L\'importation du ZIP n\'a pas été validée avec les erreurs :',
'import_zip_failed_notification' => 'Impossible d\'importer le fichier ZIP.',
'import_perms_books' => 'Vous n\'avez pas les permissions requises pour créer des livres.',
diff --git a/lang/fr/notifications.php b/lang/fr/notifications.php
index 5d7ae88f7..b82f82bd0 100644
--- a/lang/fr/notifications.php
+++ b/lang/fr/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Page mise à jour: :pageName',
'updated_page_intro' => 'Une page a été mise à jour dans :appName:',
'updated_page_debounce' => 'Pour éviter de nombreuses notifications, pendant un certain temps, vous ne recevrez pas de notifications pour d\'autres modifications de cette page par le même éditeur.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Nom de la page :',
'detail_page_path' => 'Chemin de la page :',
diff --git a/lang/fr/preferences.php b/lang/fr/preferences.php
index 2180ed70c..c595222f1 100644
--- a/lang/fr/preferences.php
+++ b/lang/fr/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Contrôlez les notifications par e-mail que vous recevez lorsque certaines activités sont effectuées dans le système.',
'notifications_opt_own_page_changes' => 'Notifier lors des modifications des pages que je possède',
'notifications_opt_own_page_comments' => 'Notifier lorsque les pages que je possède sont commentées',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notifier les réponses à mes commentaires',
'notifications_save' => 'Enregistrer les préférences',
'notifications_update_success' => 'Les préférences de notification ont été mises à jour !',
diff --git a/lang/fr/settings.php b/lang/fr/settings.php
index e73d8a4b1..7ce2312f3 100644
--- a/lang/fr/settings.php
+++ b/lang/fr/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Aucune restriction en place',
// Sorting Settings
- 'sorting' => 'Tri',
- 'sorting_book_default' => 'Tri des livres par défaut',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Sélectionnez le tri par défaut à mettre en place sur les nouveaux livres. Cela n’affectera pas les livres existants, et peut être redéfini dans les livres.',
'sorting_rules' => 'Règles de tri',
'sorting_rules_desc' => 'Ce sont les opérations de tri qui peuvent être appliquées au contenu du système.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Date de mise à jour',
'sort_rule_op_chapters_first' => 'Chapitres en premier',
'sort_rule_op_chapters_last' => 'Chapitres en dernier',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Maintenance',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Importer le contenu',
'role_editor_change' => 'Changer l\'éditeur de page',
'role_notifications' => 'Recevoir et gérer les notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Permissions des ressources',
'roles_system_warning' => 'Sachez que l\'accès à l\'une des trois permissions ci-dessus peut permettre à un utilisateur de modifier ses propres privilèges ou les privilèges des autres utilisateurs du système. N\'attribuez uniquement des rôles avec ces permissions qu\'à des utilisateurs de confiance.',
'role_asset_desc' => 'Ces permissions contrôlent l\'accès par défaut des ressources dans le système. Les permissions dans les livres, les chapitres et les pages ignoreront ces permissions',
'role_asset_admins' => 'Les administrateurs ont automatiquement accès à tous les contenus mais les options suivantes peuvent afficher ou masquer certaines options de l\'interface.',
'role_asset_image_view_note' => 'Cela concerne la visibilité dans le gestionnaire d\'images. L\'accès réel des fichiers d\'image téléchargés dépendra de l\'option de stockage d\'images du système.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Tous',
'role_own' => 'Propres',
'role_controlled_by_asset' => 'Contrôlé par les ressources les ayant envoyés',
diff --git a/lang/fr/validation.php b/lang/fr/validation.php
index 7db0493a1..74ecca12e 100644
--- a/lang/fr/validation.php
+++ b/lang/fr/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Le fichier n\'a pas pu être envoyé. Le serveur peut ne pas accepter des fichiers de cette taille.',
'zip_file' => 'L\'attribut :attribute doit référencer un fichier dans le ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute doit référencer un fichier de type :validTypes, trouvé :foundType.',
'zip_model_expected' => 'Objet de données attendu, mais ":type" trouvé.',
'zip_unique' => 'L\'attribut :attribute doit être unique pour le type d\'objet dans le ZIP.',
diff --git a/lang/he/activities.php b/lang/he/activities.php
index 8dd244b72..e94d53e0d 100644
--- a/lang/he/activities.php
+++ b/lang/he/activities.php
@@ -128,12 +128,12 @@ return [
'comment_delete' => 'תגובה נמחקה',
// Sort Rules
- 'sort_rule_create' => 'created sort rule',
- 'sort_rule_create_notification' => 'Sort rule successfully created',
- 'sort_rule_update' => 'updated sort rule',
- 'sort_rule_update_notification' => 'Sort rule successfully updated',
- 'sort_rule_delete' => 'deleted sort rule',
- 'sort_rule_delete_notification' => 'Sort rule successfully deleted',
+ 'sort_rule_create' => 'נוצר חוק מיון',
+ 'sort_rule_create_notification' => 'חוק מיון נוצר בהצלחה',
+ 'sort_rule_update' => 'חוק מיון עודכן',
+ 'sort_rule_update_notification' => 'חוק מיון עודכן בהצלחה',
+ 'sort_rule_delete' => 'חוק מיון נמחק',
+ 'sort_rule_delete_notification' => 'חוק מיון נמחק בהצלחה',
// Other
'permissions_update' => 'הרשאות עודכנו',
diff --git a/lang/he/auth.php b/lang/he/auth.php
index 2948d5b20..6f4f77223 100644
--- a/lang/he/auth.php
+++ b/lang/he/auth.php
@@ -106,12 +106,13 @@ return [
'mfa_verify_access' => 'אשר גישה',
'mfa_verify_access_desc' => 'חשבון המשתמש שלך דורש ממך לאת את הזהות שלך בשכבת הגנה נוספת על מנת לאפשר לך גישה. יש לאשר גישה דרך אחד האמצעים הקיימים על מנת להמשיך.',
'mfa_verify_no_methods' => 'אין אפשרויות אימות דו-שלבי מוגדרות',
- 'mfa_verify_no_methods_desc' => 'No multi-factor authentication methods could be found for your account. You\'ll need to set up at least one method before you gain access.',
+ 'mfa_verify_no_methods_desc' => 'לא נמצאו אפשרויות ווידוא זהות עבור המשתמש שלך.
+נדרש לקנפג לפחות אחד על מנת לקבל גישה.',
'mfa_verify_use_totp' => 'אמת באמצעות אפליקציה',
'mfa_verify_use_backup_codes' => 'אמת באמצעות קוד גיבוי',
'mfa_verify_backup_code' => 'קוד גיבוי',
'mfa_verify_backup_code_desc' => 'הזן מטה אחד מקודי הגיבוי הנותרים לך:',
'mfa_verify_backup_code_enter_here' => 'הזן קוד גיבוי כאן',
'mfa_verify_totp_desc' => 'הזן את הקוד, שהונפק דרך האפליקציה שלך, מטה:',
- 'mfa_setup_login_notification' => 'Multi-factor method configured, Please now login again using the configured method.',
+ 'mfa_setup_login_notification' => 'אמצעי זיהוי זהות הוגדרו, אנא התחבר מחדש.',
];
diff --git a/lang/he/common.php b/lang/he/common.php
index 2e387f67d..c89ee7782 100644
--- a/lang/he/common.php
+++ b/lang/he/common.php
@@ -30,8 +30,8 @@ return [
'create' => 'צור',
'update' => 'עדכן',
'edit' => 'ערוך',
- 'archive' => 'Archive',
- 'unarchive' => 'Un-Archive',
+ 'archive' => 'הכנס לארכיון',
+ 'unarchive' => 'הוצא מארכיון',
'sort' => 'מיין',
'move' => 'הזז',
'copy' => 'העתק',
diff --git a/lang/he/entities.php b/lang/he/entities.php
index 0cf2bb7fd..d8b264d8b 100644
--- a/lang/he/entities.php
+++ b/lang/he/entities.php
@@ -22,8 +22,8 @@ return [
'meta_created_name' => 'נוצר :timeLength על ידי :user',
'meta_updated' => 'עודכן :timeLength',
'meta_updated_name' => 'עודכן :timeLength על ידי :user',
- 'meta_owned_name' => 'Owned by :user',
- 'meta_reference_count' => 'Referenced by :count item|Referenced by :count items',
+ 'meta_owned_name' => 'בבעלות של :user',
+ 'meta_reference_count' => '',
'entity_select' => 'בחר יישות',
'entity_select_lack_permission' => 'אין לך אישורים דרושים לבחירת פריט זה',
'images' => 'תמונות',
diff --git a/lang/he/errors.php b/lang/he/errors.php
index 75f7949ea..a2bc86ae4 100644
--- a/lang/he/errors.php
+++ b/lang/he/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/he/notifications.php b/lang/he/notifications.php
index 8385c0a6d..cfab57117 100644
--- a/lang/he/notifications.php
+++ b/lang/he/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'עמוד עודכן :pageName',
'updated_page_intro' => 'דף עודכן ב:appName:',
'updated_page_debounce' => 'על מנת לעצור הצפת התראות, לזמן מסוים אתה לא תקבל התראות על שינויים עתידיים בדף זה על ידי אותו עורך.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'שם עמוד:',
'detail_page_path' => 'נתיב לעמוד:',
diff --git a/lang/he/preferences.php b/lang/he/preferences.php
index 9e05eefb3..fa0c89ea5 100644
--- a/lang/he/preferences.php
+++ b/lang/he/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'העדפות קבלת מייל והתראות כאשר מבוצעת פעולה מסויימת במערכת.',
'notifications_opt_own_page_changes' => 'עדכן אותי כאשר מתבצעים שינויים לדפים שבבעלותי',
'notifications_opt_own_page_comments' => 'עדכן אותי כאשר נוספות הערות לדפים שבבעלותי',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'עדכן אותי כאשר מתקבלות תגובות להערות שלי',
'notifications_save' => 'שמור העדפות',
'notifications_update_success' => 'הגדרת התראות עודכנו!',
diff --git a/lang/he/settings.php b/lang/he/settings.php
index 5b405072f..0b5034475 100644
--- a/lang/he/settings.php
+++ b/lang/he/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'אין הגבלה לדומיין',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'תחזוקה',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'שנה עורך עמודים',
'role_notifications' => 'ניהול התראות',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'הרשאות משאבים',
'roles_system_warning' => 'שימו לב לכך שגישה לכל אחת משלושת ההרשאות הנ"ל יכולה לאפשר למשתמש לשנות את הפריווילגיות שלהם או של אחרים במערכת. הגדירו תפקידים להרשאות אלה למשתמשים בהם אתם בוטחים בלבד.',
'role_asset_desc' => 'הרשאות אלו שולטות בגישת ברירת המחדל למשאבים בתוך המערכת. הרשאות של ספרים, פרקים ודפים יגברו על הרשאות אלו.',
'role_asset_admins' => 'מנהלים מקבלים הרשאה מלאה לכל התוכן אך אפשרויות אלו עלולות להציג או להסתיר אפשרויות בממשק',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'הכל',
'role_own' => 'שלי',
'role_controlled_by_asset' => 'נשלטים על ידי המשאב אליו הועלו',
diff --git a/lang/he/validation.php b/lang/he/validation.php
index 2d4f8b305..db2080a2b 100644
--- a/lang/he/validation.php
+++ b/lang/he/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'שדה :attribute ארעה שגיאה בעת ההעלאה.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/hr/errors.php b/lang/hr/errors.php
index 92b9de7d2..ad1b2668f 100644
--- a/lang/hr/errors.php
+++ b/lang/hr/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/hr/notifications.php b/lang/hr/notifications.php
index c3a38cdfa..c9428e2dc 100644
--- a/lang/hr/notifications.php
+++ b/lang/hr/notifications.php
@@ -13,6 +13,8 @@ return [
Ažurirana stranica: :pageName',
'updated_page_intro' => 'Stranica je ažurirana u :appName:',
'updated_page_debounce' => 'Kako biste spriječili velik broj obavijesti, nećete primati obavijesti o daljnjim izmjenama ove stranice od istog urednika neko vrijeme.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Naziv Stranice:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/hr/preferences.php b/lang/hr/preferences.php
index 2f409f8d3..5da5a72fb 100644
--- a/lang/hr/preferences.php
+++ b/lang/hr/preferences.php
@@ -25,6 +25,7 @@ return [
'notifications_opt_own_page_comments' => 'ChatGPT
Obavijesti o komentarima na stranicama koje posjedujem',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Obavijesti o odgovorima na moje komentare',
'notifications_save' => 'Spremi Postavke',
'notifications_update_success' => 'Postavke obavijesti su ažurirane!',
diff --git a/lang/hr/settings.php b/lang/hr/settings.php
index 5f0007426..6465d0ea7 100644
--- a/lang/hr/settings.php
+++ b/lang/hr/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Bez ograničenja',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Održavanje',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Promijeni uređivač stranica',
'role_notifications' => 'Primanje i upravljanje obavijestima',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Upravljanje vlasništvom',
'roles_system_warning' => 'Uzmite u obzir da pristup bilo kojem od ovih dopuštenja dozvoljavate korisniku upravljanje dopuštenjima ostalih u sustavu. Ova dopuštenja dodijelite pouzdanim korisnicima.',
'role_asset_desc' => 'Ova dopuštenja kontroliraju zadane pristupe. Dopuštenja za knjige, poglavlja i stranice ih poništavaju.',
'role_asset_admins' => 'Administratori automatski imaju pristup svim sadržajima, ali ove opcije mogu prikazati ili sakriti korisnička sučelja.',
'role_asset_image_view_note' => 'Ovo se odnosi na vidljivost unutar upravitelja slika. Stvarni pristup uploadiranim slikovnim datotekama ovisit će o odabranim opcijama pohrane slika u sustavu.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Sve',
'role_own' => 'Vlastito',
'role_controlled_by_asset' => 'Kontrolirano od strane vlasnika',
diff --git a/lang/hr/validation.php b/lang/hr/validation.php
index 32b11a9bd..22dae5c56 100644
--- a/lang/hr/validation.php
+++ b/lang/hr/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Datoteka se ne može prenijeti. Server možda ne prihvaća datoteke te veličine.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/hu/errors.php b/lang/hu/errors.php
index 8ee055e29..10e3adbf9 100644
--- a/lang/hu/errors.php
+++ b/lang/hu/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/hu/notifications.php b/lang/hu/notifications.php
index c8cae9143..d8a29688a 100644
--- a/lang/hu/notifications.php
+++ b/lang/hu/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Frissített oldal: :pageName',
'updated_page_intro' => 'Az oldal frissítése sikeres volt itt: :appName:',
'updated_page_debounce' => 'Az értesítések tömegének elkerülése érdekében egy ideig nem kap értesítést az oldal további szerkesztéseiről ugyanaz a szerkesztő.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Oldal neve:',
'detail_page_path' => 'Oldal helye:',
diff --git a/lang/hu/preferences.php b/lang/hu/preferences.php
index 4251a28fb..fb3c335e8 100644
--- a/lang/hu/preferences.php
+++ b/lang/hu/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Állítsd be az e-mail értesítéseket, amelyeket akkor kapsz, ha bizonyos tevékenység történik a rendszeren belül.',
'notifications_opt_own_page_changes' => 'Értesítsen változásokról az általam tulajdonolt oldalakon',
'notifications_opt_own_page_comments' => 'Értesítés a hozzászólásokról az általam tulajdonolt oldalakon',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Értesítsen válaszokról a hozzászólásaimra',
'notifications_save' => 'Beállítások mentése',
'notifications_update_success' => 'Az értesítési beállítások frissítve lettek!',
diff --git a/lang/hu/settings.php b/lang/hu/settings.php
index 813fee7b0..c6810ed68 100644
--- a/lang/hu/settings.php
+++ b/lang/hu/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Nincs beállítva korlátozás',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Karbantartás',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Oldalszerkesztő módosítása',
'role_notifications' => 'Értesítések fogadása és kezelése',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Eszköz jogosultságok',
'roles_system_warning' => 'Ne feledje, hogy a fenti három engedély bármelyikéhez való hozzáférés lehetővé teszi a felhasználó számára, hogy módosítsa saját vagy a rendszerben mások jogosultságait. Csak megbízható felhasználókhoz rendeljen szerepeket ezekkel az engedélyekkel.',
'role_asset_desc' => 'Ezek a jogosultságok vezérlik az alapértelmezés szerinti hozzáférést a rendszerben található eszközökhöz. A könyvek, fejezetek és oldalak jogosultságai felülírják ezeket a jogosultságokat.',
'role_asset_admins' => 'Az adminisztrátorok automatikusan hozzáférést kapnak minden tartalomhoz, de ezek a beállítások megjeleníthetnek vagy elrejthetnek felhasználói felület beállításokat.',
'role_asset_image_view_note' => 'Ez a képkezelőn belüli láthatóságra vonatkozik. A feltöltött képfájlok tényleges elérése a rendszerkép tárolási beállításától függ.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Összes',
'role_own' => 'Saját',
'role_controlled_by_asset' => 'Az általuk feltöltött eszköz által ellenőrzött',
diff --git a/lang/hu/validation.php b/lang/hu/validation.php
index a215416ca..b740ca0c6 100644
--- a/lang/hu/validation.php
+++ b/lang/hu/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'A fájlt nem lehet feltölteni. A kiszolgáló nem fogad el ilyen méretű fájlokat.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/id/components.php b/lang/id/components.php
index 45aa72fba..6f1f905a4 100644
--- a/lang/id/components.php
+++ b/lang/id/components.php
@@ -13,7 +13,7 @@ return [
'image_intro_upload' => 'Unggah gambar baru dengan menyeret berkas gambar ke jendela ini, atau dengan menggunakan tombol "Unggah Gambar" di atas.',
'image_all' => 'Semua',
'image_all_title' => 'Lihat semua gambar',
- 'image_book_title' => 'Lihat gambar yang diunggah ke buku ini',
+ 'image_book_title' => 'Lihat gambar untuk diunggah ke buku ini',
'image_page_title' => 'Lihat gambar yang diunggah ke halaman ini',
'image_search_hint' => 'Cari berdasarkan nama gambar',
'image_uploaded' => 'Diunggah :uploadedDate',
@@ -33,7 +33,7 @@ return [
'image_update_success' => 'Detail gambar berhasil diperbarui',
'image_delete_success' => 'Gambar berhasil dihapus',
'image_replace' => 'Ganti Gambar',
- 'image_replace_success' => 'Berkas gambar berhasil diperbarui',
+ 'image_replace_success' => 'Detail gambar berhasil diperbarui',
'image_rebuild_thumbs' => 'Buat Ulang Variasi Ukuran',
'image_rebuild_thumbs_success' => 'Variasi ukuran gambar berhasil dibuat ulang!',
diff --git a/lang/id/errors.php b/lang/id/errors.php
index 6f7661738..772547831 100644
--- a/lang/id/errors.php
+++ b/lang/id/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Tidak dapat membaca berkas ZIP.',
'import_zip_cant_decode_data' => 'Tidak dapat menemukan dan mendekode konten ZIP data.json.',
'import_zip_no_data' => 'Data berkas ZIP tidak berisi konten buku, bab, atau halaman yang diharapkan.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Impor ZIP gagal divalidasi dengan kesalahan:',
'import_zip_failed_notification' => 'Gagal mengimpor berkas ZIP.',
'import_perms_books' => 'Anda tidak memiliki izin yang diperlukan untuk membuat buku.',
diff --git a/lang/id/notifications.php b/lang/id/notifications.php
index b22af1f73..7b9d2181a 100644
--- a/lang/id/notifications.php
+++ b/lang/id/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Halaman yang diperbarui: :pageName',
'updated_page_intro' => 'Halaman telah diperbarui di :appName:',
'updated_page_debounce' => 'Untuk mencegah banyaknya pemberitahuan, untuk sementara Anda tidak akan dikirimi pemberitahuan untuk pengeditan lebih lanjut pada halaman ini oleh editor yang sama.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Nama Halaman:',
'detail_page_path' => 'Jalur Halaman:',
diff --git a/lang/id/passwords.php b/lang/id/passwords.php
index 3ee2e4d57..2559b2651 100644
--- a/lang/id/passwords.php
+++ b/lang/id/passwords.php
@@ -6,7 +6,7 @@
*/
return [
- 'password' => 'Kata sandi harus setidaknya delapan karakter dan sesuai dengan konfirmasi.',
+ 'password' => 'Passwords must be at least eight characters and match the confirmation.',
'user' => "Kami tidak dapat menemukan pengguna dengan alamat email tersebut.",
'token' => 'Token setel ulang sandi tidak valid untuk alamat email ini.',
'sent' => 'Kami telah mengirimkan email tautan pengaturan ulang kata sandi Anda!',
diff --git a/lang/id/preferences.php b/lang/id/preferences.php
index 2872f5f3c..1c7d4248d 100644
--- a/lang/id/preferences.php
+++ b/lang/id/preferences.php
@@ -5,16 +5,16 @@
*/
return [
- 'my_account' => 'My Account',
+ 'my_account' => 'Akun Saya',
- 'shortcuts' => 'Shortcuts',
+ 'shortcuts' => 'Pintasan',
'shortcuts_interface' => 'UI Shortcut Preferences',
'shortcuts_toggle_desc' => 'Here you can enable or disable keyboard system interface shortcuts, used for navigation and actions.',
'shortcuts_customize_desc' => 'You can customize each of the shortcuts below. Just press your desired key combination after selecting the input for a shortcut.',
'shortcuts_toggle_label' => 'Keyboard shortcuts enabled',
- 'shortcuts_section_navigation' => 'Navigation',
+ 'shortcuts_section_navigation' => 'Navigasi',
'shortcuts_section_actions' => 'Common Actions',
- 'shortcuts_save' => 'Save Shortcuts',
+ 'shortcuts_save' => 'Simpan Pintasan',
'shortcuts_overlay_desc' => 'Note: When shortcuts are enabled a helper overlay is available via pressing "?" which will highlight the available shortcuts for actions currently visible on the screen.',
'shortcuts_update_success' => 'Shortcut preferences have been updated!',
'shortcuts_overview_desc' => 'Manage keyboard shortcuts you can use to navigate the system user interface.',
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
@@ -30,7 +31,7 @@ return [
'notifications_watched_desc' => 'Below are the items that have custom watch preferences applied. To update your preferences for these, view the item then find the watch options in the sidebar.',
'auth' => 'Access & Security',
- 'auth_change_password' => 'Change Password',
+ 'auth_change_password' => 'Ubah Kata Sandi',
'auth_change_password_desc' => 'Change the password you use to log-in to the application. This must be at least 8 characters long.',
'auth_change_password_success' => 'Password has been updated!',
diff --git a/lang/id/settings.php b/lang/id/settings.php
index 51c0613cb..cc9426683 100644
--- a/lang/id/settings.php
+++ b/lang/id/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Tidak ada batasan yang ditetapkan',
// Sorting Settings
- 'sorting' => 'Menyortir',
- 'sorting_book_default' => 'Penyortiran Buku Default',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Pilih aturan sortir default yang akan diterapkan pada buku baru. Aturan ini tidak akan memengaruhi buku yang sudah ada, dan dapat diganti per buku.',
'sorting_rules' => 'Aturan Penyortiran',
'sorting_rules_desc' => 'Ini adalah operasi penyortiran yang telah ditetapkan sebelumnya yang dapat diterapkan pada konten dalam sistem.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Tanggal Pembaruan',
'sort_rule_op_chapters_first' => 'Bab di Urutan Pertama',
'sort_rule_op_chapters_last' => 'Bab di Urutan Terakhir',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Pemeliharaan',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Impor Konten',
'role_editor_change' => 'Ubah editor halaman',
'role_notifications' => 'Terima dan kelola notifikasi',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Izin Aset',
'roles_system_warning' => 'Ketahuilah bahwa akses ke salah satu dari tiga izin di atas dapat memungkinkan pengguna untuk mengubah hak mereka sendiri atau orang lain dalam sistem. Hanya tetapkan peran dengan izin ini untuk pengguna tepercaya.',
'role_asset_desc' => 'Izin ini mengontrol akses default ke aset dalam sistem. Izin pada Buku, Bab, dan Halaman akan menggantikan izin ini.',
'role_asset_admins' => 'Admin secara otomatis diberi akses ke semua konten tetapi opsi ini dapat menampilkan atau menyembunyikan opsi UI.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Semua',
'role_own' => 'Sendiri',
'role_controlled_by_asset' => 'Dikendalikan oleh aset tempat mereka diunggah',
diff --git a/lang/id/validation.php b/lang/id/validation.php
index d5ccb2709..b649ef6fe 100644
--- a/lang/id/validation.php
+++ b/lang/id/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Berkas tidak dapat diunggah. Server mungkin tidak menerima berkas dengan ukuran ini.',
'zip_file' => ':attribute perlu merujuk ke sebuah file yang terdapat di dalam arsip ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute seharusnya berupa file dengan tipe :validTypes, tapi yang Anda unggah bertipe :foundType.',
'zip_model_expected' => 'Diharapkan sebuah objek data, namun yang ditemukan adalah \':type\'.',
'zip_unique' => ':attribute harus bersifat unik untuk setiap jenis objek dalam file ZIP.',
diff --git a/lang/is/errors.php b/lang/is/errors.php
index 50e30a8c5..a29c8475a 100644
--- a/lang/is/errors.php
+++ b/lang/is/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Gat ekki lesið ZIP skrá.',
'import_zip_cant_decode_data' => 'Fann ekki ZIP data.json innihald.',
'import_zip_no_data' => 'ZIP skráin inniheldur ekkert efni.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'ZIP skráin stóðst ekki staðfestingu og skilaði villu:',
'import_zip_failed_notification' => 'Gat ekki lesið inn ZIP skrá.',
'import_perms_books' => 'Þú hefur ekki heimild til að búa til bækur.',
diff --git a/lang/is/notifications.php b/lang/is/notifications.php
index b4fe01ad7..956fc7432 100644
--- a/lang/is/notifications.php
+++ b/lang/is/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Uppfærð síða á: :pageName',
'updated_page_intro' => 'Síða hefur verið uppfærð á :appName:',
'updated_page_debounce' => 'Til að fyrirbyggja fjöldatilkynningar verður þér ekki sendar tilkynningar í smá stund um uppfærslu á þessari síðu frá sama höfundi.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Síðunafn:',
'detail_page_path' => 'Síðuslóð:',
diff --git a/lang/is/preferences.php b/lang/is/preferences.php
index b7ebc2df0..b6f261deb 100644
--- a/lang/is/preferences.php
+++ b/lang/is/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Stýrðu þeim tölvupóst tilkynningum sem þú færð þegar ákveðnar aðgerðir eru gerðar af kerfinu.',
'notifications_opt_own_page_changes' => 'Láta vita þegar gerðar eru breytingar á síðum sem ég á',
'notifications_opt_own_page_comments' => 'Láta vita þegar gerðar eru athugasmedir við síður sem ég á',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Láta vita þegar athugasemdum mínum er svarað',
'notifications_save' => 'Vista stillingar',
'notifications_update_success' => 'Stillingar á tilkynningum hafa verið uppfærðar!',
diff --git a/lang/is/settings.php b/lang/is/settings.php
index 3765db061..5699c88d6 100644
--- a/lang/is/settings.php
+++ b/lang/is/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Engin skilyrði sett',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Viðhald',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Flytja inn efni',
'role_editor_change' => 'Skipta um ritil síðu',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Allt',
'role_own' => 'Eigin',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/is/validation.php b/lang/is/validation.php
index 9183d27cf..7f2af0f08 100644
--- a/lang/is/validation.php
+++ b/lang/is/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/it/errors.php b/lang/it/errors.php
index b3763cce2..62b698acc 100644
--- a/lang/it/errors.php
+++ b/lang/it/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Impossibile leggere il file ZIP.',
'import_zip_cant_decode_data' => 'Impossibile trovare e decodificare il contenuto ZIP data.json.',
'import_zip_no_data' => 'I dati del file ZIP non hanno il contenuto previsto di libri, capitoli o pagine.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'L\'importazione ZIP non è stata convalidata con errori:',
'import_zip_failed_notification' => 'Impossibile importare il file ZIP.',
'import_perms_books' => 'Non hai i permessi necessari per creare libri.',
diff --git a/lang/it/notifications.php b/lang/it/notifications.php
index 6b8932ebe..a4e57abdf 100644
--- a/lang/it/notifications.php
+++ b/lang/it/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Pagina aggiornata: :pageName',
'updated_page_intro' => 'Una pagina è stata aggiornata in :appName:',
'updated_page_debounce' => 'Per evitare una massa di notifiche, per un po\' non ti verranno inviate notifiche per ulteriori modifiche a questa pagina dallo stesso editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Nome della pagina:',
'detail_page_path' => 'Percorso della pagina:',
diff --git a/lang/it/preferences.php b/lang/it/preferences.php
index f25138401..db6b90754 100644
--- a/lang/it/preferences.php
+++ b/lang/it/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Controlla le notifiche email che ricevi quando viene eseguita una determinata attività all\'interno del sistema.',
'notifications_opt_own_page_changes' => 'Notifica in caso di modifiche alle pagine che possiedo',
'notifications_opt_own_page_comments' => 'Notifica i commenti sulle pagine che possiedo',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notificare le risposte ai miei commenti',
'notifications_save' => 'Salva preferenze',
'notifications_update_success' => 'Le preferenze di notifica sono state aggiornate!',
diff --git a/lang/it/settings.php b/lang/it/settings.php
index 8bda7f8ff..9f2d882af 100644
--- a/lang/it/settings.php
+++ b/lang/it/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Nessuna restrizione impostata',
// Sorting Settings
- 'sorting' => 'Ordinamento',
- 'sorting_book_default' => 'Ordinamento libri predefinito',
+ 'sorting' => 'Elenchi E Ordinamento',
+ 'sorting_book_default' => 'Regola Di Ordinamento Libro Predefinita',
'sorting_book_default_desc' => 'Selezionare la regola di ordinamento predefinita da applicare ai nuovi libri. Questa regola non influisce sui libri esistenti e può essere modificata per ogni libro.',
'sorting_rules' => 'Regole di ordinamento',
'sorting_rules_desc' => 'Si tratta di operazioni di ordinamento predefinite applicabili ai contenuti del sistema.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Data di aggiornamento',
'sort_rule_op_chapters_first' => 'Capitoli Prima',
'sort_rule_op_chapters_last' => 'Capitoli dopo',
+ 'sorting_page_limits' => 'Limiti Visualizzazione Per Pagina',
+ 'sorting_page_limits_desc' => 'Imposta il numero di elementi da visualizzare per pagina nei vari elenchi all\'interno del sistema. In genere, un numero inferiore garantisce prestazioni migliori, mentre un numero più elevato evita la necessità di cliccare su più pagine. Si consiglia di utilizzare un multiplo pari di 3 (18, 24, 30, ecc...).',
// Maintenance settings
'maint' => 'Manutenzione',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Importa contenuto',
'role_editor_change' => 'Cambiare editor di pagina',
'role_notifications' => 'Ricevere e gestire le notifiche',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Permessi entità',
'roles_system_warning' => 'Siate consapevoli che l\'accesso a uno dei tre permessi qui sopra può consentire a un utente di modificare i propri privilegi o i privilegi di altri nel sistema. Assegna ruoli con questi permessi solo ad utenti fidati.',
'role_asset_desc' => 'Questi permessi controllano l\'accesso predefinito alle entità. I permessi in libri, capitoli e pagine sovrascriveranno questi.',
'role_asset_admins' => 'Gli amministratori hanno automaticamente accesso a tutti i contenuti ma queste opzioni possono mostrare o nascondere le opzioni della UI.',
'role_asset_image_view_note' => 'Questo si riferisce alla visibilità all\'interno del gestore delle immagini. L\'accesso effettivo ai file di immagine caricati dipenderà dall\'opzione di archiviazione delle immagini di sistema.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Tutti',
'role_own' => 'Propri',
'role_controlled_by_asset' => 'Controllato dall\'entità in cui sono caricati',
diff --git a/lang/it/validation.php b/lang/it/validation.php
index c945ff7d4..54ef4dba6 100644
--- a/lang/it/validation.php
+++ b/lang/it/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Il file non può essere caricato. Il server potrebbe non accettare file di questa dimensione.',
'zip_file' => 'L\'attributo :attribute deve fare riferimento a un file all\'interno dello ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'Il campo :attribute deve fare riferimento a un file di tipo :validTypes, trovato :foundType.',
'zip_model_expected' => 'Oggetto dati atteso ma ":type" trovato.',
'zip_unique' => 'L\'attributo :attribute deve essere univoco per il tipo di oggetto all\'interno dello ZIP.',
diff --git a/lang/ja/entities.php b/lang/ja/entities.php
index eed0c92ca..551a2e496 100644
--- a/lang/ja/entities.php
+++ b/lang/ja/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'アップロードされたインポートZIPファイルは削除され、元に戻すことはできません。',
'import_errors' => 'インポートエラー',
'import_errors_desc' => 'インポート中に次のエラーが発生しました:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => '階層内のページ',
+ 'breadcrumb_siblings_for_chapter' => '階層内のチャプタ',
+ 'breadcrumb_siblings_for_book' => '階層内のブック',
+ 'breadcrumb_siblings_for_bookshelf' => '階層内の棚',
// Permissions and restrictions
'permissions' => '権限',
diff --git a/lang/ja/errors.php b/lang/ja/errors.php
index 8161c08b8..443a810f9 100644
--- a/lang/ja/errors.php
+++ b/lang/ja/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'ZIPファイルを読み込めません。',
'import_zip_cant_decode_data' => 'ZIPファイル内に data.json が見つからないかデコードできませんでした。',
'import_zip_no_data' => 'ZIPファイルのデータにブック、チャプター、またはページコンテンツがありません。',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'エラーによりインポートZIPの検証に失敗しました:',
'import_zip_failed_notification' => 'ZIP ファイルのインポートに失敗しました。',
'import_perms_books' => 'ブックを作成するために必要な権限がありません。',
diff --git a/lang/ja/notifications.php b/lang/ja/notifications.php
index 6fc0321d3..ea6286b51 100644
--- a/lang/ja/notifications.php
+++ b/lang/ja/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'ページの更新: :pageName',
'updated_page_intro' => ':appName でページが更新されました',
'updated_page_debounce' => '大量の通知を防ぐために、しばらくの間は同じユーザがこのページをさらに編集しても通知は送信されません。',
+ 'comment_mention_subject' => 'ページのコメントであなたにメンションされています: :pageName',
+ 'comment_mention_intro' => ':appName: のコメントであなたにメンションされました',
'detail_page_name' => 'ページ名:',
'detail_page_path' => 'ページパス:',
diff --git a/lang/ja/preferences.php b/lang/ja/preferences.php
index 0207596a9..c74518393 100644
--- a/lang/ja/preferences.php
+++ b/lang/ja/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'システム内で特定のアクティビティが実行されたときに受信する電子メール通知を制御します。',
'notifications_opt_own_page_changes' => '自分が所有するページの変更を通知する',
'notifications_opt_own_page_comments' => '自分が所有するページへのコメントを通知する',
+ 'notifications_opt_comment_mentions' => 'コメントでメンションされたときに通知する',
'notifications_opt_comment_replies' => '自分のコメントへの返信を通知する',
'notifications_save' => '設定を保存',
'notifications_update_success' => '通知設定を更新しました。',
diff --git a/lang/ja/settings.php b/lang/ja/settings.php
index db14f3ccc..53b14233e 100644
--- a/lang/ja/settings.php
+++ b/lang/ja/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => '制限しない',
// Sorting Settings
- 'sorting' => 'ソート',
- 'sorting_book_default' => 'ブックのデフォルトソート',
+ 'sorting' => '一覧とソート',
+ 'sorting_book_default' => 'ブックのデフォルトソートルール',
'sorting_book_default_desc' => '新しいブックに適用するデフォルトのソートルールを選択します。これは既存のブックには影響しません。ルールはブックごとに上書きすることができます。',
'sorting_rules' => 'ソートルール',
'sorting_rules_desc' => 'これらはシステム内のコンテンツに適用できる事前定義のソート操作です。',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => '更新日時',
'sort_rule_op_chapters_first' => 'チャプタを最初に',
'sort_rule_op_chapters_last' => 'チャプタを最後に',
+ 'sorting_page_limits' => 'ページング表示制限',
+ 'sorting_page_limits_desc' => 'システム内の各種リストで1ページに表示するアイテム数を設定します。 通常、少ない数に設定するとパフォーマンスが向上し、多い数に設定するとページの移動操作が少なくなります。 3の倍数(18、24、30など)を使用することをお勧めします。',
// Maintenance settings
'maint' => 'メンテナンス',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'コンテンツのインポート',
'role_editor_change' => 'ページエディタの変更',
'role_notifications' => '通知の受信と管理',
+ 'role_permission_note_users_and_roles' => '技術的には、これらの権限によりシステムのユーザーおよび役割の可視性と検索も提供されます。',
'role_asset' => 'アセット権限',
'roles_system_warning' => '上記の3つの権限のいずれかを付与することは、ユーザーが自分の特権またはシステム内の他のユーザーの特権を変更できる可能性があることに注意してください。これらの権限は信頼できるユーザーにのみ割り当ててください。',
'role_asset_desc' => '各アセットに対するデフォルトの権限を設定します。ここで設定した権限が優先されます。',
'role_asset_admins' => '管理者にはすべてのコンテンツへのアクセス権が自動的に付与されますが、これらのオプションはUIオプションを表示または非表示にする場合があります。',
'role_asset_image_view_note' => 'これは画像マネージャー内の可視性に関連しています。アップロードされた画像ファイルへの実際のアクセスは、システムの画像保存オプションに依存します。',
+ 'role_asset_users_note' => '技術的には、これらの権限によりシステム内のユーザーの可視性と検索も提供されます。',
'role_all' => '全て',
'role_own' => '自身',
'role_controlled_by_asset' => 'このアセットに対し、右記の操作を許可:',
diff --git a/lang/ja/validation.php b/lang/ja/validation.php
index 7d18c85be..0efbc7d68 100644
--- a/lang/ja/validation.php
+++ b/lang/ja/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'ファイルをアップロードできませんでした。サーバーがこのサイズのファイルを受け付けていない可能性があります。',
'zip_file' => ':attribute はZIP 内のファイルを参照する必要があります。',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute は種別 :validType のファイルを参照する必要がありますが、種別 :foundType となっています。',
'zip_model_expected' => 'データオブジェクトが期待されますが、":type" が見つかりました。',
'zip_unique' => 'ZIP内のオブジェクトタイプに :attribute が一意である必要があります。',
diff --git a/lang/ka/errors.php b/lang/ka/errors.php
index 9d7383796..77d7ee69e 100644
--- a/lang/ka/errors.php
+++ b/lang/ka/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/ka/notifications.php b/lang/ka/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/ka/notifications.php
+++ b/lang/ka/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/ka/preferences.php b/lang/ka/preferences.php
index 2872f5f3c..f4459d738 100644
--- a/lang/ka/preferences.php
+++ b/lang/ka/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/ka/settings.php b/lang/ka/settings.php
index 81c2c0a93..c68605fe1 100644
--- a/lang/ka/settings.php
+++ b/lang/ka/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Maintenance',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'All',
'role_own' => 'Own',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/ka/validation.php b/lang/ka/validation.php
index d9b982d1e..ff028525d 100644
--- a/lang/ka/validation.php
+++ b/lang/ka/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/ko/errors.php b/lang/ko/errors.php
index 9639a5036..12ee2697a 100644
--- a/lang/ko/errors.php
+++ b/lang/ko/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'ZIP 파일을 읽을 수 없습니다.',
'import_zip_cant_decode_data' => 'ZIP data.json 콘텐츠를 찾아서 디코딩할 수 없습니다.',
'import_zip_no_data' => '컨텐츠 ZIP 파일 데이터에 데이터가 비어있습니다.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => '컨텐츠 ZIP 파일을 가져오려다 실패했습니다. 이유:',
'import_zip_failed_notification' => '컨텐츠 ZIP 파일을 가져오지 못했습니다.',
'import_perms_books' => '책을 만드는 데 필요한 권한이 없습니다.',
diff --git a/lang/ko/notifications.php b/lang/ko/notifications.php
index b337fa86d..a5abcf0f9 100644
--- a/lang/ko/notifications.php
+++ b/lang/ko/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => '페이지 업데이트됨: :pageName',
'updated_page_intro' => ':appName: 에서 페이지가 업데이트되었습니다:',
'updated_page_debounce' => '알림이 한꺼번에 몰리는 것을 방지하기 위해 당분간 동일한 편집자가 이 페이지를 추가로 편집할 경우 알림이 전송되지 않습니다.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => '페이지 이름:',
'detail_page_path' => '페이지 경로:',
diff --git a/lang/ko/preferences.php b/lang/ko/preferences.php
index 79692f564..1979a23e4 100644
--- a/lang/ko/preferences.php
+++ b/lang/ko/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => '시스템 내에서 특정 활동이 수행될 때 수신하는 이메일 알림을 제어합니다.',
'notifications_opt_own_page_changes' => '내가 소유한 페이지가 변경되면 알림 받기',
'notifications_opt_own_page_comments' => '내가 소유한 페이지에 댓글이 달렸을 때 알림 받기',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => '내 댓글에 대한 답글 알림 받기',
'notifications_save' => '환경설정 저장',
'notifications_update_success' => '알림 환경설정이 업데이트되었습니다!',
diff --git a/lang/ko/settings.php b/lang/ko/settings.php
index 797c12043..1138b0ece 100644
--- a/lang/ko/settings.php
+++ b/lang/ko/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => '차단한 도메인 없음',
// Sorting Settings
- 'sorting' => '정렬',
- 'sorting_book_default' => '기본 책 정렬',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => '새로운 책에 적용할 기본 정렬 규칙을 선택하세요. 이 선택은 기존 책에는 영향을 주지 않고, 기존 책의 설정은 책마다 변경할 수 있습니다.',
'sorting_rules' => '정렬 규칙',
'sorting_rules_desc' => '현재 시스템에 미리 정의된 정렬 규칙의 목록입니다.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => '수정일',
'sort_rule_op_chapters_first' => '챕터 우선 정렬',
'sort_rule_op_chapters_last' => '챕터 나중 정렬',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => '유지관리',
@@ -195,11 +197,13 @@ return [
'role_import_content' => '내용 가져오기',
'role_editor_change' => '페이지 편집기 변경',
'role_notifications' => '알림 수신 및 관리',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => '권한 항목',
'roles_system_warning' => '위 세 권한은 자신의 권한이나 다른 유저의 권한을 바꿀 수 있습니다.',
'role_asset_desc' => '책, 챕터, 문서별 권한은 이 설정에 우선합니다.',
'role_asset_admins' => '관리자 권한은 어디든 접근할 수 있지만 이 설정은 사용자 인터페이스에서 해당 활동을 표시할지 결정합니다.',
'role_asset_image_view_note' => '이는 이미지 관리자 내 가시성과 관련이 있습니다. 업로드된 이미지 파일의 실제 접근은 시스템의 이미지 저장 설정에 따라 달라집니다.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => '모든 항목',
'role_own' => '직접 만든 항목',
'role_controlled_by_asset' => '저마다 다름',
diff --git a/lang/ko/validation.php b/lang/ko/validation.php
index ef7361ff9..a60ac2f21 100644
--- a/lang/ko/validation.php
+++ b/lang/ko/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => '파일 크기가 서버에서 허용하는 수치를 넘습니다.',
'zip_file' => ':attribute은(는) 컨텐츠 ZIP 파일 내의 객체 유형에 대해 고유해야 합니다.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute은(는) :validTypes, found :foundType 유형의 파일을 참조해야 합니다.',
'zip_model_expected' => '데이터 객체가 필요하지만 ":type" 타입이 발견되었습니다.',
'zip_unique' => ':attribute은(는) 컨텐츠 ZIP 파일 내의 객체 유형에 대해 고유해야 합니다.',
diff --git a/lang/ku/errors.php b/lang/ku/errors.php
index 9d7383796..77d7ee69e 100644
--- a/lang/ku/errors.php
+++ b/lang/ku/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/ku/notifications.php b/lang/ku/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/ku/notifications.php
+++ b/lang/ku/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/ku/preferences.php b/lang/ku/preferences.php
index 2872f5f3c..f4459d738 100644
--- a/lang/ku/preferences.php
+++ b/lang/ku/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/ku/settings.php b/lang/ku/settings.php
index 81c2c0a93..c68605fe1 100644
--- a/lang/ku/settings.php
+++ b/lang/ku/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Maintenance',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'All',
'role_own' => 'Own',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/ku/validation.php b/lang/ku/validation.php
index d9b982d1e..ff028525d 100644
--- a/lang/ku/validation.php
+++ b/lang/ku/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/lt/editor.php b/lang/lt/editor.php
index 0d250e9a7..054190819 100644
--- a/lang/lt/editor.php
+++ b/lang/lt/editor.php
@@ -37,7 +37,7 @@ return [
'blockquote' => 'Blockquote',
'inline_code' => 'Inline code',
'callouts' => 'Callouts',
- 'callout_information' => 'Information',
+ 'callout_information' => 'Informacija',
'callout_success' => 'Success',
'callout_warning' => 'Warning',
'callout_danger' => 'Danger',
@@ -61,7 +61,7 @@ return [
'list_task' => 'Task list',
'indent_increase' => 'Increase indent',
'indent_decrease' => 'Decrease indent',
- 'table' => 'Table',
+ 'table' => 'Lentelė',
'insert_image' => 'Insert image',
'insert_image_title' => 'Insert/Edit Image',
'insert_link' => 'Insert/edit link',
@@ -150,11 +150,11 @@ return [
'text_to_display' => 'Text to display',
'title' => 'Title',
'browse_links' => 'Browse links',
- 'open_link' => 'Open link',
- 'open_link_in' => 'Open link in...',
+ 'open_link' => 'Atverti nuorodą',
+ 'open_link_in' => 'Atverti nuorodą...',
'open_link_current' => 'Current window',
- 'open_link_new' => 'New window',
- 'remove_link' => 'Remove link',
+ 'open_link_new' => 'Naujame lange',
+ 'remove_link' => 'Pašalinti nuorodą',
'insert_collapsible' => 'Insert collapsible block',
'collapsible_unwrap' => 'Unwrap',
'edit_label' => 'Edit label',
@@ -163,14 +163,14 @@ return [
'toggle_label' => 'Toggle label',
// About view
- 'about' => 'About the editor',
- 'about_title' => 'About the WYSIWYG Editor',
+ 'about' => 'Apie redaktorių',
+ 'about_title' => 'Apie WYSIWYG redaktorių',
'editor_license' => 'Editor License & Copyright',
'editor_lexical_license' => 'This editor is built as a fork of :lexicalLink which is distributed under the MIT license.',
'editor_lexical_license_link' => 'Full license details can be found here.',
'editor_tiny_license' => 'This editor is built using :tinyLink which is provided under the MIT license.',
'editor_tiny_license_link' => 'The copyright and license details of TinyMCE can be found here.',
- 'save_continue' => 'Save Page & Continue',
+ 'save_continue' => 'Išsaugoti puslapį ir tęsti',
'callouts_cycle' => '(Keep pressing to toggle through types)',
'link_selector' => 'Link to content',
'shortcuts' => 'Shortcuts',
diff --git a/lang/lt/entities.php b/lang/lt/entities.php
index 562456781..6c4472d85 100644
--- a/lang/lt/entities.php
+++ b/lang/lt/entities.php
@@ -416,7 +416,7 @@ return [
'comment_jump_to_thread' => 'Jump to thread',
'comment_delete_confirm' => 'Esate tikri, kad norite ištrinti šį komentarą?',
'comment_in_reply_to' => 'Atsakydamas į :commentId',
- 'comment_reference' => 'Reference',
+ 'comment_reference' => 'Nuoroda',
'comment_reference_outdated' => '(Outdated)',
'comment_editor_explain' => 'Here are the comments that have been left on this page. Comments can be added & managed when viewing the saved page.',
@@ -446,7 +446,7 @@ return [
'convert_chapter_confirm' => 'Are you sure you want to convert this chapter?',
// References
- 'references' => 'References',
+ 'references' => 'Nuorodos',
'references_none' => 'There are no tracked references to this item.',
'references_to_desc' => 'Listed below is all the known content in the system that links to this item.',
diff --git a/lang/lt/errors.php b/lang/lt/errors.php
index 392e99a51..f2917058e 100644
--- a/lang/lt/errors.php
+++ b/lang/lt/errors.php
@@ -23,7 +23,7 @@ return [
'saml_no_email_address' => 'Nerandamas šio naudotojo elektroninio pašto adresas išorinės autentifikavimo sistemos pateiktuose duomenyse',
'saml_invalid_response_id' => 'Prašymas iš išorinės autentifikavimo sistemos nėra atpažintas proceso, kurį pradėjo ši programa. Naršymas po prisijungimo gali sukelti šią problemą.',
'saml_fail_authed' => 'Prisijungimas, naudojant :system nepavyko, sistema nepateikė sėkmingo leidimo.',
- 'oidc_already_logged_in' => 'Already logged in',
+ 'oidc_already_logged_in' => 'Jau prisijungta',
'oidc_no_email_address' => 'Could not find an email address, for this user, in the data provided by the external authentication system',
'oidc_fail_authed' => 'Login using :system failed, system did not provide successful authorization',
'social_no_action_defined' => 'Neapibrėžtas joks veiksmas',
@@ -97,7 +97,7 @@ return [
'404_page_not_found' => 'Puslapis nerastas',
'sorry_page_not_found' => 'Atleiskite, puslapis, kurio ieškote, nerastas.',
'sorry_page_not_found_permission_warning' => 'Jei tikėjotės, kad šis puslapis egzistuoja, galbūt neturite leidimo jo peržiūrėti.',
- 'image_not_found' => 'Image Not Found',
+ 'image_not_found' => 'Paveikslėlis nerastas',
'image_not_found_subtitle' => 'Sorry, The image file you were looking for could not be found.',
'image_not_found_details' => 'If you expected this image to exist it might have been deleted.',
'return_home' => 'Grįžti į namus',
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/lt/notifications.php b/lang/lt/notifications.php
index 1afd23f1d..5f938c397 100644
--- a/lang/lt/notifications.php
+++ b/lang/lt/notifications.php
@@ -6,21 +6,23 @@ return [
'new_comment_subject' => 'New comment on page: :pageName',
'new_comment_intro' => 'A user has commented on a page in :appName:',
- 'new_page_subject' => 'New page: :pageName',
+ 'new_page_subject' => 'Naujas puslapis: :pageName',
'new_page_intro' => 'A new page has been created in :appName:',
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
- 'detail_page_name' => 'Page Name:',
+ 'detail_page_name' => 'Puslapio pavadinimas:',
'detail_page_path' => 'Page Path:',
'detail_commenter' => 'Commenter:',
- 'detail_comment' => 'Comment:',
- 'detail_created_by' => 'Created By:',
- 'detail_updated_by' => 'Updated By:',
+ 'detail_comment' => 'Komentaras:',
+ 'detail_created_by' => 'Sukurta:',
+ 'detail_updated_by' => 'Atnaujinta:',
'action_view_comment' => 'View Comment',
- 'action_view_page' => 'View Page',
+ 'action_view_page' => 'Peržiūrėti puslapį',
'footer_reason' => 'This notification was sent to you because :link cover this type of activity for this item.',
'footer_reason_link' => 'your notification preferences',
diff --git a/lang/lt/passwords.php b/lang/lt/passwords.php
index 672620d35..e661c020f 100644
--- a/lang/lt/passwords.php
+++ b/lang/lt/passwords.php
@@ -7,9 +7,9 @@
return [
'password' => 'Slaptažodis privalo būti mažiausiai aštuonių simbolių ir atitikti patvirtinimą.',
- 'user' => "We can't find a user with that e-mail address.",
+ 'user' => "Nerastas vartotojas pagal šį el. pašto adresą.",
'token' => 'Slaptažodžio nustatymo raktas yra neteisingas šiam elektroninio pašto adresui.',
- 'sent' => 'Elektroniu paštu jums atsiuntėme slaptažodžio atkūrimo nuorodą!',
+ 'sent' => 'Elektroniniu paštu Jums išsiųsta slaptažodžio atkūrimo nuoroda!',
'reset' => 'Jūsų slaptažodis buvo atkurtas!',
];
diff --git a/lang/lt/preferences.php b/lang/lt/preferences.php
index 5c38d191c..7f591cdab 100644
--- a/lang/lt/preferences.php
+++ b/lang/lt/preferences.php
@@ -23,8 +23,9 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
- 'notifications_save' => 'Save Preferences',
+ 'notifications_save' => 'Išsaugoti nuostatas',
'notifications_update_success' => 'Notification preferences have been updated!',
'notifications_watched' => 'Watched & Ignored Items',
'notifications_watched_desc' => 'Below are the items that have custom watch preferences applied. To update your preferences for these, view the item then find the watch options in the sidebar.',
diff --git a/lang/lt/settings.php b/lang/lt/settings.php
index 563038bf2..bcc7c82bd 100644
--- a/lang/lt/settings.php
+++ b/lang/lt/settings.php
@@ -9,8 +9,8 @@ return [
// Common Messages
'settings' => 'Nustatymai',
'settings_save' => 'Išsaugoti nustatymus',
- 'system_version' => 'System Version',
- 'categories' => 'Categories',
+ 'system_version' => 'Sistemos versija',
+ 'categories' => 'Kategorijos',
// App Settings
'app_customization' => 'Tinkinimas',
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Nėra jokių apribojimų',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Priežiūra',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Nuosavybės leidimai',
'roles_system_warning' => 'Būkite sąmoningi, kad prieiga prie bet kurio iš trijų leidimų viršuje gali leisti naudotojui pakeisti jų pačių privilegijas arba kitų privilegijas sistemoje. Paskirkite vaidmenis su šiais leidimais tik patikimiems naudotojams.',
'role_asset_desc' => 'Šie leidimai kontroliuoja numatytą prieigą į nuosavybę, esančią sistemoje. Knygų, skyrių ir puslapių leidimai nepaisys šių leidimų.',
'role_asset_admins' => 'Administratoriams automatiškai yra suteikiama prieiga prie viso turinio, tačiau šie pasirinkimai gali rodyti arba slėpti vartotojo sąsajos parinktis.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Visi',
'role_own' => 'Nuosavi',
'role_controlled_by_asset' => 'Kontroliuojami nuosavybės, į kurią yra įkelti',
diff --git a/lang/lt/validation.php b/lang/lt/validation.php
index 92de23004..65e5936c2 100644
--- a/lang/lt/validation.php
+++ b/lang/lt/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Šis failas negali būti įkeltas. Serveris gali nepriimti tokio dydžio failų.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/lv/errors.php b/lang/lv/errors.php
index 28cc0d892..b4e9ec61a 100644
--- a/lang/lv/errors.php
+++ b/lang/lv/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Nevarēja nolasīt ZIP failu.',
'import_zip_cant_decode_data' => 'Nevarēja atrast un nolasīt data.json saturu ZIP failā.',
'import_zip_no_data' => 'ZIP faila datos nav atrasts grāmatu, nodaļu vai lapu saturs.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'ZIP faila imports ir neveiksmīgs ar šādām kļūdām:',
'import_zip_failed_notification' => 'ZIP faila imports ir neveiksmīgs.',
'import_perms_books' => 'Jums nav nepieciešamo tiesību izveidot grāmatas.',
diff --git a/lang/lv/notifications.php b/lang/lv/notifications.php
index 9fd60222a..7233822a4 100644
--- a/lang/lv/notifications.php
+++ b/lang/lv/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Atjaunināta lapa: :pageName',
'updated_page_intro' => 'Lapa atjaunināta :appName:',
'updated_page_debounce' => 'Lai novērstu pārliecīgu paziņojumu sūtīšanu, uz laiku jums tiks pārtraukti paziņojumi par turpmākiem šī lietotāja labojumiem šai lapai.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Lapas nosaukums:',
'detail_page_path' => 'Ceļš uz lapu:',
diff --git a/lang/lv/preferences.php b/lang/lv/preferences.php
index b91cc2e08..3c107d5fa 100644
--- a/lang/lv/preferences.php
+++ b/lang/lv/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Pārvaldiet epasta paziņojumus, ko saņemsiet, kad sistēmā tiek veiktas noteiktas darbības.',
'notifications_opt_own_page_changes' => 'Paziņot par izmaiņām manās lapās',
'notifications_opt_own_page_comments' => 'Paziņot par komentāriem manās lapās',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Paziņot par atbildēm uz maniem komentāriem',
'notifications_save' => 'Saglabāt iestatījumus',
'notifications_update_success' => 'Paziņojumu iestatījumi ir atjaunoti!',
diff --git a/lang/lv/settings.php b/lang/lv/settings.php
index 9901f7811..fb5cf13dd 100644
--- a/lang/lv/settings.php
+++ b/lang/lv/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Nav ierobežojumu',
// Sorting Settings
- 'sorting' => 'Kārtošana',
- 'sorting_book_default' => 'Noklusētā grāmatu kārtošana',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Izvēlieties noklusēto kārtošanas nosacījumu, ko pielietot jaunām grāmatām. Šis neskars jau esošas grāmatas, un to var izmainīt grāmatas iestatījumos.',
'sorting_rules' => 'Kārtošanas noteikumi',
'sorting_rules_desc' => 'Šīs ir iepriekš noteiktas kārtošanas darbības, ko var pielietot saturam šajā sistēmā.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Atjaunināšanas datums',
'sort_rule_op_chapters_first' => 'Nodaļas pirmās',
'sort_rule_op_chapters_last' => 'Nodaļas pēdējās',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Apkope',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Importēt saturu',
'role_editor_change' => 'Mainīt lapu redaktoru',
'role_notifications' => 'Saņemt un pārvaldīt paziņojumus',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Resursa piekļuves tiesības',
'roles_system_warning' => 'Jebkuras no trīs augstāk redzamajām atļaujām dod iespēju lietotājam mainīt savas un citu lietotāju sistēmas atļaujas. Pievieno šīs grupu atļaujas tikai tiem lietotājiem, kuriem uzticies.',
'role_asset_desc' => 'Šīs piekļuves tiesības kontrolē noklusēto piekļuvi sistēmas resursiem. Grāmatām, nodaļām un lapām norādītās tiesības būs pārākas par šīm.',
'role_asset_admins' => 'Administratoriem automātiski ir piekļuve visam saturam, bet šie uzstādījumi var noslēpt vai parādīt lietotāja saskarnes iespējas.',
'role_asset_image_view_note' => 'Šis ir saistīts ar redzamību attēlu pārvaldniekā. Faktiskā piekļuve augšupielādēto attēlu failiem būs atkarīga no sistēmas attēlu glabātuves uzstādījuma.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Visi',
'role_own' => 'Savi',
'role_controlled_by_asset' => 'Kontrolē resurss, uz ko tie ir augšupielādēti',
diff --git a/lang/lv/validation.php b/lang/lv/validation.php
index dd318119a..befad5eeb 100644
--- a/lang/lv/validation.php
+++ b/lang/lv/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Fails netika ielādēts. Serveris nevar pieņemt šāda izmēra failus.',
'zip_file' => ':attribute ir jāatsaucas uz failu ZIP arhīvā.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute ir jāatsaucas uz failu ar tipu :validTypes, bet atrasts :foundType.',
'zip_model_expected' => 'Sagaidīts datu objekts, bet atrasts ":type".',
'zip_unique' => ':attribute jābūt unikālam šim objekta tipam ZIP arhīvā.',
diff --git a/lang/nb/editor.php b/lang/nb/editor.php
index 77b01f17b..23a788d71 100644
--- a/lang/nb/editor.php
+++ b/lang/nb/editor.php
@@ -48,7 +48,7 @@ return [
'superscript' => 'Hevet skrift',
'subscript' => 'Senket skrift',
'text_color' => 'Tekstfarge',
- 'highlight_color' => 'Highlight color',
+ 'highlight_color' => 'Uthevingsfarge',
'custom_color' => 'Egenvalgt farge',
'remove_color' => 'Fjern farge',
'background_color' => 'Bakgrunnsfarge',
diff --git a/lang/nb/errors.php b/lang/nb/errors.php
index 400681b10..ef68da4fc 100644
--- a/lang/nb/errors.php
+++ b/lang/nb/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Kunne ikke lese ZIP-filen.',
'import_zip_cant_decode_data' => 'Kunne ikke finne og dekode ZIP data.json innhold.',
'import_zip_no_data' => 'ZIP-fildata har ingen forventet bok, kapittel eller sideinnhold.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import av ZIP feilet i å validere med feil:',
'import_zip_failed_notification' => 'Kunne ikke importere ZIP-fil.',
'import_perms_books' => 'Du mangler nødvendige tillatelser for å lage bøker.',
diff --git a/lang/nb/notifications.php b/lang/nb/notifications.php
index bb46e09db..1e16229f3 100644
--- a/lang/nb/notifications.php
+++ b/lang/nb/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Oppdatert side: :pageName',
'updated_page_intro' => 'En side er oppdatert i :appName:',
'updated_page_debounce' => 'For å forhindre mange varslinger, vil du ikke få nye varslinger for endringer på denne siden fra samme forfatter.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Sidenavn:',
'detail_page_path' => 'Side bane:',
diff --git a/lang/nb/preferences.php b/lang/nb/preferences.php
index 245c9c954..6a6850b83 100644
--- a/lang/nb/preferences.php
+++ b/lang/nb/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Kontroller e-postvarslene du mottar når en bestemt aktivitet utføres i systemet.',
'notifications_opt_own_page_changes' => 'Varsle ved endringer til sider jeg eier',
'notifications_opt_own_page_comments' => 'Varsle om kommentarer på sider jeg eier',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Varsle ved svar på mine kommentarer',
'notifications_save' => 'Lagre innstillinger',
'notifications_update_success' => 'Varslingsinnstillingene er oppdatert!',
diff --git a/lang/nb/settings.php b/lang/nb/settings.php
index 68bab6f30..d1f40814e 100644
--- a/lang/nb/settings.php
+++ b/lang/nb/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Ingen begrensninger er satt',
// Sorting Settings
- 'sorting' => 'Sortering',
- 'sorting_book_default' => 'Standard boksortering',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Velg standard sorteringsregelen som skal brukes for nye bøker. Dette vil ikke påvirke eksisterende bøker, og kan overstyres per bok.',
'sorting_rules' => 'Sorteringsregler',
'sorting_rules_desc' => 'Dette er forhåndsdefinerte sorteringsoperasjoner som kan brukes på innhold i systemet.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Kapitler først',
'sort_rule_op_chapters_last' => 'Kapitler sist',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Vedlikehold',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import innhold',
'role_editor_change' => 'Endre sideredigering',
'role_notifications' => 'Motta og administrere varslinger',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Eiendomstillatelser',
'roles_system_warning' => 'Vær oppmerksom på at tilgang til noen av de ovennevnte tre tillatelsene kan tillate en bruker å endre sine egne rettigheter eller rettighetene til andre i systemet. Bare tildel roller med disse tillatelsene til pålitelige brukere.',
'role_asset_desc' => 'Disse tillatelsene kontrollerer standard tilgang til eiendelene i systemet. Tillatelser til bøker, kapitler og sider overstyrer disse tillatelsene.',
'role_asset_admins' => 'Administratorer får automatisk tilgang til alt innhold, men disse alternativene kan vise eller skjule UI-alternativer.',
'role_asset_image_view_note' => 'Dette gjelder synlighet innenfor bilde-administrasjonen. Faktisk tilgang på opplastede bildefiler vil være avhengig av valget for systemlagring av bildet.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Alle',
'role_own' => 'Egne',
'role_controlled_by_asset' => 'Kontrollert av eiendelen de er lastet opp til',
diff --git a/lang/nb/validation.php b/lang/nb/validation.php
index a156da8f7..27922e402 100644
--- a/lang/nb/validation.php
+++ b/lang/nb/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'kunne ikke lastes opp, tjeneren støtter ikke filer av denne størrelsen.',
'zip_file' => 'Attributtet :attribute må henvises til en fil i ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'Attributtet :attribute må referere en fil av typen :validTypes, som ble funnet :foundType.',
'zip_model_expected' => 'Data objekt forventet, men ":type" funnet.',
'zip_unique' => 'Attributtet :attribute må være unikt for objekttypen i ZIP.',
diff --git a/lang/ne/errors.php b/lang/ne/errors.php
index 79ee27c78..bbcaec9e1 100644
--- a/lang/ne/errors.php
+++ b/lang/ne/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'ZIP फाइल पढ्न सकिएन।',
'import_zip_cant_decode_data' => 'ZIP डाटा.json सामग्री पत्ता लाग्न र डिकोड गर्न सकिएन।',
'import_zip_no_data' => 'ZIP फाइल डाटामा अपेक्षित पुस्तक, अध्याय वा पाना सामग्री छैन।',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'आयात ZIP प्रमाणीकरण असफल भयो। त्रुटिहरू छन्:',
'import_zip_failed_notification' => 'ZIP फाइल आयात गर्न असफल भयो।',
'import_perms_books' => 'तपाईंलाई पुस्तकहरू सिर्जना गर्न आवश्यक अनुमति छैन।',
diff --git a/lang/ne/notifications.php b/lang/ne/notifications.php
index 1e9c57221..a4eb69832 100644
--- a/lang/ne/notifications.php
+++ b/lang/ne/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'पाना अपडेट भयो: :pageName',
'updated_page_intro' => ':appName मा पाना अपडेट गरिएको छ',
'updated_page_debounce' => 'धेरै सूचना नपरोस् भनेर, केही समयको लागि एउटै सम्पादकबाट हुने थप सम्पादनहरूका सूचना तपाईंलाई पठाइने छैन।',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'पानाको नाम:',
'detail_page_path' => 'पानाको स्थान:',
diff --git a/lang/ne/preferences.php b/lang/ne/preferences.php
index 70388e8ba..2efdafc9f 100644
--- a/lang/ne/preferences.php
+++ b/lang/ne/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'प्रणालीमा केही क्रियाकलापहरू गर्दा तपाईंलाई प्राप्त हुने इमेल सूचनाहरू नियन्त्रण गर्नुहोस्।',
'notifications_opt_own_page_changes' => 'मैले स्वामित्व राख्ने पृष्ठहरूमा परिवर्तन हुँदा सूचित गर्नुहोस्',
'notifications_opt_own_page_comments' => 'मैले स्वामित्व राख्ने पृष्ठहरूमा टिप्पणी हुँदा सूचित गर्नुहोस्',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'मेरो टिप्पणीहरूमा उत्तर आएको बेला सूचित गर्नुहोस्',
'notifications_save' => 'प्राथमिकताहरू बचत गर्नुहोस्',
'notifications_update_success' => 'सूचना प्राथमिकताहरू अपडेट गरिएका छन्!',
diff --git a/lang/ne/settings.php b/lang/ne/settings.php
index eb99f26bd..37e59978e 100644
--- a/lang/ne/settings.php
+++ b/lang/ne/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'कुनै प्रतिबन्ध छैन',
// Sorting Settings
- 'sorting' => 'क्रमबद्धता',
- 'sorting_book_default' => 'डिफल्ट पुस्तक क्रम',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'नयाँ पुस्तकहरूमा लागु गर्न डिफल्ट क्रम नियम चयन गर्नुहोस्। यो अस्तित्वमा रहेका पुस्तकहरूमा असर पार्दैन र पुस्तक अनुसार ओभरराइड गर्न सकिन्छ।',
'sorting_rules' => 'क्रम नियमहरू',
'sorting_rules_desc' => 'यी पूर्वनिर्धारित क्रम सञ्चालनहरू हुन् जुन प्रणालीमा सामग्रीमा लागू गर्न सकिन्छ।',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'अपडेट मिति',
'sort_rule_op_chapters_first' => 'पहिले अध्यायहरू',
'sort_rule_op_chapters_last' => 'अन्त्यमा अध्यायहरू',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'सम्भार',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'सामग्री आयात गर्नुहोस्',
'role_editor_change' => 'पृष्ठ सम्पादक परिवर्तन गर्नुहोस्',
'role_notifications' => 'सूचनाहरू प्राप्त र व्यवस्थापन गर्नुहोस्',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'संपत्ति अनुमति',
'roles_system_warning' => 'माथिका कुनै पनि तीन अनुमति प्रयोगकर्ताले आफैं वा अरूका अधिकार परिवर्तन गर्न सक्छन्। यी अनुमति भएको भूमिका मात्र भरपर्दो प्रयोगकर्तालाई दिनुहोस्।',
'role_asset_desc' => 'यी अनुमतिले प्रणालीभित्र सम्पत्तिमा डिफल्ट पहुँच नियन्त्रण गर्छ। पुस्तक, अध्याय र पृष्ठमा अनुमति यी भन्दा प्राथमिक हुन्छ।',
'role_asset_admins' => 'प्रशासनकर्ताहरूलाई सबै सामग्रीमा स्वतः पहुँच दिइन्छ, यी विकल्पहरूले UI मा देखिने वा लुकेका विकल्पहरू मात्र प्रभाव पार्न सक्छ।',
'role_asset_image_view_note' => 'यो छवि व्यवस्थापक भित्रको दृश्यता सम्बन्धि हो। अपलोड गरिएको छविमा वास्तविक पहुँच प्रणालीको छवि भण्डारण विकल्प अनुसार हुन्छ।',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'सबै',
'role_own' => 'आफ्नो',
'role_controlled_by_asset' => 'अपलोड गरिएको सम्पत्तिले नियन्त्रण गरेको',
diff --git a/lang/ne/validation.php b/lang/ne/validation.php
index f00c0f731..ed61d3d6f 100644
--- a/lang/ne/validation.php
+++ b/lang/ne/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'फाइल अपलोड हुन सकेन। सर्भरले यस्तो साइज स्वीकार नगर्न सक्छ।',
'zip_file' => ':attribute ले ZIP फाइलभित्रको फाइल देखाउनु पर्छ।',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute मा :validTypes प्रकारको फाइल हुनुपर्छ, तर :foundType भेटियो।',
'zip_model_expected' => 'डेटा वस्तु चाहिएको थियो तर ":type" भेटियो।',
'zip_unique' => ':attribute ZIP भित्रको वस्तु प्रकारको लागि अद्वितीय हुनुपर्छ।',
diff --git a/lang/nl/activities.php b/lang/nl/activities.php
index 3d548e2a7..230c7a58b 100644
--- a/lang/nl/activities.php
+++ b/lang/nl/activities.php
@@ -122,7 +122,7 @@ return [
'recycle_bin_destroy' => 'verwijderde van prullenbak',
// Comments
- 'commented_on' => 'reageerde op',
+ 'commented_on' => 'plaatste opmerking in',
'comment_create' => 'voegde opmerking toe',
'comment_update' => 'paste opmerking aan',
'comment_delete' => 'verwijderde opmerking',
diff --git a/lang/nl/common.php b/lang/nl/common.php
index 47d8703ca..bcd7fbe08 100644
--- a/lang/nl/common.php
+++ b/lang/nl/common.php
@@ -40,7 +40,7 @@ return [
'delete_confirm' => 'Verwijdering bevestigen',
'search' => 'Zoek',
'search_clear' => 'Zoekopdracht wissen',
- 'reset' => 'Reset',
+ 'reset' => 'Wissen',
'remove' => 'Verwijder',
'add' => 'Voeg toe',
'configure' => 'Configureer',
diff --git a/lang/nl/editor.php b/lang/nl/editor.php
index 0963df71f..cc3ad108c 100644
--- a/lang/nl/editor.php
+++ b/lang/nl/editor.php
@@ -48,7 +48,7 @@ return [
'superscript' => 'Superscript',
'subscript' => 'Subscript',
'text_color' => 'Tekstkleur',
- 'highlight_color' => 'Highlight color',
+ 'highlight_color' => 'Accentkleur',
'custom_color' => 'Aangepaste kleur',
'remove_color' => 'Verwijder kleur',
'background_color' => 'Tekstmarkeringskleur',
diff --git a/lang/nl/entities.php b/lang/nl/entities.php
index 967b7ecfb..b9be1f42b 100644
--- a/lang/nl/entities.php
+++ b/lang/nl/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'Dit zal het Zip-bestand van de import permanent verwijderen.',
'import_errors' => 'Importeerfouten',
'import_errors_desc' => 'De volgende fouten deden zich voor tijdens het importeren:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Navigeer pagina\'s op hetzelfde niveau',
+ 'breadcrumb_siblings_for_chapter' => 'Navigeer hoofdstukken op hetzelfde niveau',
+ 'breadcrumb_siblings_for_book' => 'Navigeer boeken op hetzelfde niveau',
+ 'breadcrumb_siblings_for_bookshelf' => 'Navigeer boekenplanken op hetzelfde niveau',
// Permissions and restrictions
'permissions' => 'Machtigingen',
@@ -272,11 +272,11 @@ return [
'pages_md_insert_drawing' => 'Tekening invoegen',
'pages_md_show_preview' => 'Toon voorbeeld',
'pages_md_sync_scroll' => 'Synchroniseer scrollen van voorbeeld',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => 'Normale tekst bewerker',
'pages_drawing_unsaved' => 'Niet-opgeslagen Tekening Gevonden',
'pages_drawing_unsaved_confirm' => 'Er zijn niet-opgeslagen tekeninggegevens gevonden van een eerdere mislukte poging om de tekening op te slaan. Wil je deze niet-opgeslagen tekening herstellen en verder bewerken?',
'pages_not_in_chapter' => 'Pagina is niet in een hoofdstuk',
- 'pages_move' => 'Pagina verplaatsten',
+ 'pages_move' => 'Pagina Verplaatsen',
'pages_copy' => 'Pagina kopiëren',
'pages_copy_desination' => 'Kopieër bestemming',
'pages_copy_success' => 'Pagina succesvol gekopieerd',
@@ -394,27 +394,27 @@ return [
'profile_not_created_shelves' => ':userName heeft geen boekenplanken gemaakt',
// Comments
- 'comment' => 'Reactie',
- 'comments' => 'Reacties',
- 'comment_add' => 'Reactie toevoegen',
+ 'comment' => 'Opmerking',
+ 'comments' => 'Opmerkingen',
+ 'comment_add' => 'Opmerking toevoegen',
'comment_none' => 'Geen opmerkingen om weer te geven',
- 'comment_placeholder' => 'Laat hier een reactie achter',
- 'comment_thread_count' => ':count Reactie Thread|:count Reactie Threads',
+ 'comment_placeholder' => 'Laat hier een opmerking achter',
+ 'comment_thread_count' => ':count Opmerking Thread|:count Opmerking Threads',
'comment_archived_count' => ':count Gearchiveerd',
'comment_archived_threads' => 'Gearchiveerde Threads',
- 'comment_save' => 'Sla reactie op',
- 'comment_new' => 'Nieuwe reactie',
- 'comment_created' => 'reactie gegeven :createDiff',
+ 'comment_save' => 'Sla opmerking op',
+ 'comment_new' => 'Nieuwe opmerking',
+ 'comment_created' => 'opmerking gegeven :createDiff',
'comment_updated' => 'Updatet :updateDiff door :username',
'comment_updated_indicator' => 'Bijgewerkt',
- 'comment_deleted_success' => 'Reactie verwijderd',
- 'comment_created_success' => 'Reactie toegevoegd',
- 'comment_updated_success' => 'Reactie bijgewerkt',
+ 'comment_deleted_success' => 'Opmerking verwijderd',
+ 'comment_created_success' => 'Opmerking toegevoegd',
+ 'comment_updated_success' => 'Opmerking bijgewerkt',
'comment_archive_success' => 'Opmerking gearchiveerd',
'comment_unarchive_success' => 'Opmerking teruggehaald',
'comment_view' => 'Opmerking weergeven',
'comment_jump_to_thread' => 'Ga naar thread',
- 'comment_delete_confirm' => 'Weet je zeker dat je deze reactie wilt verwijderen?',
+ 'comment_delete_confirm' => 'Weet je zeker dat je deze opmerking wilt verwijderen?',
'comment_in_reply_to' => 'Als antwoord op :commentId',
'comment_reference' => 'Verwijzing',
'comment_reference_outdated' => '(Verouderd)',
@@ -466,11 +466,11 @@ return [
'watch_desc_comments_page' => 'Geef een melding van pagina wijzigingen en nieuwe opmerkingen.',
'watch_change_default' => 'Standaardvoorkeuren voor meldingen wijzigen',
'watch_detail_ignore' => 'Meldingen negeren',
- 'watch_detail_new' => 'Op de uitkijk voor nieuwe pagina\'s',
- 'watch_detail_updates' => 'Op de uitkijk voor nieuwe pagina\'s en aanpassingen',
- 'watch_detail_comments' => 'Op de uitkijk voor nieuwe pagina\'s, aanpassingen en opmerkingen',
- 'watch_detail_parent_book' => 'Op de uitkijk via hogerliggend boek',
- 'watch_detail_parent_book_ignore' => 'Aan het negeren via hogerliggend boek',
- 'watch_detail_parent_chapter' => 'Op de uitkijk via hogerliggend hoofdstuk',
- 'watch_detail_parent_chapter_ignore' => 'Aan het negeren via hogerliggend hoofdstuk',
+ 'watch_detail_new' => 'Nieuwe pagina\'s aan het volgen',
+ 'watch_detail_updates' => 'Nieuwe pagina\'s en aanpassingen aan het volgen',
+ 'watch_detail_comments' => 'Nieuwe pagina\'s, aanpassingen en opmerkingen aan het volgen',
+ 'watch_detail_parent_book' => 'Aan het volgen via bovenliggend boek',
+ 'watch_detail_parent_book_ignore' => 'Aan het negeren via bovenliggend boek',
+ 'watch_detail_parent_chapter' => 'Aan het volgen via bovenliggend hoofdstuk',
+ 'watch_detail_parent_chapter_ignore' => 'Aan het negeren via bovenliggend hoofdstuk',
];
diff --git a/lang/nl/errors.php b/lang/nl/errors.php
index d8d5af723..c2a666546 100644
--- a/lang/nl/errors.php
+++ b/lang/nl/errors.php
@@ -87,11 +87,11 @@ return [
'role_cannot_remove_only_admin' => 'Deze gebruiker is de enige gebruiker die is toegewezen aan de beheerdersrol. Wijs de beheerdersrol toe aan een andere gebruiker voordat u probeert deze hier te verwijderen.',
// Comments
- 'comment_list' => 'Er is een fout opgetreden tijdens het ophalen van de reacties.',
- 'cannot_add_comment_to_draft' => 'Je kunt geen reacties toevoegen aan een concept.',
- 'comment_add' => 'Er is een fout opgetreden tijdens het aanpassen / toevoegen van de reactie.',
- 'comment_delete' => 'Er is een fout opgetreden tijdens het verwijderen van de reactie.',
- 'empty_comment' => 'Kan geen lege reactie toevoegen.',
+ 'comment_list' => 'Er is een fout opgetreden tijdens het ophalen van de opmerkingen.',
+ 'cannot_add_comment_to_draft' => 'Je kunt geen opmerkingen toevoegen aan een concept.',
+ 'comment_add' => 'Er is een fout opgetreden tijdens het aanpassen / toevoegen van de opmerking.',
+ 'comment_delete' => 'Er is een fout opgetreden tijdens het verwijderen van de opmerking.',
+ 'empty_comment' => 'Kan geen lege opmerking toevoegen.',
// Error pages
'404_page_not_found' => 'Pagina Niet Gevonden',
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Kon het Zip-bestand niet lezen.',
'import_zip_cant_decode_data' => 'Kon de data.json Zip-inhoud niet vinden of decoderen.',
'import_zip_no_data' => 'Zip-bestand bevat niet de verwachte boek, hoofdstuk of pagina-inhoud.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'De validatie van het Zip-bestand is mislukt met de volgende fouten:',
'import_zip_failed_notification' => 'Importeren van het Zip-bestand is mislukt.',
'import_perms_books' => 'Je mist de vereiste machtigingen om boeken te maken.',
diff --git a/lang/nl/notifications.php b/lang/nl/notifications.php
index bc5f380c3..ce2a3ebff 100644
--- a/lang/nl/notifications.php
+++ b/lang/nl/notifications.php
@@ -5,16 +5,18 @@
return [
'new_comment_subject' => 'Nieuwe opmerking op pagina: :pageName',
- 'new_comment_intro' => 'Een gebruiker heeft gereageerd op een pagina in :appName:',
+ 'new_comment_intro' => 'Een gebruiker heeft een opmerking geplaatst op een pagina in :appName:',
'new_page_subject' => 'Nieuwe pagina: :pageName',
'new_page_intro' => 'Een nieuwe pagina is gemaakt in :appName:',
'updated_page_subject' => 'Aangepaste pagina: :pageName',
'updated_page_intro' => 'Een pagina werd aangepast in :appName:',
'updated_page_debounce' => 'Om een stortvloed aan meldingen te voorkomen, zul je een tijdje geen meldingen ontvangen voor verdere bewerkingen van deze pagina door dezelfde redacteur.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Pagina Naam:',
'detail_page_path' => 'Paginapad:',
- 'detail_commenter' => 'Reageerder:',
+ 'detail_commenter' => 'Commentator:',
'detail_comment' => 'Opmerking:',
'detail_created_by' => 'Gemaakt Door:',
'detail_updated_by' => 'Aangepast Door:',
diff --git a/lang/nl/preferences.php b/lang/nl/preferences.php
index 5e385276c..1fb56af07 100644
--- a/lang/nl/preferences.php
+++ b/lang/nl/preferences.php
@@ -23,11 +23,12 @@ return [
'notifications_desc' => 'Bepaal welke e-mailmeldingen je ontvangt wanneer bepaalde activiteiten in het systeem worden uitgevoerd.',
'notifications_opt_own_page_changes' => 'Geef melding bij wijzigingen aan pagina\'s waarvan ik de eigenaar ben',
'notifications_opt_own_page_comments' => 'Geef melding van opmerkingen op pagina\'s waarvan ik de eigenaar ben',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Geef melding van reacties op mijn opmerkingen',
'notifications_save' => 'Voorkeuren opslaan',
'notifications_update_success' => 'Voorkeuren voor meldingen zijn bijgewerkt!',
'notifications_watched' => 'Gevolgde & Genegeerde Items',
- 'notifications_watched_desc' => 'Hieronder staan de items waarvoor aangepaste \'Volg\'-voorkeuren zijn toegepast. Om je voorkeuren voor deze items bij te werken, bekijk je het item en zoek je naar de \'Volg\' opties in de zijbalk.',
+ 'notifications_watched_desc' => 'Hieronder staan de items waarvoor aangepaste volgvoorkeuren zijn toegepast. Om je voorkeuren voor deze items bij te werken, bekijk je het item en zoek je naar de volgopties in de zijbalk.',
'auth' => 'Toegang & Beveiliging',
'auth_change_password' => 'Wachtwoord Wijzigen',
diff --git a/lang/nl/settings.php b/lang/nl/settings.php
index 1aeabed10..2041669eb 100644
--- a/lang/nl/settings.php
+++ b/lang/nl/settings.php
@@ -43,9 +43,9 @@ return [
'app_footer_links_label' => 'Link label',
'app_footer_links_url' => 'Link URL',
'app_footer_links_add' => 'Voettekst link toevoegen',
- 'app_disable_comments' => 'Reacties uitschakelen',
- 'app_disable_comments_toggle' => 'Reacties uitschakelen',
- 'app_disable_comments_desc' => 'Schakel reacties uit op alle pagina\'s in de applicatie. Bestaande reacties worden niet getoond.',
+ 'app_disable_comments' => 'Opmerkingen uitschakelen',
+ 'app_disable_comments_toggle' => 'Opmerkingen uitschakelen',
+ 'app_disable_comments_desc' => 'Schakel opmerkingen uit op alle pagina\'s in de applicatie. Bestaande opmerkingen worden niet getoond.',
// Color settings
'color_scheme' => 'Kleurenschema van applicatie',
@@ -75,7 +75,7 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Geen beperkingen ingesteld',
// Sorting Settings
- 'sorting' => 'Sorteren',
+ 'sorting' => 'Lijsten & Sorteren',
'sorting_book_default' => 'Standaard Sorteerregel Boek',
'sorting_book_default_desc' => 'Selecteer de standaard sorteerregel om toe te passen op nieuwe boeken. Dit heeft geen invloed op bestaande boeken, en kan per boek worden overschreven.',
'sorting_rules' => 'Sorteerregels',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Bijwerkdatum',
'sort_rule_op_chapters_first' => 'Hoofdstukken Eerst',
'sort_rule_op_chapters_last' => 'Hoofdstukken Laatst',
+ 'sorting_page_limits' => 'Weergavelimiet Per Pagina',
+ 'sorting_page_limits_desc' => 'Stel in hoeveel items er op een pagina worden laten zien in de verschillende lijstweergaves. Een lager aantal verbeterd de snelheid, een hoger aantal verminderd het doorklikken door pagina\'s. Een even veelvoud van 3 (18, 24, 30, etc...) wordt aanbevolen.',
// Maintenance settings
'maint' => 'Onderhoud',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Importeer inhoud',
'role_editor_change' => 'Wijzig pagina bewerker',
'role_notifications' => 'Meldingen ontvangen & beheren',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Machtigingen',
'roles_system_warning' => 'Wees ervan bewust dat toegang tot een van de bovengenoemde drie machtigingen een gebruiker in staat kan stellen zijn eigen machtigingen of de machtigingen van anderen in het systeem kan wijzigen. Wijs alleen rollen toe met deze machtigingen aan vertrouwde gebruikers.',
'role_asset_desc' => 'Deze machtigingen bepalen de standaard toegang tot de assets binnen het systeem. Machtigingen op boeken, hoofdstukken en pagina\'s overschrijven deze instelling.',
'role_asset_admins' => 'Beheerders krijgen automatisch toegang tot alle inhoud, maar deze opties kunnen gebruikersinterface opties tonen of verbergen.',
'role_asset_image_view_note' => 'Dit heeft betrekking op de zichtbaarheid binnen de afbeeldingsbeheerder. De werkelijke toegang tot geüploade afbeeldingsbestanden hangt af van de gekozen opslagmethode.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Alles',
'role_own' => 'Eigen',
'role_controlled_by_asset' => 'Gecontroleerd door de asset waar deze is geüpload',
diff --git a/lang/nl/validation.php b/lang/nl/validation.php
index 7c7e20c8b..e2f48e31a 100644
--- a/lang/nl/validation.php
+++ b/lang/nl/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Het bestand kon niet worden geüpload. De server accepteert mogelijk geen bestanden van deze grootte.',
'zip_file' => 'Het \':attribute\' veld moet verwijzen naar een bestand in de ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'Het \':attribute\' veld moet verwijzen naar een bestand met het type :validTypes, vond :foundType.',
'zip_model_expected' => 'Dataobject verwacht maar vond ":type".',
'zip_unique' => ':attribute moet uniek zijn voor het objecttype binnen de ZIP.',
diff --git a/lang/nn/errors.php b/lang/nn/errors.php
index c56b7d078..01d83e0ac 100644
--- a/lang/nn/errors.php
+++ b/lang/nn/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/nn/notifications.php b/lang/nn/notifications.php
index 247d8d105..25f0f30c8 100644
--- a/lang/nn/notifications.php
+++ b/lang/nn/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Oppdatert side: :pageName',
'updated_page_intro' => 'Ei side vart oppdatert i :appName:',
'updated_page_debounce' => 'For å forhindre mange varslingar, vil du ikkje få nye varslinger for endringar på denne siden frå same forfattar.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Sidenamn:',
'detail_page_path' => 'Sidenamn:',
diff --git a/lang/nn/preferences.php b/lang/nn/preferences.php
index ac6dc1b77..17d1fca42 100644
--- a/lang/nn/preferences.php
+++ b/lang/nn/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Kontroller e-postvarslene du mottar når en bestemt aktivitet utføres i systemet.',
'notifications_opt_own_page_changes' => 'Varsle ved endringer til sider jeg eier',
'notifications_opt_own_page_comments' => 'Varsle om kommentarer på sider jeg eier',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Varsle ved svar på mine kommentarer',
'notifications_save' => 'Lagre innstillinger',
'notifications_update_success' => 'Varslingsinnstillingene er oppdatert!',
diff --git a/lang/nn/settings.php b/lang/nn/settings.php
index c098ac753..6d2259bd8 100644
--- a/lang/nn/settings.php
+++ b/lang/nn/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Ingen begrensninger er satt',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Vedlikehold',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Endre sideredigering',
'role_notifications' => 'Motta og administrere varslinger',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Eiendomstillatelser',
'roles_system_warning' => 'Vær oppmerksom på at tilgang til noen av de ovennevnte tre tillatelsene kan tillate en bruker å endre sine egne rettigheter eller rettighetene til andre i systemet. Bare tildel roller med disse tillatelsene til pålitelige brukere.',
'role_asset_desc' => 'Disse tillatelsene kontrollerer standard tilgang til eiendelene i systemet. Tillatelser til bøker, kapitler og sider overstyrer disse tillatelsene.',
'role_asset_admins' => 'Administratorer får automatisk tilgang til alt innhold, men disse alternativene kan vise eller skjule UI-alternativer.',
'role_asset_image_view_note' => 'Dette gjelder synlighet innenfor bilde-administrasjonen. Faktisk tilgang på opplastede bildefiler vil være avhengig av valget for systemlagring av bildet.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Alle',
'role_own' => 'Egne',
'role_controlled_by_asset' => 'Kontrollert av eiendelen de er lastet opp til',
diff --git a/lang/nn/validation.php b/lang/nn/validation.php
index a24ebd171..ff7a026a2 100644
--- a/lang/nn/validation.php
+++ b/lang/nn/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'kunne ikke lastes opp, tjeneren støtter ikke filer av denne størrelsen.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/pl/errors.php b/lang/pl/errors.php
index e6ad2093f..04146bbb7 100644
--- a/lang/pl/errors.php
+++ b/lang/pl/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/pl/notifications.php b/lang/pl/notifications.php
index 661149994..a2c9ff1c0 100644
--- a/lang/pl/notifications.php
+++ b/lang/pl/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Zaktualizowano stronę: :pageName',
'updated_page_intro' => 'Strona została zaktualizowana w :appName:',
'updated_page_debounce' => 'Aby zapobiec nadmiarowi powiadomień, przez jakiś czas nie będziesz otrzymywać powiadomień o dalszych edycjach tej strony przez tego samego edytora.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Nazwa strony:',
'detail_page_path' => 'Ścieżka strony:',
diff --git a/lang/pl/preferences.php b/lang/pl/preferences.php
index dd3482102..372b8eda6 100644
--- a/lang/pl/preferences.php
+++ b/lang/pl/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Kontroluj otrzymywane powiadomienia e-mail, gdy określona aktywność jest wykonywana w systemie.',
'notifications_opt_own_page_changes' => 'Powiadom o zmianach na stronach, których jestem właścicielem',
'notifications_opt_own_page_comments' => 'Powiadom o komentarzach na stronach, których jestem właścicielem',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Powiadom o odpowiedziach na moje komentarze',
'notifications_save' => 'Zapisz preferencje',
'notifications_update_success' => 'Preferencje powiadomień zostały zaktualizowane!',
diff --git a/lang/pl/settings.php b/lang/pl/settings.php
index 7c84ce34b..c32797f2f 100644
--- a/lang/pl/settings.php
+++ b/lang/pl/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Brak restrykcji',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Konserwacja',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Zmień edytor strony',
'role_notifications' => 'Odbieranie i zarządzanie powiadomieniami',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Zarządzanie zasobami',
'roles_system_warning' => 'Pamiętaj, że dostęp do trzech powyższych uprawnień może pozwolić użytkownikowi na zmianę własnych uprawnień lub uprawnień innych osób w systemie. Przypisz tylko role z tymi uprawnieniami do zaufanych użytkowników.',
'role_asset_desc' => 'Te ustawienia kontrolują zarządzanie zasobami systemu. Uprawnienia książek, rozdziałów i stron nadpisują te ustawienia.',
'role_asset_admins' => 'Administratorzy mają automatycznie dostęp do wszystkich treści, ale te opcję mogą być pokazywać lub ukrywać opcje interfejsu użytkownika.',
'role_asset_image_view_note' => 'To odnosi się do widoczności w ramach menedżera obrazów. Rzeczywista możliwość dostępu do przesłanych plików obrazów będzie zależeć od systemowej opcji przechowywania obrazów.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Wszyscy',
'role_own' => 'Własne',
'role_controlled_by_asset' => 'Kontrolowane przez zasób, do którego zostały udostępnione',
diff --git a/lang/pl/validation.php b/lang/pl/validation.php
index f20a66dfb..d1e8fada1 100644
--- a/lang/pl/validation.php
+++ b/lang/pl/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Plik nie może zostać wysłany. Serwer nie akceptuje plików o takim rozmiarze.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/pt/errors.php b/lang/pt/errors.php
index b337005e1..973bf61e2 100644
--- a/lang/pt/errors.php
+++ b/lang/pt/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/pt/notifications.php b/lang/pt/notifications.php
index 1243c6680..cbe3a511c 100644
--- a/lang/pt/notifications.php
+++ b/lang/pt/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Página atualizada: :pageName',
'updated_page_intro' => 'Uma página foi atualizada em :appName:',
'updated_page_debounce' => 'Para evitar um grande volume de notificações, durante algum tempo não serão enviadas notificações de edições futuras para esta página através do mesmo editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Nome da Página:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/pt/preferences.php b/lang/pt/preferences.php
index 860eec645..b7308aaf9 100644
--- a/lang/pt/preferences.php
+++ b/lang/pt/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Controlar as notificações via correio eletrónico quando certas atividades são executadas pelo sistema.',
'notifications_opt_own_page_changes' => 'Notificar quando páginas que possuo sofrem alterações',
'notifications_opt_own_page_comments' => 'Notificar quando comentam páginas que possuo',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notificar respostas aos meus comentários',
'notifications_save' => 'Guardar preferências',
'notifications_update_success' => 'Preferências de notificação foram atualizadas!',
diff --git a/lang/pt/settings.php b/lang/pt/settings.php
index 0c765fb98..c2179e640 100644
--- a/lang/pt/settings.php
+++ b/lang/pt/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Nenhuma restrição definida',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Manutenção',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Alterar editor de página',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Permissões de Ativos',
'roles_system_warning' => 'Esteja ciente de que o acesso a qualquer uma das três permissões acima pode permitir que um utilizador altere os seus próprios privilégios ou privilégios de outros no sistema. Apenas atribua cargos com essas permissões a utilizadores de confiança.',
'role_asset_desc' => 'Estas permissões controlam o acesso padrão para os ativos dentro do sistema. Permissões em Livros, Capítulos e Páginas serão sobrescritas por estas permissões.',
'role_asset_admins' => 'Os administradores recebem automaticamente acesso a todo o conteúdo, mas estas opções podem mostrar ou ocultar as opções da Interface de Usuário.',
'role_asset_image_view_note' => 'Isto está relacionado com a visibilidade do gerenciador de imagens. O acesso real dos arquivos de imagem enviados dependerá da opção de armazenamento de imagens do sistema.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Todos',
'role_own' => 'Próprio',
'role_controlled_by_asset' => 'Controlado pelo ativo para o qual eles são enviados',
diff --git a/lang/pt/validation.php b/lang/pt/validation.php
index df414c992..17d891cdb 100644
--- a/lang/pt/validation.php
+++ b/lang/pt/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'O arquivo não pôde ser carregado. O servidor pode não aceitar arquivos deste tamanho.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/pt_BR/entities.php b/lang/pt_BR/entities.php
index fecd47e82..5a948c8dc 100644
--- a/lang/pt_BR/entities.php
+++ b/lang/pt_BR/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'Isto irá excluir o arquivo ZIP de importação carregado e não poderá ser desfeito.',
'import_errors' => 'Erros de importação',
'import_errors_desc' => 'Os seguintes erros ocorreram durante a tentativa de importação:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Navegue pelas páginas relacionadas',
+ 'breadcrumb_siblings_for_chapter' => 'Navegue pelos capítulos relacionados',
+ 'breadcrumb_siblings_for_book' => 'Navegue pelos livros relacionados',
+ 'breadcrumb_siblings_for_bookshelf' => 'Navegue pelas estantes relacionadas',
// Permissions and restrictions
'permissions' => 'Permissões',
diff --git a/lang/pt_BR/errors.php b/lang/pt_BR/errors.php
index 8dab893c7..37cbd7ff2 100644
--- a/lang/pt_BR/errors.php
+++ b/lang/pt_BR/errors.php
@@ -110,6 +110,7 @@ return [
'import_zip_cant_read' => 'Não foi possível ler o arquivo ZIP.',
'import_zip_cant_decode_data' => 'Não foi possível encontrar e decodificar o conteúdo ZIP data.json.',
'import_zip_no_data' => 'Os dados do arquivo ZIP não têm o conteúdo esperado livro, capítulo ou página.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Falhou na validação da importação do ZIP com erros:',
'import_zip_failed_notification' => 'Falhou ao importar arquivo ZIP.',
'import_perms_books' => 'Você não tem as permissões necessárias para criar livros.',
diff --git a/lang/pt_BR/notifications.php b/lang/pt_BR/notifications.php
index 6397b20e5..8c98467c8 100644
--- a/lang/pt_BR/notifications.php
+++ b/lang/pt_BR/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Página atualizada: :pageName',
'updated_page_intro' => 'Uma página foi atualizada em :appName:',
'updated_page_debounce' => 'Para prevenir notificações em massa, por enquanto notificações não serão enviadas para você para próximas edições nessa página pelo mesmo editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Nome da Página:',
'detail_page_path' => 'Caminho da Página:',
diff --git a/lang/pt_BR/preferences.php b/lang/pt_BR/preferences.php
index e0b79ff06..d2b7fc540 100644
--- a/lang/pt_BR/preferences.php
+++ b/lang/pt_BR/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Controle as notificações por e-mail que você recebe quando uma determinada atividade é executada no sistema.',
'notifications_opt_own_page_changes' => 'Notificar quando houver alterações em páginas que eu possuo',
'notifications_opt_own_page_comments' => 'Notificar comentários nas páginas que eu possuo',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notificar ao responder aos meus comentários',
'notifications_save' => 'Salvar Preferências',
'notifications_update_success' => 'Preferências de notificação foram atualizadas!',
diff --git a/lang/pt_BR/settings.php b/lang/pt_BR/settings.php
index b940e57d4..53947a36d 100644
--- a/lang/pt_BR/settings.php
+++ b/lang/pt_BR/settings.php
@@ -16,7 +16,7 @@ return [
'app_customization' => 'Customização',
'app_features_security' => 'Recursos & Segurança',
'app_name' => 'Nome da Aplicação',
- 'app_name_desc' => 'Esse nome será mostrado no cabeçalho e em e-mails.',
+ 'app_name_desc' => 'Esse nome será mostrado no cabeçalho e nos e-mails.',
'app_name_header' => 'Mostrar o nome no cabeçalho',
'app_public_access' => 'Acesso Público',
'app_public_access_desc' => 'Habilitar esta opção irá permitir que visitantes, que não estão logados, acessem o conteúdo em sua instância do BookStack.',
@@ -29,14 +29,14 @@ return [
'app_default_editor' => 'Editor de Página Padrão',
'app_default_editor_desc' => 'Selecione qual editor será usado por padrão ao editar novas páginas. Isso pode ser substituído em um nível de página onde é permitido.',
'app_custom_html' => 'Conteúdo customizado para HTML',
- 'app_custom_html_desc' => 'Quaisquer conteúdos aqui adicionados serão inseridos no final da seção de cada página. Essa é uma maneira útil de sobrescrever estilos e adicionar códigos de análise de site.',
- 'app_custom_html_disabled_notice' => 'O conteúdo customizado do HTML está desabilitado nesta página de configurações, para garantir que quaisquer alterações danosas possam ser revertidas.',
+ 'app_custom_html_desc' => 'Qualquer conteúdo adicionado aqui será inserido ao final do HTML de todas as páginas. Isso é útil para sobrescrever estilos e adicionar códigos de análise e estatística do site.',
+ 'app_custom_html_disabled_notice' => 'O conteúdo customizado do HTML está desabilitado nesta página de configurações para garantir que quaisquer alterações danosas possam ser revertidas.',
'app_logo' => 'Logo da Aplicação',
'app_logo_desc' => 'Isto é usado na barra de cabeçalho do aplicativo, entre outras áreas. Esta imagem deve ter 86px de altura. Imagens grandes serão reduzidas.',
'app_icon' => 'Ícone do Aplicativo',
'app_icon_desc' => 'Este ícone é usado para guias e ícones de atalhos do navegador. Deve ser uma imagem PNG quadrada de 256px.',
'app_homepage' => 'Página Inicial',
- 'app_homepage_desc' => 'Selecione uma opção para ser exibida como página inicial em vez da padrão. Permissões de página serão ignoradas para as páginas selecionadas.',
+ 'app_homepage_desc' => 'Selecione uma opção para ser exibida como página inicial no lugar da página padrão. Permissões de página serão ignoradas para as páginas selecionadas.',
'app_homepage_select' => 'Selecione uma página',
'app_footer_links' => 'Links do Rodapé',
'app_footer_links_desc' => 'Adicionar links para mostrar dentro do rodapé do site. Estes serão exibidos na parte inferior da maioria das páginas, incluindo aqueles que não necessitam de login. Você pode usar uma etiqueta de "trans::" para usar traduções definidas pelo sistema. Por exemplo: Usando "trans::common.privacy_policy" fornecerá o texto traduzido "Política de Privacidade" e "trans::common.terms_of_service" fornecerá o texto traduzido "Termos de Serviço".',
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Nenhuma restrição definida',
// Sorting Settings
- 'sorting' => 'Ordenação',
- 'sorting_book_default' => 'Ordenação padrão de livros',
+ 'sorting' => 'Listas e classificações',
+ 'sorting_book_default' => 'Regra padrão de classificação de livros',
'sorting_book_default_desc' => 'Selecione a regra de ordenação padrão a ser aplicada a novos livros. Isso não afetará os livros existentes e pode ser substituído para cada livro individualmente.',
'sorting_rules' => 'Regras de ordenação',
'sorting_rules_desc' => 'Estas são operações de ordenação pré-definidas que podem ser aplicadas a conteúdos no sistema.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Data de Atualização',
'sort_rule_op_chapters_first' => 'Capítulos Primeiro',
'sort_rule_op_chapters_last' => 'Capítulos por Último',
+ 'sorting_page_limits' => 'Limites de exibição por página',
+ 'sorting_page_limits_desc' => 'Defina quantos itens serão exibidos por página em diferentes listas do sistema. Normalmente, um número menor proporciona melhor desempenho, enquanto um número maior evita a necessidade de clicar em várias páginas. É recomendado o uso de um múltiplo par de 3 (18, 24, 30, etc.).',
// Maintenance settings
'maint' => 'Manutenção',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Importar conteúdo',
'role_editor_change' => 'Alterar página de edição',
'role_notifications' => 'Receber e gerenciar notificações',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Permissões de Ativos',
'roles_system_warning' => 'Esteja ciente de que o acesso a qualquer uma das três permissões acima pode permitir que um usuário altere seus próprios privilégios ou privilégios de outros usuários no sistema. Apenas atribua perfis com essas permissões para usuários confiáveis.',
'role_asset_desc' => 'Essas permissões controlam o acesso padrão para os ativos dentro do sistema. Permissões em Livros, Capítulos e Páginas serão sobrescritas por essas permissões.',
'role_asset_admins' => 'Administradores recebem automaticamente acesso a todo o conteúdo, mas essas opções podem mostrar ou ocultar as opções da Interface de Usuário.',
'role_asset_image_view_note' => 'Isso está relacionado à visibilidade no gerenciador de imagens. O acesso real dos arquivos de imagem carregados dependerá da opção de armazenamento de imagem do sistema.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Todos',
'role_own' => 'Próprio',
'role_controlled_by_asset' => 'Controlado pelos ativos nos quais o upload foi realizado',
diff --git a/lang/pt_BR/validation.php b/lang/pt_BR/validation.php
index 9ddfdf2a5..e30ebc377 100644
--- a/lang/pt_BR/validation.php
+++ b/lang/pt_BR/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'O arquivo não pôde ser carregado. O servidor pode não aceitar arquivos deste tamanho.',
'zip_file' => 'O :attribute precisa fazer referência a um arquivo do ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'O :attribute precisa fazer referência a um arquivo do tipo :validTypes, encontrado :foundType.',
'zip_model_expected' => 'Objeto de dados esperado, mas ":type" encontrado.',
'zip_unique' => 'O :attribute deve ser único para o tipo de objeto dentro do ZIP.',
diff --git a/lang/ro/errors.php b/lang/ro/errors.php
index 07c295b07..dec7be134 100644
--- a/lang/ro/errors.php
+++ b/lang/ro/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/ro/notifications.php b/lang/ro/notifications.php
index 676eeb814..da7f590fd 100644
--- a/lang/ro/notifications.php
+++ b/lang/ro/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Pagina actualizată: :pageName',
'updated_page_intro' => 'O nouă pagină a fost creată în :appName:',
'updated_page_debounce' => 'Pentru a preveni notificări în masă, pentru un timp nu veți primi notificări suplimentare la această pagină de către același editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Nume pagină:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/ro/preferences.php b/lang/ro/preferences.php
index f7529305c..93db2f66a 100644
--- a/lang/ro/preferences.php
+++ b/lang/ro/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Controlați notificările prin e-mail pe care le primiți atunci când o anumită activitate este efectuată în sistem.',
'notifications_opt_own_page_changes' => 'Notifică la comentarii pe paginile pe care le dețin',
'notifications_opt_own_page_comments' => 'Notifică la comentarii pe paginile pe care le dețin',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notifică la răspunsurile la comentariile mele',
'notifications_save' => 'Salvează Preferințe',
'notifications_update_success' => 'Preferințele de notificare au fost actualizate!',
diff --git a/lang/ro/settings.php b/lang/ro/settings.php
index a28dca22c..02052ef3c 100644
--- a/lang/ro/settings.php
+++ b/lang/ro/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Nicio restricție setată',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Mentenanţă',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Schimbă editorul de pagină',
'role_notifications' => 'Primire și gestionare notificări',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Permisiuni active',
'roles_system_warning' => 'Fi conștient de faptul că accesul la oricare dintre cele trei permisiuni de mai sus poate permite unui utilizator să își modifice propriile privilegii sau privilegiile altor persoane din sistem. Atribuie doar roluri cu aceste permisiuni utilizatorilor de încredere.',
'role_asset_desc' => 'Aceste permisiuni controlează accesul implicit la activele din sistem. Permisiunile pe Cărți, Capitole și Pagini vor suprascrie aceste permisiuni.',
'role_asset_admins' => 'Administratorilor li se acordă automat acces la tot conținutul, dar aceste opțiuni pot afișa sau ascunde opțiunile UI.',
'role_asset_image_view_note' => 'Acest lucru se referă la vizibilitatea în managerul de imagini. Accesul efectiv al fișierelor de imagine încărcate va depinde de opțiunea de stocare a imaginilor din sistem.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Tot',
'role_own' => 'Propriu',
'role_controlled_by_asset' => 'Controlat de activele pe care sunt încărcate',
diff --git a/lang/ro/validation.php b/lang/ro/validation.php
index 56a3e2e05..44fdd7ad8 100644
--- a/lang/ro/validation.php
+++ b/lang/ro/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Fişierul nu a putut fi încărcat. Serverul nu poate accepta fişiere de această dimensiune.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/ru/editor.php b/lang/ru/editor.php
index bd0c45f31..d26f7edfe 100644
--- a/lang/ru/editor.php
+++ b/lang/ru/editor.php
@@ -29,10 +29,10 @@ return [
// Toolbar
'formats' => 'Форматы',
- 'header_large' => 'Большой',
- 'header_medium' => 'Средний',
- 'header_small' => 'Маленький',
- 'header_tiny' => 'Крошечный',
+ 'header_large' => 'Крупный заголовок',
+ 'header_medium' => 'Средний заголовок',
+ 'header_small' => 'Небольшой заголовок',
+ 'header_tiny' => 'Маленький заголовок',
'paragraph' => 'Обычный текст',
'blockquote' => 'Цитата',
'inline_code' => 'Встроенный код',
diff --git a/lang/ru/errors.php b/lang/ru/errors.php
index e87c90936..82aecb657 100644
--- a/lang/ru/errors.php
+++ b/lang/ru/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'У вас недостаточно прав для создания книг.',
diff --git a/lang/ru/notifications.php b/lang/ru/notifications.php
index c5e98da80..289de42b6 100644
--- a/lang/ru/notifications.php
+++ b/lang/ru/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Обновлена страница: :pageName',
'updated_page_intro' => 'Страница была обновлена в :appName:',
'updated_page_debounce' => 'Чтобы предотвратить массовые уведомления, в течение некоторого времени вы не будете получать уведомления о дальнейших правках этой страницы этим же редактором.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Имя страницы:',
'detail_page_path' => 'Путь страницы:',
diff --git a/lang/ru/preferences.php b/lang/ru/preferences.php
index 27217815d..b61b252c8 100644
--- a/lang/ru/preferences.php
+++ b/lang/ru/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Управляйте полученными по электронной почте уведомлениями при выполнении определенных действий в системе.',
'notifications_opt_own_page_changes' => 'Уведомлять об изменениях в собственных страницах',
'notifications_opt_own_page_comments' => 'Уведомлять о комментариях на собственных страницах',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Уведомлять об ответах на мои комментарии',
'notifications_save' => 'Сохранить настройки',
'notifications_update_success' => 'Настройки уведомлений были обновлены!',
diff --git a/lang/ru/settings.php b/lang/ru/settings.php
index 69c13e46d..47839d520 100644
--- a/lang/ru/settings.php
+++ b/lang/ru/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Без ограничений',
// Sorting Settings
- 'sorting' => 'Сортировка',
- 'sorting_book_default' => 'Сортировка книг по умолчанию',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Выберите правило сортировки по умолчанию для новых книг. Это не повлияет на существующие книги, и может быть изменено для каждой книги отдельно.',
'sorting_rules' => 'Правила сортировки',
'sorting_rules_desc' => 'Выберите правило сортировки по умолчанию для новых книг. Это не повлияет на существующие книги и может быть изменено для каждой книги отдельно.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Главы в конце',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Обслуживание',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Изменение редактора страниц',
'role_notifications' => 'Получение и управление уведомлениями',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Права доступа к материалам',
'roles_system_warning' => 'Имейте в виду, что доступ к любому из указанных выше трех разрешений может позволить пользователю изменить свои собственные привилегии или привилегии других пользователей системы. Назначать роли с этими правами можно только доверенным пользователям.',
'role_asset_desc' => 'Эти разрешения контролируют доступ по умолчанию к параметрам внутри системы. Разрешения на книги, главы и страницы перезапишут эти разрешения.',
'role_asset_admins' => 'Администраторы автоматически получают доступ ко всему контенту, но эти опции могут отображать или скрывать параметры пользовательского интерфейса.',
'role_asset_image_view_note' => 'Это относится к видимости в менеджере изображений. Фактический доступ к загруженным файлам изображений будет зависеть от опции хранения системных изображений.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Все',
'role_own' => 'Владелец',
'role_controlled_by_asset' => 'Контролируется активом, в который они загружены',
diff --git a/lang/ru/validation.php b/lang/ru/validation.php
index 156a05fe6..ce94faa3b 100644
--- a/lang/ru/validation.php
+++ b/lang/ru/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Не удалось загрузить файл. Сервер не может принимать файлы такого размера.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/sk/errors.php b/lang/sk/errors.php
index 143259f3a..30609b201 100644
--- a/lang/sk/errors.php
+++ b/lang/sk/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/sk/notifications.php b/lang/sk/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/sk/notifications.php
+++ b/lang/sk/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/sk/preferences.php b/lang/sk/preferences.php
index 85da4f331..54fbdb677 100644
--- a/lang/sk/preferences.php
+++ b/lang/sk/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/sk/settings.php b/lang/sk/settings.php
index 2731fd01a..04855a7f9 100644
--- a/lang/sk/settings.php
+++ b/lang/sk/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Nie sú nastavené žiadne obmedzenia',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Údržba',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Zmeniť editor stránky',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Oprávnenia majetku',
'roles_system_warning' => 'Uvedomte si, že prístup ku ktorémukoľvek z vyššie uvedených troch povolení môže používateľovi umožniť zmeniť svoje vlastné privilégiá alebo privilégiá ostatných v systéme. Roly s týmito povoleniami priraďujte iba dôveryhodným používateľom.',
'role_asset_desc' => 'Tieto oprávnenia regulujú prednastavený prístup k zdroju v systéme. Oprávnenia pre knihy, kapitoly a stránky majú vyššiu prioritu.',
'role_asset_admins' => 'Správcovia majú automaticky prístup ku všetkému obsahu, ale tieto možnosti môžu zobraziť alebo skryť možnosti používateľského rozhrania.',
'role_asset_image_view_note' => 'Toto sa týka viditeľnosti v rámci správcu obrázkov. Skutočný prístup k nahratým súborom obrázkov bude závisieť od možnosti ukladania obrázkov systému.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Všetko',
'role_own' => 'Vlastné',
'role_controlled_by_asset' => 'Regulované zdrojom, do ktorého sú nahrané',
diff --git a/lang/sk/validation.php b/lang/sk/validation.php
index 415f7cf05..60063752b 100644
--- a/lang/sk/validation.php
+++ b/lang/sk/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Súbor sa nepodarilo nahrať. Server nemusí akceptovať súbory tejto veľkosti.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/sl/errors.php b/lang/sl/errors.php
index da80fd391..cb3db2747 100644
--- a/lang/sl/errors.php
+++ b/lang/sl/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/sl/notifications.php b/lang/sl/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/sl/notifications.php
+++ b/lang/sl/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/sl/preferences.php b/lang/sl/preferences.php
index 2872f5f3c..f4459d738 100644
--- a/lang/sl/preferences.php
+++ b/lang/sl/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/sl/settings.php b/lang/sl/settings.php
index 904978f47..6eaed0a17 100644
--- a/lang/sl/settings.php
+++ b/lang/sl/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Brez omejitev',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Vzdrževanje',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Sistemska dovoljenja',
'roles_system_warning' => 'Zavedajte se, da lahko dostop do kateregakoli od zgornjih treh dovoljenj uporabniku omogoči, da spremeni lastne privilegije ali privilegije drugih v sistemu. Vloge s temi dovoljenji dodelite samo zaupanja vrednim uporabnikom.',
'role_asset_desc' => 'Ta dovoljenja nadzorujejo privzeti dostop do sredstev v sistemu. Dovoljenja za knjige, poglavja in strani bodo razveljavila ta dovoljenja.',
'role_asset_admins' => 'Skrbniki samodejno pridobijo dostop do vseh vsebin, vendar lahko te možnosti prikažejo ali pa skrijejo možnosti uporabniškega vmesnika.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Vse',
'role_own' => 'Lasten',
'role_controlled_by_asset' => 'Nadzira ga sredstvo, v katerega so naloženi',
diff --git a/lang/sl/validation.php b/lang/sl/validation.php
index 0d9b56c10..84ad6ca45 100644
--- a/lang/sl/validation.php
+++ b/lang/sl/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Datoteke ni bilo mogoče naložiti. Strežnik morda ne sprejema datotek te velikosti.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/sq/common.php b/lang/sq/common.php
index 06a9e855c..aa2988124 100644
--- a/lang/sq/common.php
+++ b/lang/sq/common.php
@@ -89,8 +89,8 @@ return [
'homepage' => 'Homepage',
'header_menu_expand' => 'Expand Header Menu',
'profile_menu' => 'Profile Menu',
- 'view_profile' => 'View Profile',
- 'edit_profile' => 'Edit Profile',
+ 'view_profile' => 'Shiko profilin',
+ 'edit_profile' => 'Ndrysho profilin',
'dark_mode' => 'Dark Mode',
'light_mode' => 'Light Mode',
'global_search' => 'Global Search',
diff --git a/lang/sq/errors.php b/lang/sq/errors.php
index 9d7383796..77d7ee69e 100644
--- a/lang/sq/errors.php
+++ b/lang/sq/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/sq/notifications.php b/lang/sq/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/sq/notifications.php
+++ b/lang/sq/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/sq/preferences.php b/lang/sq/preferences.php
index 2872f5f3c..f4459d738 100644
--- a/lang/sq/preferences.php
+++ b/lang/sq/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/sq/settings.php b/lang/sq/settings.php
index 81c2c0a93..c68605fe1 100644
--- a/lang/sq/settings.php
+++ b/lang/sq/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Maintenance',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'All',
'role_own' => 'Own',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/sq/validation.php b/lang/sq/validation.php
index d9b982d1e..ff028525d 100644
--- a/lang/sq/validation.php
+++ b/lang/sq/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/sr/activities.php b/lang/sr/activities.php
index ad594a220..b4aa5e2a7 100644
--- a/lang/sr/activities.php
+++ b/lang/sr/activities.php
@@ -85,9 +85,9 @@ return [
'webhook_delete_notification' => 'Вебхоок је успешно обрисан',
// Imports
- 'import_create' => 'created import',
+ 'import_create' => 'креиран увоз',
'import_create_notification' => 'Import successfully uploaded',
- 'import_run' => 'updated import',
+ 'import_run' => 'ажуриран увоз',
'import_run_notification' => 'Content successfully imported',
'import_delete' => 'deleted import',
'import_delete_notification' => 'Import successfully deleted',
diff --git a/lang/sr/common.php b/lang/sr/common.php
index e185c99f5..c5c62db65 100644
--- a/lang/sr/common.php
+++ b/lang/sr/common.php
@@ -30,7 +30,7 @@ return [
'create' => 'Креирај',
'update' => 'Ажурирање',
'edit' => 'Уреди',
- 'archive' => 'Archive',
+ 'archive' => 'Архивирај',
'unarchive' => 'Un-Archive',
'sort' => 'Разврстај',
'move' => 'Премести',
diff --git a/lang/sr/editor.php b/lang/sr/editor.php
index e5052595c..2756775a9 100644
--- a/lang/sr/editor.php
+++ b/lang/sr/editor.php
@@ -13,7 +13,7 @@ return [
'cancel' => 'Поништи',
'save' => 'Сачувај',
'close' => 'Затвори',
- 'apply' => 'Apply',
+ 'apply' => 'Примени',
'undo' => 'Опозови',
'redo' => 'Понови',
'left' => 'Лево',
diff --git a/lang/sr/entities.php b/lang/sr/entities.php
index 456a76ceb..151edee40 100644
--- a/lang/sr/entities.php
+++ b/lang/sr/entities.php
@@ -50,7 +50,7 @@ return [
'import_zip_validation_errors' => 'Errors were detected while validating the provided ZIP file:',
'import_pending' => 'Pending Imports',
'import_pending_none' => 'No imports have been started.',
- 'import_continue' => 'Continue Import',
+ 'import_continue' => 'Настави увоз',
'import_continue_desc' => 'Review the content due to be imported from the uploaded ZIP file. When ready, run the import to add its contents to this system. The uploaded ZIP import file will be automatically removed on successful import.',
'import_details' => 'Import Details',
'import_run' => 'Run Import',
@@ -109,7 +109,7 @@ return [
// Shelves
'shelf' => 'Shelf',
- 'shelves' => 'Shelves',
+ 'shelves' => 'Полице',
'x_shelves' => ':count Shelf|:count Shelves',
'shelves_empty' => 'No shelves have been created',
'shelves_create' => 'Create New Shelf',
diff --git a/lang/sr/errors.php b/lang/sr/errors.php
index ee8443461..f28fc01a9 100644
--- a/lang/sr/errors.php
+++ b/lang/sr/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/sr/notifications.php b/lang/sr/notifications.php
index 6aa3f2abb..4cc499fdd 100644
--- a/lang/sr/notifications.php
+++ b/lang/sr/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Ажурирана страница: :pageName',
'updated_page_intro' => 'Страница је ажурирана у :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Назив странице:',
'detail_page_path' => 'Путања странице:',
diff --git a/lang/sr/preferences.php b/lang/sr/preferences.php
index 2872f5f3c..f4459d738 100644
--- a/lang/sr/preferences.php
+++ b/lang/sr/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/sr/settings.php b/lang/sr/settings.php
index b7213e905..d34ff3f3b 100644
--- a/lang/sr/settings.php
+++ b/lang/sr/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Нема постављених ограничења',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Одржавање',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'All',
'role_own' => 'Own',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/sr/validation.php b/lang/sr/validation.php
index d9b982d1e..6770c5a80 100644
--- a/lang/sr/validation.php
+++ b/lang/sr/validation.php
@@ -14,7 +14,7 @@ return [
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
- 'array' => 'The :attribute must be an array.',
+ 'array' => ':attribute мора бити низ.',
'backup_codes' => 'The provided code is not valid or has already been used.',
'before' => 'The :attribute must be a date before :date.',
'between' => [
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/sv/common.php b/lang/sv/common.php
index 23a98d9e3..2eab9bd7b 100644
--- a/lang/sv/common.php
+++ b/lang/sv/common.php
@@ -30,8 +30,8 @@ return [
'create' => 'Skapa',
'update' => 'Uppdatera',
'edit' => 'Redigera',
- 'archive' => 'Archive',
- 'unarchive' => 'Un-Archive',
+ 'archive' => 'Arkivera',
+ 'unarchive' => 'Avarkivera',
'sort' => 'Sortera',
'move' => 'Flytta',
'copy' => 'Kopiera',
diff --git a/lang/sv/editor.php b/lang/sv/editor.php
index c2485817d..fbcdf8c33 100644
--- a/lang/sv/editor.php
+++ b/lang/sv/editor.php
@@ -48,7 +48,7 @@ return [
'superscript' => 'Upphöjd',
'subscript' => 'Nedsänkt',
'text_color' => 'Textfärg',
- 'highlight_color' => 'Highlight color',
+ 'highlight_color' => 'Markera färg',
'custom_color' => 'Anpassad färg',
'remove_color' => 'Ta bort färg',
'background_color' => 'Bakgrundsfärg',
diff --git a/lang/sv/entities.php b/lang/sv/entities.php
index a1e826b30..08c44ff1f 100644
--- a/lang/sv/entities.php
+++ b/lang/sv/entities.php
@@ -17,7 +17,7 @@ return [
'recent_activity' => 'Aktivitet',
'create_now' => 'Skapa en nu',
'revisions' => 'Revisioner',
- 'meta_revision' => 'Revisions #:revisionCount',
+ 'meta_revision' => 'Revision #:revisionCount',
'meta_created' => 'Skapad :timeLength',
'meta_created_name' => 'Skapad :timeLength av :user',
'meta_updated' => 'Uppdaterad :timeLength',
@@ -410,14 +410,14 @@ return [
'comment_deleted_success' => 'Kommentar borttagen',
'comment_created_success' => 'Kommentaren har sparats',
'comment_updated_success' => 'Kommentaren har uppdaterats',
- 'comment_archive_success' => 'Comment archived',
+ 'comment_archive_success' => 'Arkivera kommentar',
'comment_unarchive_success' => 'Comment un-archived',
- 'comment_view' => 'View comment',
- 'comment_jump_to_thread' => 'Jump to thread',
+ 'comment_view' => 'Visa kommentar',
+ 'comment_jump_to_thread' => 'Hoppa till tråd',
'comment_delete_confirm' => 'Är du säker på att du vill ta bort den här kommentaren?',
'comment_in_reply_to' => 'Som svar på :commentId',
- 'comment_reference' => 'Reference',
- 'comment_reference_outdated' => '(Outdated)',
+ 'comment_reference' => 'Referens',
+ 'comment_reference_outdated' => '(Utdaterad)',
'comment_editor_explain' => 'Här är kommentarer som lämnats på denna sida. Kommentarer kan läggas till och hanteras när den sparade sidan visas.',
// Revision
diff --git a/lang/sv/errors.php b/lang/sv/errors.php
index d65b7d0a0..3a5478977 100644
--- a/lang/sv/errors.php
+++ b/lang/sv/errors.php
@@ -37,20 +37,20 @@ return [
'social_driver_not_found' => 'Drivrutinen för den här tjänsten hittades inte',
'social_driver_not_configured' => 'Dina inställningar för :socialAccount är inte korrekta.',
'invite_token_expired' => 'Denna inbjudningslänk har löpt ut. Du kan istället försöka återställa ditt kontos lösenord.',
- 'login_user_not_found' => 'A user for this action could not be found.',
+ 'login_user_not_found' => 'En användare för denna åtgärd kunde inte hittas.',
// System
'path_not_writable' => 'Kunde inte ladda upp till sökvägen :filePath. Kontrollera att webbservern har skrivåtkomst.',
'cannot_get_image_from_url' => 'Kan inte hämta bild från :url',
'cannot_create_thumbs' => 'Servern kan inte skapa miniatyrer. Kontrollera att du har PHPs GD-tillägg aktiverat.',
'server_upload_limit' => 'Servern tillåter inte så här stora filer. Prova en mindre fil.',
- 'server_post_limit' => 'The server cannot receive the provided amount of data. Try again with less data or a smaller file.',
+ 'server_post_limit' => 'Servern kan inte ta emot den angivna mängden data. Försök igen med mindre data eller en mindre fil.',
'uploaded' => 'Servern tillåter inte så här stora filer. Prova en mindre fil.',
// Drawing & Images
'image_upload_error' => 'Ett fel inträffade vid uppladdningen',
'image_upload_type_error' => 'Filtypen du försöker ladda upp är ogiltig',
- 'image_upload_replace_type' => 'Image file replacements must be of the same type',
+ 'image_upload_replace_type' => 'Bilder som skall ersättas måste vara av samma filtyp',
'image_upload_memory_limit' => 'Failed to handle image upload and/or create thumbnails due to system resource limits.',
'image_thumbnail_memory_limit' => 'Failed to create image size variations due to system resource limits.',
'image_gallery_thumbnail_memory_limit' => 'Misslyckades att skapa galleriminiatyrer på grund av otillräckliga systemresurser.',
@@ -107,8 +107,9 @@ return [
// Import
'import_zip_cant_read' => 'Kunde inte läsa ZIP-filen.',
- 'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
+ 'import_zip_cant_decode_data' => 'Kunde inte hitta och avkoda ZIP data.json innehåll.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'ZIP-filen kunde inte valideras med fel:',
'import_zip_failed_notification' => 'Det gick inte att importera ZIP-fil.',
'import_perms_books' => 'Du saknar behörighet att skapa böcker.',
diff --git a/lang/sv/notifications.php b/lang/sv/notifications.php
index 58418ddb0..19933c049 100644
--- a/lang/sv/notifications.php
+++ b/lang/sv/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Uppdaterad sida: :pageName',
'updated_page_intro' => 'En sida har blivit uppdaterad i :appName:',
'updated_page_debounce' => 'För att förhindra en massa notiser, så kommer det inte skickas nya notiser på ett tag för ytterligare ändringar till denna sida av samma skribent.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Sidonamn:',
'detail_page_path' => 'Sidosökväg:',
diff --git a/lang/sv/preferences.php b/lang/sv/preferences.php
index 945099151..492081e59 100644
--- a/lang/sv/preferences.php
+++ b/lang/sv/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/sv/settings.php b/lang/sv/settings.php
index fdf8ebd06..2e86241da 100644
--- a/lang/sv/settings.php
+++ b/lang/sv/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Ingen begränsning inställd',
// Sorting Settings
- 'sorting' => 'Sorterar',
- 'sorting_book_default' => 'Standard boksortering',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Välj standard sorteringsregel som skall tillämpas på nya böcker. Detta påverkar inte befintliga böcker och kan åsidosättas per bok.',
'sorting_rules' => 'Sorteringsregler',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -91,18 +91,20 @@ return [
'sort_rule_details_desc' => 'Set a name for this sort rule, which will appear in lists when users are selecting a sort.',
'sort_rule_operations' => 'Sort Operations',
'sort_rule_operations_desc' => 'Configure the sort actions to be performed by moving them from the list of available operations. Upon use, the operations will be applied in order, from top to bottom. Any changes made here will be applied to all assigned books upon save.',
- 'sort_rule_available_operations' => 'Available Operations',
+ 'sort_rule_available_operations' => 'Tillgängliga åtgärder',
'sort_rule_available_operations_empty' => 'No operations remaining',
'sort_rule_configured_operations' => 'Configured Operations',
'sort_rule_configured_operations_empty' => 'Drag/add operations from the "Available Operations" list',
'sort_rule_op_asc' => '(Asc)',
'sort_rule_op_desc' => '(Desc)',
- 'sort_rule_op_name' => 'Name - Alphabetical',
- 'sort_rule_op_name_numeric' => 'Name - Numeric',
- 'sort_rule_op_created_date' => 'Created Date',
- 'sort_rule_op_updated_date' => 'Updated Date',
+ 'sort_rule_op_name' => 'Namn - Alfabetisk ordning',
+ 'sort_rule_op_name_numeric' => 'Namn - Numerisk ordning',
+ 'sort_rule_op_created_date' => 'Datum skapat',
+ 'sort_rule_op_updated_date' => 'Datum uppdaterat',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Underhåll',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Ändra sidredigerare',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Tillgång till innehåll',
'roles_system_warning' => 'Var medveten om att åtkomst till någon av ovanstående tre behörigheter kan tillåta en användare att ändra sina egna rättigheter eller andras rättigheter i systemet. Tilldela endast roller med dessa behörigheter till betrodda användare.',
'role_asset_desc' => 'Det här är standardinställningarna för allt innehåll i systemet. Eventuella anpassade rättigheter på böcker, kapitel och sidor skriver över dessa inställningar.',
'role_asset_admins' => 'Administratörer har automatisk tillgång till allt innehåll men dessa alternativ kan visa och dölja vissa gränssnittselement',
'role_asset_image_view_note' => 'Detta avser synlighet inom bildhanteraren. Faktisk åtkomst för uppladdade bildfiler kommer att bero på alternativ för bildlagring.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Alla',
'role_own' => 'Egna',
'role_controlled_by_asset' => 'Kontrolleras av den sida de laddas upp till',
diff --git a/lang/sv/validation.php b/lang/sv/validation.php
index 4cc98c575..b0c1f7a1b 100644
--- a/lang/sv/validation.php
+++ b/lang/sv/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Filen kunde inte laddas upp. Servern kanske inte tillåter filer med denna storlek.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/tk/errors.php b/lang/tk/errors.php
index 9d7383796..77d7ee69e 100644
--- a/lang/tk/errors.php
+++ b/lang/tk/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/tk/notifications.php b/lang/tk/notifications.php
index 1afd23f1d..563ac24e8 100644
--- a/lang/tk/notifications.php
+++ b/lang/tk/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/tk/preferences.php b/lang/tk/preferences.php
index 2872f5f3c..f4459d738 100644
--- a/lang/tk/preferences.php
+++ b/lang/tk/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/tk/settings.php b/lang/tk/settings.php
index 81c2c0a93..c68605fe1 100644
--- a/lang/tk/settings.php
+++ b/lang/tk/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Maintenance',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Change page editor',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Asset Permissions',
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
'role_asset_admins' => 'Admins are automatically given access to all content but these options may show or hide UI options.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'All',
'role_own' => 'Own',
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
diff --git a/lang/tk/validation.php b/lang/tk/validation.php
index d9b982d1e..ff028525d 100644
--- a/lang/tk/validation.php
+++ b/lang/tk/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'The file could not be uploaded. The server may not accept files of this size.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/tr/errors.php b/lang/tr/errors.php
index fd7426871..259cc4b1c 100644
--- a/lang/tr/errors.php
+++ b/lang/tr/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/tr/notifications.php b/lang/tr/notifications.php
index c26a90b32..5dfb71978 100644
--- a/lang/tr/notifications.php
+++ b/lang/tr/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Updated page: :pageName',
'updated_page_intro' => 'A page has been updated in :appName:',
'updated_page_debounce' => 'To prevent a mass of notifications, for a while you won\'t be sent notifications for further edits to this page by the same editor.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Page Name:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/tr/preferences.php b/lang/tr/preferences.php
index 1ce7b01fd..f4ec771b2 100644
--- a/lang/tr/preferences.php
+++ b/lang/tr/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/tr/settings.php b/lang/tr/settings.php
index 1eb15d9d4..71d56000f 100644
--- a/lang/tr/settings.php
+++ b/lang/tr/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Hiçbir kısıtlama tanımlanmamış',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Bakım',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Yazı editörünü değiştir',
'role_notifications' => 'Receive & manage notifications',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Varlık Yetkileri',
'roles_system_warning' => 'Yukarıdaki üç izinden herhangi birine erişimin, kullanıcının kendi ayrıcalıklarını veya sistemdeki diğerlerinin ayrıcalıklarını değiştirmesine izin verebileceğini unutmayın. Yalnızca bu izinlere sahip rolleri güvenilir kullanıcılara atayın.',
'role_asset_desc' => 'Bu izinler, sistem içindeki varlıklara varsayılan erişim izinlerini ayarlar. Kitaplar, bölümler ve sayfalar üzerindeki izinler, buradaki izinleri geçersiz kılar.',
'role_asset_admins' => 'Yöneticilere otomatik olarak bütün içeriğe erişim yetkisi verilir ancak bu seçenekler, kullanıcı arayüzündeki bazı seçeneklerin gösterilmesine veya gizlenmesine neden olabilir.',
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Hepsi',
'role_own' => 'Kendine Ait',
'role_controlled_by_asset' => 'Yüklendikleri varlık tarafından kontrol ediliyor',
diff --git a/lang/tr/validation.php b/lang/tr/validation.php
index 9dbfadd6b..5916f4543 100644
--- a/lang/tr/validation.php
+++ b/lang/tr/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Dosya yüklemesi başarısız oldu. Sunucu, bu boyuttaki dosyaları kabul etmiyor olabilir.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/uk/common.php b/lang/uk/common.php
index 8539a93cf..d71f57162 100644
--- a/lang/uk/common.php
+++ b/lang/uk/common.php
@@ -30,8 +30,8 @@ return [
'create' => 'Створити',
'update' => 'Оновити',
'edit' => 'Редагувати',
- 'archive' => 'Archive',
- 'unarchive' => 'Un-Archive',
+ 'archive' => 'Архів',
+ 'unarchive' => 'Розархівувати',
'sort' => 'Сортувати',
'move' => 'Перемістити',
'copy' => 'Копіювати',
diff --git a/lang/uk/editor.php b/lang/uk/editor.php
index 6dbeb509b..b9024e052 100644
--- a/lang/uk/editor.php
+++ b/lang/uk/editor.php
@@ -48,7 +48,7 @@ return [
'superscript' => 'Верхній індекс',
'subscript' => 'Нижній індекс',
'text_color' => 'Колір тексту',
- 'highlight_color' => 'Highlight color',
+ 'highlight_color' => 'Колір підсвічування',
'custom_color' => 'Власний колір',
'remove_color' => 'Видалити колір',
'background_color' => 'Колір фону',
diff --git a/lang/uk/entities.php b/lang/uk/entities.php
index 72853697b..cf79b530c 100644
--- a/lang/uk/entities.php
+++ b/lang/uk/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => 'Це видалить завантажений імпорт файлу ZIP, і його не можна буде скасувати.',
'import_errors' => 'Помилки імпорту',
'import_errors_desc' => 'Під час спроби імпорту відбулися наступні помилки:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Переглянути інші сторінки',
+ 'breadcrumb_siblings_for_chapter' => 'Переглянути інші розділи',
+ 'breadcrumb_siblings_for_book' => 'Переглянути інші книги',
+ 'breadcrumb_siblings_for_bookshelf' => 'Переглянути інші полиці',
// Permissions and restrictions
'permissions' => 'Дозволи',
@@ -252,7 +252,7 @@ return [
'pages_edit_switch_to_markdown_stable' => '(Стабілізувати вміст)',
'pages_edit_switch_to_wysiwyg' => 'Змінити редактор на WYSIWYG',
'pages_edit_switch_to_new_wysiwyg' => 'Перейти на новий WYSIWYG',
- 'pages_edit_switch_to_new_wysiwyg_desc' => '(In Beta Testing)',
+ 'pages_edit_switch_to_new_wysiwyg_desc' => '(На бета-тестування)',
'pages_edit_set_changelog' => 'Встановити журнал змін',
'pages_edit_enter_changelog_desc' => 'Введіть короткий опис внесених вами змін',
'pages_edit_enter_changelog' => 'Введіть список змін',
@@ -272,7 +272,7 @@ return [
'pages_md_insert_drawing' => 'Вставити малюнок',
'pages_md_show_preview' => 'Показати попередній перегляд',
'pages_md_sync_scroll' => 'Синхронізація прокручування попереднього перегляду',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => 'Текстовий редактор',
'pages_drawing_unsaved' => 'Знайдено незбережену чернетку',
'pages_drawing_unsaved_confirm' => 'Незбережені чернетки були знайдені з попередньої спроби зберегти звіт. Хочете відновити і продовжити редагування цієї чернетки?',
'pages_not_in_chapter' => 'Сторінка не знаходиться в розділі',
@@ -397,11 +397,11 @@ return [
'comment' => 'Коментар',
'comments' => 'Коментарі',
'comment_add' => 'Додати коментар',
- 'comment_none' => 'No comments to display',
+ 'comment_none' => 'Немає коментарів для відображення',
'comment_placeholder' => 'Залиште коментар тут',
- 'comment_thread_count' => ':count Comment Thread|:count Comment Threads',
- 'comment_archived_count' => ':count Archived',
- 'comment_archived_threads' => 'Archived Threads',
+ 'comment_thread_count' => ':count тема коментарів|:count теми коментарів',
+ 'comment_archived_count' => 'Архівовано :count',
+ 'comment_archived_threads' => 'Архівовані теми',
'comment_save' => 'Зберегти коментар',
'comment_new' => 'Новий коментар',
'comment_created' => 'прокоментував :createDiff',
@@ -410,14 +410,14 @@ return [
'comment_deleted_success' => 'Коментар видалено',
'comment_created_success' => 'Коментар додано',
'comment_updated_success' => 'Коментар оновлено',
- 'comment_archive_success' => 'Comment archived',
- 'comment_unarchive_success' => 'Comment un-archived',
- 'comment_view' => 'View comment',
- 'comment_jump_to_thread' => 'Jump to thread',
+ 'comment_archive_success' => 'Коментар архівовано',
+ 'comment_unarchive_success' => 'Коментар розархівовано',
+ 'comment_view' => 'Переглянути коментар',
+ 'comment_jump_to_thread' => 'Перейти до теми',
'comment_delete_confirm' => 'Ви впевнені, що хочете видалити цей коментар?',
'comment_in_reply_to' => 'У відповідь на :commentId',
- 'comment_reference' => 'Reference',
- 'comment_reference_outdated' => '(Outdated)',
+ 'comment_reference' => 'По посиланню',
+ 'comment_reference_outdated' => '(Застарілий)',
'comment_editor_explain' => 'Ось коментарі, які залишилися на цій сторінці. Коментарі можна додати та керовані при перегляді збереженої сторінки.',
// Revision
diff --git a/lang/uk/errors.php b/lang/uk/errors.php
index eed61e8a0..40c0d9014 100644
--- a/lang/uk/errors.php
+++ b/lang/uk/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Не вдалося прочитати ZIP-файл.',
'import_zip_cant_decode_data' => 'Не вдалося знайти і розшифрувати контент ZIP data.json.',
'import_zip_no_data' => 'ZIP-файл не містить очікуваної книги, глави або вмісту сторінки.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Не вдалося виконати перевірку ZIP-адреси із помилками:',
'import_zip_failed_notification' => 'Не вдалося імпортувати ZIP-файл.',
'import_perms_books' => 'У Вас не вистачає необхідних прав для створення книг.',
diff --git a/lang/uk/notifications.php b/lang/uk/notifications.php
index a08b9a100..d40457f98 100644
--- a/lang/uk/notifications.php
+++ b/lang/uk/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Оновлено сторінку: :pageName',
'updated_page_intro' => 'Оновлено сторінку у :appName:',
'updated_page_debounce' => 'Для запобігання кількості сповіщень, деякий час ви не будете відправлені повідомлення для подальших змін на цій сторінці тим самим редактором.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Назва сторінки:',
'detail_page_path' => 'Шлях до сторінки:',
diff --git a/lang/uk/preferences.php b/lang/uk/preferences.php
index 14989d2a7..8af3a8d9e 100644
--- a/lang/uk/preferences.php
+++ b/lang/uk/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Контролюйте сповіщення по електронній пошті, які ви отримуєте, коли виконується певна активність у системі.',
'notifications_opt_own_page_changes' => 'Повідомляти при змінах сторінок якими я володію',
'notifications_opt_own_page_comments' => 'Повідомляти при коментарях на моїх сторінках',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Повідомляти про відповіді на мої коментарі',
'notifications_save' => 'Зберегти налаштування',
'notifications_update_success' => 'Налаштування сповіщень було оновлено!',
diff --git a/lang/uk/settings.php b/lang/uk/settings.php
index 3798f1b60..633582ca8 100644
--- a/lang/uk/settings.php
+++ b/lang/uk/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Не встановлено обмежень',
// Sorting Settings
- 'sorting' => 'Сортування',
- 'sorting_book_default' => 'Типовий порядок сортування',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Виберіть правило сортування за замовчуванням для застосування нових книг. Це не вплине на існуючі книги, і може бути перевизначено для кожної книги.',
'sorting_rules' => 'Сортувати правила',
'sorting_rules_desc' => 'Це попередньо визначені операції сортування, які можуть бути застосовані до вмісту в системі.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Дата оновлення',
'sort_rule_op_chapters_first' => 'Спочатку розділи',
'sort_rule_op_chapters_last' => 'Розділи останні',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Обслуговування',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Імпортувати вміст',
'role_editor_change' => 'Змінити редактор сторінок',
'role_notifications' => 'Отримувати та керувати повідомленнями',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Дозволи',
'roles_system_warning' => 'Майте на увазі, що доступ до будь-якого з вищезазначених трьох дозволів може дозволити користувачеві змінювати власні привілеї або привілеї інших в системі. Ролі з цими дозволами призначайте лише довіреним користувачам.',
'role_asset_desc' => 'Ці дозволи контролюють стандартні доступи всередині системи. Права на книги, розділи та сторінки перевизначать ці дозволи.',
'role_asset_admins' => 'Адміністратори автоматично отримують доступ до всього вмісту, але ці параметри можуть відображати або приховувати параметри інтерфейсу користувача.',
'role_asset_image_view_note' => 'Це стосується видимості в менеджері зображень. Фактичний доступ завантажуваних зображень буде залежний від опції зберігання системних зображень.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Все',
'role_own' => 'Власне',
'role_controlled_by_asset' => 'Контролюється за об\'єктом, до якого вони завантажуються',
diff --git a/lang/uk/validation.php b/lang/uk/validation.php
index 6161aba67..79aa50702 100644
--- a/lang/uk/validation.php
+++ b/lang/uk/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Не вдалося завантажити файл. Сервер може не приймати файли такого розміру.',
'zip_file' => 'Поле :attribute повинне вказувати файл в ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'Поле :attribute повинне посилатись на файл типу :validtypes, знайдений :foundType.',
'zip_model_expected' => 'Очікувався об’єкт даних, але знайдено ":type".',
'zip_unique' => 'Поле :attribute має бути унікальним для типу об\'єкта в ZIP.',
diff --git a/lang/uz/errors.php b/lang/uz/errors.php
index a0d86c441..052b29adf 100644
--- a/lang/uz/errors.php
+++ b/lang/uz/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Could not read ZIP file.',
'import_zip_cant_decode_data' => 'Could not find and decode ZIP data.json content.',
'import_zip_no_data' => 'ZIP file data has no expected book, chapter or page content.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Import ZIP failed to validate with errors:',
'import_zip_failed_notification' => 'Failed to import ZIP file.',
'import_perms_books' => 'You are lacking the required permissions to create books.',
diff --git a/lang/uz/notifications.php b/lang/uz/notifications.php
index bec9b3925..ece09441e 100644
--- a/lang/uz/notifications.php
+++ b/lang/uz/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => ':pageName sahifasi yangilandi',
'updated_page_intro' => ':appName ichida sahifa yangilandi:',
'updated_page_debounce' => 'Xabarnomalar koʻp boʻlishining oldini olish uchun bir muncha vaqt oʻsha muharrir tomonidan ushbu sahifaga keyingi tahrirlar haqida bildirishnomalar yuborilmaydi.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Sahifa nomi:',
'detail_page_path' => 'Page Path:',
diff --git a/lang/uz/preferences.php b/lang/uz/preferences.php
index de36b953e..996f9d3c4 100644
--- a/lang/uz/preferences.php
+++ b/lang/uz/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Tizimda muayyan harakatlar amalga oshirilganda qabul qilinadigan elektron pochta xabarnomalarini boshqaring.',
'notifications_opt_own_page_changes' => 'Menga tegishli boʻlgan sahifalarimdagi oʻzgarishlar haqida xabar bering',
'notifications_opt_own_page_comments' => 'Menga tegishli sahifalardagi sharhlar haqida xabar bering',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Fikrlarimga javoblarim haqida xabar bering',
'notifications_save' => 'Afzalliklarni saqlash',
'notifications_update_success' => 'Bildirishnoma sozlamalari yangilandi!',
diff --git a/lang/uz/settings.php b/lang/uz/settings.php
index 83fedc569..ad191143f 100644
--- a/lang/uz/settings.php
+++ b/lang/uz/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Cheklov oʻrnatilmagan',
// Sorting Settings
- 'sorting' => 'Sorting',
- 'sorting_book_default' => 'Default Book Sort',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Select the default sort rule to apply to new books. This won\'t affect existing books, and can be overridden per-book.',
'sorting_rules' => 'Sort Rules',
'sorting_rules_desc' => 'These are predefined sorting operations which can be applied to content in the system.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Updated Date',
'sort_rule_op_chapters_first' => 'Chapters First',
'sort_rule_op_chapters_last' => 'Chapters Last',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Xizmat',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Import content',
'role_editor_change' => 'Sahifa muharririni o\'zgartirish',
'role_notifications' => 'Bildirishnomalarni qabul qilish va boshqarish',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Obyektga ruxsatlar',
'roles_system_warning' => 'Shuni yodda tutingki, yuqoridagi uchta ruxsatdan birortasiga kirish foydalanuvchiga o\'z imtiyozlarini yoki tizimdagi boshqalarning imtiyozlarini o\'zgartirishi mumkin. Ishonchli foydalanuvchilarga faqat ushbu ruxsatlarga ega rollarni tayinlang.',
'role_asset_desc' => 'Bu ruxsatlar tizim ichidagi aktivlarga standart kirishni nazorat qiladi. Kitoblar, boblar va sahifalardagi ruxsatlar bu ruxsatlarni bekor qiladi.',
'role_asset_admins' => 'Administratorlarga avtomatik ravishda barcha kontentga kirish huquqi beriladi, lekin bu parametrlar UI parametrlarini koʻrsatishi yoki yashirishi mumkin.',
'role_asset_image_view_note' => 'Bu tasvir menejeridagi ko\'rinishga tegishli. Yuklangan rasm fayllariga haqiqiy kirish tizim tasvirini saqlash opsiyasiga bog\'liq bo\'ladi.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Hammasi',
'role_own' => 'Shaxsiy',
'role_controlled_by_asset' => 'Ular yuklangan obyekt tomonidan nazorat qilinadi',
diff --git a/lang/uz/validation.php b/lang/uz/validation.php
index d9d0fa0b2..600195587 100644
--- a/lang/uz/validation.php
+++ b/lang/uz/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Faylni yuklashda xatolik. Server bunday hajmdagi faylllarni yuklamasligi mumkin.',
'zip_file' => 'The :attribute needs to reference a file within the ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.',
'zip_model_expected' => 'Data object expected but ":type" found.',
'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.',
diff --git a/lang/vi/editor.php b/lang/vi/editor.php
index d76a70815..fd3dbdfb1 100644
--- a/lang/vi/editor.php
+++ b/lang/vi/editor.php
@@ -48,7 +48,7 @@ return [
'superscript' => 'Chỉ số trên',
'subscript' => 'Chỉ số dưới',
'text_color' => 'Màu chữ',
- 'highlight_color' => 'Highlight color',
+ 'highlight_color' => 'Màu đánh dấu',
'custom_color' => 'Màu tùy chỉnh',
'remove_color' => 'Xóa màu',
'background_color' => 'Màu nền',
diff --git a/lang/vi/entities.php b/lang/vi/entities.php
index 1914d32c8..f538f993c 100644
--- a/lang/vi/entities.php
+++ b/lang/vi/entities.php
@@ -60,13 +60,13 @@ return [
'import_location' => 'Vị trí nhập',
'import_location_desc' => 'Chọn vị trí đích cho nội dung đã nhập của bạn. Bạn sẽ cần các quyền liên quan để tạo trong vị trí bạn chọn.',
'import_delete_confirm' => 'Bạn có chắc chắn muốn xóa lượt nhập này không?',
- 'import_delete_desc' => 'Thao tác này sẽ xóa tệp ZIP nhập đã tải lên và không thể hoàn tác.',
- 'import_errors' => 'Lỗi nhập',
+ 'import_delete_desc' => 'Thao tác này sẽ xóa tệp ZIP đã tải lên, và không thể hoàn tác.',
+ 'import_errors' => 'Lỗi khi nhập dữ liệu',
'import_errors_desc' => 'Các lỗi sau đã xảy ra trong quá trình nhập:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => 'Điều hướng anh chị em cho trang',
+ 'breadcrumb_siblings_for_chapter' => 'Điều hướng anh chị em cho chương',
+ 'breadcrumb_siblings_for_book' => 'Điều hướng anh chị em cho sách',
+ 'breadcrumb_siblings_for_bookshelf' => 'Điều hướng anh chị em cho kệ sách',
// Permissions and restrictions
'permissions' => 'Quyền',
diff --git a/lang/vi/errors.php b/lang/vi/errors.php
index bae87dc38..d422b716a 100644
--- a/lang/vi/errors.php
+++ b/lang/vi/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => 'Không thể đọc tệp ZIP.',
'import_zip_cant_decode_data' => 'Không thể tìm và giải mã nội dung ZIP data.json.',
'import_zip_no_data' => 'Dữ liệu tệp ZIP không có nội dung sách, chương hoặc trang mong đợi.',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => 'Nhập tệp ZIP không hợp lệ với các lỗi:',
'import_zip_failed_notification' => 'Không thể nhập tệp ZIP.',
'import_perms_books' => 'Bạn không có quyền cần thiết để tạo sách.',
diff --git a/lang/vi/notifications.php b/lang/vi/notifications.php
index a18695b23..45fb4434f 100644
--- a/lang/vi/notifications.php
+++ b/lang/vi/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => 'Trang đã cập nhật: :pageName',
'updated_page_intro' => 'Một trang mới đã được cập nhật trong :appName:',
'updated_page_debounce' => 'Để tránh việc nhận quá nhiều thông báo, trong một thời gian, bạn sẽ không nhận được thông báo về những chỉnh sửa tiếp theo cho trang này từ cùng một biên tập viên.',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => 'Tên Trang:',
'detail_page_path' => 'Đường dẫn trang:',
diff --git a/lang/vi/preferences.php b/lang/vi/preferences.php
index 76bc0be16..3e06ccd30 100644
--- a/lang/vi/preferences.php
+++ b/lang/vi/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => 'Control the email notifications you receive when certain activity is performed within the system.',
'notifications_opt_own_page_changes' => 'Notify upon changes to pages I own',
'notifications_opt_own_page_comments' => 'Notify upon comments on pages I own',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => 'Notify upon replies to my comments',
'notifications_save' => 'Save Preferences',
'notifications_update_success' => 'Notification preferences have been updated!',
diff --git a/lang/vi/settings.php b/lang/vi/settings.php
index 1ff252702..69eadddd3 100644
--- a/lang/vi/settings.php
+++ b/lang/vi/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => 'Không có giới hạn nào được thiết lập',
// Sorting Settings
- 'sorting' => 'Sắp xếp',
- 'sorting_book_default' => 'Sắp xếp sách mặc định',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => 'Chọn quy tắc sắp xếp mặc định để áp dụng cho sách mới. Điều này sẽ không ảnh hưởng đến các sách hiện có và có thể được ghi đè cho từng sách.',
'sorting_rules' => 'Quy tắc sắp xếp',
'sorting_rules_desc' => 'Đây là các thao tác sắp xếp được xác định trước có thể được áp dụng cho nội dung trong hệ thống.',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => 'Ngày cập nhật',
'sort_rule_op_chapters_first' => 'Chương trước',
'sort_rule_op_chapters_last' => 'Chương sau',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => 'Bảo trì',
@@ -195,11 +197,13 @@ return [
'role_import_content' => 'Nhập nội dung',
'role_editor_change' => 'Thay đổi trình soạn thảo trang',
'role_notifications' => 'Nhận & quản lý thông báo',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => 'Quyền tài sản (asset)',
'roles_system_warning' => 'Cần lưu ý rằng việc truy cập vào bất kỳ ba quyền trên có thể cho phép người dùng thay đổi đặc quyền của chính họ hoặc đặc quyền của những người khác trong hệ thống. Chỉ gán các vai trò có các quyền này cho những người dùng đáng tin cậy.',
'role_asset_desc' => 'Các quyền này điều khiển truy cập mặc định tới tài sản (asset) nằm trong hệ thống. Quyền tại Sách, Chương và Trang sẽ ghi đè các quyền này.',
'role_asset_admins' => 'Quản trị viên được tự động cấp quyền truy cập đến toàn bộ nội dung, tuy nhiên các tùy chọn đó có thể hiện hoặc ẩn tùy chọn giao diện.',
'role_asset_image_view_note' => 'Điều này liên quan đến khả năng hiển thị trong trình quản lý hình ảnh. Quyền truy cập thực tế vào các tệp hình ảnh đã tải lên sẽ phụ thuộc vào tùy chọn lưu trữ hình ảnh của hệ thống.',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => 'Tất cả',
'role_own' => 'Sở hữu',
'role_controlled_by_asset' => 'Kiểm soát các tài sản (asset) người dùng tải lên',
diff --git a/lang/vi/validation.php b/lang/vi/validation.php
index bc6fc0e39..d7d9a9de7 100644
--- a/lang/vi/validation.php
+++ b/lang/vi/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => 'Tệp tin đã không được tải lên. Máy chủ không chấp nhận các tệp tin với dung lượng lớn như tệp tin trên.',
'zip_file' => ':attribute cần tham chiếu đến một tệp trong ZIP.',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute cần tham chiếu đến một tệp có kiểu: :validTypes, tìm thấy :foundType.',
'zip_model_expected' => 'Đối tượng dữ liệu được mong đợi nhưng tìm thấy ":type".',
'zip_unique' => ':attribute phải là duy nhất cho kiểu đối tượng trong ZIP.',
diff --git a/lang/zh_CN/entities.php b/lang/zh_CN/entities.php
index 89c23c281..03f6393ca 100644
--- a/lang/zh_CN/entities.php
+++ b/lang/zh_CN/entities.php
@@ -46,7 +46,7 @@ return [
'import' => '导入',
'import_validate' => '验证导入',
'import_desc' => '使用便携式 zip 导出从相同或不同的实例导入书籍、章节和页面。选择一个 ZIP 文件以继续。文件上传并验证后,您就可以在下一个视图中配置和确认导入。',
- 'import_zip_select' => '选择要上床的 ZIP 文件',
+ 'import_zip_select' => '选择要上传的 ZIP 文件',
'import_zip_validation_errors' => '验证提供的 ZIP 文件时检测到错误:',
'import_pending' => '等待导入',
'import_pending_none' => '尚未开始导入。',
diff --git a/lang/zh_CN/errors.php b/lang/zh_CN/errors.php
index 37ef86af5..828e7c102 100644
--- a/lang/zh_CN/errors.php
+++ b/lang/zh_CN/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => '无法读取 ZIP 文件。',
'import_zip_cant_decode_data' => '无法找到并解码 ZIP data.json 内容。',
'import_zip_no_data' => 'ZIP 文件数据没有预期的书籍、章节或页面内容。',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => '导入 ZIP 验证失败,出现错误:',
'import_zip_failed_notification' => 'ZIP 文件导入失败。',
'import_perms_books' => '您缺少创建书籍所需的权限。',
diff --git a/lang/zh_CN/notifications.php b/lang/zh_CN/notifications.php
index 52c9822bc..e4eebf5cc 100644
--- a/lang/zh_CN/notifications.php
+++ b/lang/zh_CN/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => '页面更新::pageName',
'updated_page_intro' => ':appName: 中的一个页面已被更新',
'updated_page_debounce' => '为了防止出现大量通知,一段时间内您不会收到同一编辑者再次编辑本页面的通知。',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => '页面名称:',
'detail_page_path' => '页面路径:',
diff --git a/lang/zh_CN/preferences.php b/lang/zh_CN/preferences.php
index f1ef3957d..f89448dd3 100644
--- a/lang/zh_CN/preferences.php
+++ b/lang/zh_CN/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => '控制在系统内发生某些活动时您会收到的电子邮件通知。',
'notifications_opt_own_page_changes' => '在我拥有的页面被修改时通知我',
'notifications_opt_own_page_comments' => '在我拥有的页面上有新评论时通知我',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => '在有人回复我的频率时通知我',
'notifications_save' => '保存偏好设置',
'notifications_update_success' => '通知偏好设置已更新!',
diff --git a/lang/zh_CN/settings.php b/lang/zh_CN/settings.php
index 2114c3648..93f3076c5 100644
--- a/lang/zh_CN/settings.php
+++ b/lang/zh_CN/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => '尚未设置限制',
// Sorting Settings
- 'sorting' => '排序',
- 'sorting_book_default' => '默认书卷排序',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => '选择要应用于新书的默认排序规则。这不会影响现有书,并且可以每本书覆盖。',
'sorting_rules' => '排序规则',
'sorting_rules_desc' => '这些是预定义的排序操作,可应用于系统中的内容。',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => '更新时间',
'sort_rule_op_chapters_first' => '章节正序',
'sort_rule_op_chapters_last' => '章节倒序',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => '维护',
@@ -195,11 +197,13 @@ return [
'role_import_content' => '导入内容',
'role_editor_change' => '更改页面编辑器',
'role_notifications' => '管理和接收通知',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => '资源许可',
'roles_system_warning' => '请注意,拥有以上三个权限中的任何一个都会允许用户更改自己的权限或系统中其他人的权限。 请只将拥有这些权限的角色分配给你信任的用户。',
'role_asset_desc' => '对系统内资源的默认访问许可将由这些权限控制。单独设置在书籍、章节和页面上的权限将覆盖这里的权限设定。',
'role_asset_admins' => '管理员可自动获得对所有内容的访问权限,但这些选项可能会显示或隐藏UI选项。',
'role_asset_image_view_note' => '这与图像管理器中的可见性有关。已经上传的图片的实际访问取决于系统图像存储选项。',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => '全部的',
'role_own' => '拥有的',
'role_controlled_by_asset' => '由其所在的资源来控制',
diff --git a/lang/zh_CN/validation.php b/lang/zh_CN/validation.php
index 1a576e6bc..748c8f567 100644
--- a/lang/zh_CN/validation.php
+++ b/lang/zh_CN/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => '无法上传文件。 服务器可能不接受此大小的文件。',
'zip_file' => ':attribute 需要引用 ZIP 内的文件。',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute 需要引用类型为 :validTypes 的文件,找到 :foundType 。',
'zip_model_expected' => '预期的数据对象,但找到了 ":type" 。',
'zip_unique' => '对于 ZIP 中的对象类型来说,:attribute 必须是唯一的。',
diff --git a/lang/zh_TW/common.php b/lang/zh_TW/common.php
index 0c64ac835..46e749fd6 100644
--- a/lang/zh_TW/common.php
+++ b/lang/zh_TW/common.php
@@ -31,7 +31,7 @@ return [
'update' => '更新',
'edit' => '編輯',
'archive' => '歸檔',
- 'unarchive' => 'Un-Archive',
+ 'unarchive' => '取消封存',
'sort' => '排序',
'move' => '移動',
'copy' => '複製',
diff --git a/lang/zh_TW/editor.php b/lang/zh_TW/editor.php
index 93c8d571d..c56f33efc 100644
--- a/lang/zh_TW/editor.php
+++ b/lang/zh_TW/editor.php
@@ -48,7 +48,7 @@ return [
'superscript' => '上標',
'subscript' => '下標',
'text_color' => '文本顏色',
- 'highlight_color' => 'Highlight color',
+ 'highlight_color' => '突顯顏色',
'custom_color' => '自訂顏色',
'remove_color' => '移除颜色',
'background_color' => '背景顏色',
diff --git a/lang/zh_TW/entities.php b/lang/zh_TW/entities.php
index 06db353b2..46bbe62f9 100644
--- a/lang/zh_TW/entities.php
+++ b/lang/zh_TW/entities.php
@@ -63,10 +63,10 @@ return [
'import_delete_desc' => '這將會刪除已上傳的匯入 ZIP 檔案,且無法還原。',
'import_errors' => '匯入錯誤',
'import_errors_desc' => '嘗試匯入時發生以下錯誤:',
- 'breadcrumb_siblings_for_page' => 'Navigate siblings for page',
- 'breadcrumb_siblings_for_chapter' => 'Navigate siblings for chapter',
- 'breadcrumb_siblings_for_book' => 'Navigate siblings for book',
- 'breadcrumb_siblings_for_bookshelf' => 'Navigate siblings for shelf',
+ 'breadcrumb_siblings_for_page' => '瀏覽同層級頁面',
+ 'breadcrumb_siblings_for_chapter' => '瀏覽同章節頁面',
+ 'breadcrumb_siblings_for_book' => '瀏覽同書籍頁面',
+ 'breadcrumb_siblings_for_bookshelf' => '瀏覽同書架頁面',
// Permissions and restrictions
'permissions' => '權限',
@@ -252,7 +252,7 @@ return [
'pages_edit_switch_to_markdown_stable' => '(保留內容)',
'pages_edit_switch_to_wysiwyg' => '切換到所見即所得編輯器',
'pages_edit_switch_to_new_wysiwyg' => '切換為新的所見即所得編輯器',
- 'pages_edit_switch_to_new_wysiwyg_desc' => '(In Beta Testing)',
+ 'pages_edit_switch_to_new_wysiwyg_desc' => '(仍在測試中)',
'pages_edit_set_changelog' => '設定變更日誌',
'pages_edit_enter_changelog_desc' => '輸入對您所做變動的簡易描述',
'pages_edit_enter_changelog' => '輸入變更日誌',
@@ -272,7 +272,7 @@ return [
'pages_md_insert_drawing' => '插入繪圖',
'pages_md_show_preview' => '顯示預覽',
'pages_md_sync_scroll' => '預覽頁面同步捲動',
- 'pages_md_plain_editor' => 'Plaintext editor',
+ 'pages_md_plain_editor' => '純文字編輯器',
'pages_drawing_unsaved' => '偵測到未儲存的繪圖',
'pages_drawing_unsaved_confirm' => '從之前保存失敗的繪圖中發現了可恢復的數據。您想恢復並繼續編輯這個未保存的繪圖嗎?',
'pages_not_in_chapter' => '頁面不在章節中',
@@ -397,11 +397,11 @@ return [
'comment' => '評論',
'comments' => '評論',
'comment_add' => '新增評論',
- 'comment_none' => 'No comments to display',
+ 'comment_none' => '無可顯示的留言',
'comment_placeholder' => '在這裡評論',
- 'comment_thread_count' => ':count Comment Thread|:count Comment Threads',
- 'comment_archived_count' => ':count Archived',
- 'comment_archived_threads' => 'Archived Threads',
+ 'comment_thread_count' => ':count 個留言討論串|:count 個留言討論串',
+ 'comment_archived_count' => ':count 個已封存',
+ 'comment_archived_threads' => '已封存的討論串',
'comment_save' => '儲存評論',
'comment_new' => '新評論',
'comment_created' => '評論於 :createDiff',
@@ -410,14 +410,14 @@ return [
'comment_deleted_success' => '評論已刪除',
'comment_created_success' => '評論已加入',
'comment_updated_success' => '評論已更新',
- 'comment_archive_success' => 'Comment archived',
- 'comment_unarchive_success' => 'Comment un-archived',
- 'comment_view' => 'View comment',
- 'comment_jump_to_thread' => 'Jump to thread',
+ 'comment_archive_success' => '留言已封存',
+ 'comment_unarchive_success' => '留言已解除封存',
+ 'comment_view' => '檢視留言',
+ 'comment_jump_to_thread' => '前往討論串',
'comment_delete_confirm' => '您確定要刪除這則評論?',
'comment_in_reply_to' => '回覆 :commentId',
- 'comment_reference' => 'Reference',
- 'comment_reference_outdated' => '(Outdated)',
+ 'comment_reference' => '參考資料',
+ 'comment_reference_outdated' => '(過期)',
'comment_editor_explain' => '此為頁面上的評論。在查看檢視與儲存頁面的同時,可以新增和管理評論。',
// Revision
diff --git a/lang/zh_TW/errors.php b/lang/zh_TW/errors.php
index d4239ed6c..e6ef7e020 100644
--- a/lang/zh_TW/errors.php
+++ b/lang/zh_TW/errors.php
@@ -109,6 +109,7 @@ return [
'import_zip_cant_read' => '無法讀取 ZIP 檔案。',
'import_zip_cant_decode_data' => '無法尋找並解碼 ZIP data.json 內容。',
'import_zip_no_data' => 'ZIP 檔案資料沒有預期的書本、章節或頁面內容。',
+ 'import_zip_data_too_large' => 'ZIP data.json content exceeds the configured application maximum upload size.',
'import_validation_failed' => '匯入 ZIP 驗證失敗,發生錯誤:',
'import_zip_failed_notification' => '匯入 ZIP 檔案失敗。',
'import_perms_books' => '您缺乏建立書本所需的權限。',
diff --git a/lang/zh_TW/notifications.php b/lang/zh_TW/notifications.php
index 7fcfa6400..f5deae328 100644
--- a/lang/zh_TW/notifications.php
+++ b/lang/zh_TW/notifications.php
@@ -11,6 +11,8 @@ return [
'updated_page_subject' => '頁面更新::pageName',
'updated_page_intro' => ':appName: 中的一個頁面已被更新',
'updated_page_debounce' => '為了防止出現大量通知,一段時間內您不會收到同一編輯者再次編輯本頁面的通知。',
+ 'comment_mention_subject' => 'You have been mentioned in a comment on page: :pageName',
+ 'comment_mention_intro' => 'You were mentioned in a comment on :appName:',
'detail_page_name' => '頁面名稱:',
'detail_page_path' => '頁面路徑:',
diff --git a/lang/zh_TW/preferences.php b/lang/zh_TW/preferences.php
index 4900ca152..0bfce9d83 100644
--- a/lang/zh_TW/preferences.php
+++ b/lang/zh_TW/preferences.php
@@ -23,6 +23,7 @@ return [
'notifications_desc' => '控制在系統有特定活動時,是否要接收電子郵件通知',
'notifications_opt_own_page_changes' => '當我的頁面有異動時發送通知',
'notifications_opt_own_page_comments' => '當我的頁面有評論時發送通知',
+ 'notifications_opt_comment_mentions' => 'Notify when I\'m mentioned in a comment',
'notifications_opt_comment_replies' => '當我的評論有新的回覆時發送通知',
'notifications_save' => '儲存偏好設定',
'notifications_update_success' => '通知設定已更新',
diff --git a/lang/zh_TW/settings.php b/lang/zh_TW/settings.php
index 752d3f2a7..9b5efa09e 100644
--- a/lang/zh_TW/settings.php
+++ b/lang/zh_TW/settings.php
@@ -75,8 +75,8 @@ return [
'reg_confirm_restrict_domain_placeholder' => '尚未設定限制',
// Sorting Settings
- 'sorting' => '排序',
- 'sorting_book_default' => '預設書籍排序',
+ 'sorting' => 'Lists & Sorting',
+ 'sorting_book_default' => 'Default Book Sort Rule',
'sorting_book_default_desc' => '選取要套用至新書籍的預設排序規則。這不會影響現有書籍,並可按書籍覆寫。',
'sorting_rules' => '排序規則',
'sorting_rules_desc' => '這些是預先定義的排序作業,可套用於系統中的內容。',
@@ -103,6 +103,8 @@ return [
'sort_rule_op_updated_date' => '更新日期',
'sort_rule_op_chapters_first' => '第一章',
'sort_rule_op_chapters_last' => '最後一章',
+ 'sorting_page_limits' => 'Per-Page Display Limits',
+ 'sorting_page_limits_desc' => 'Set how many items to show per-page in various lists within the system. Typically a lower amount will be more performant, while a higher amount avoids the need to click through multiple pages. Using an even multiple of 3 (18, 24, 30, etc...) is recommended.',
// Maintenance settings
'maint' => '維護',
@@ -196,11 +198,13 @@ return [
'role_import_content' => '匯入內容',
'role_editor_change' => '重設頁面編輯器',
'role_notifications' => '管理和接收通知',
+ 'role_permission_note_users_and_roles' => 'These permissions will technically also provide visibility & searching of users & roles in the system.',
'role_asset' => '資源權限',
'roles_system_warning' => '請注意,有上述三項權限中的任一項的使用者都可以更改自己或系統中其他人的權限。有這些權限的角色只應分配給受信任的使用者。',
'role_asset_desc' => '對系統內資源的預設權限將由這裡的權限控制。若有單獨設定在書本、章節和頁面上的權限,將會覆寫這裡的權限設定。',
'role_asset_admins' => '管理員會自動取得對所有內容的存取權,但這些選項可能會顯示或隱藏使用者介面的選項。',
'role_asset_image_view_note' => '這與圖像管理器中的可見性有關。已經上傳的圖片的實際訪問取決於系統圖像存儲選項。',
+ 'role_asset_users_note' => 'These permissions will technically also provide visibility & searching of users in the system.',
'role_all' => '全部',
'role_own' => '擁有',
'role_controlled_by_asset' => '依據隸屬的資源來決定',
diff --git a/lang/zh_TW/validation.php b/lang/zh_TW/validation.php
index 300314707..e6004c59d 100644
--- a/lang/zh_TW/validation.php
+++ b/lang/zh_TW/validation.php
@@ -106,6 +106,7 @@ return [
'uploaded' => '無法上傳文檔案, 伺服器可能不接受此大小的檔案。',
'zip_file' => ':attribute 需要參照 ZIP 中的檔案。',
+ 'zip_file_size' => 'The file :attribute must not exceed :size MB.',
'zip_file_mime' => ':attribute 需要參照類型為 :validTypes 的檔案,找到 :foundType。',
'zip_model_expected' => '預期為資料物件,但找到「:type」。',
'zip_unique' => '對於 ZIP 中的物件類型,:attribute 必須是唯一的。',
diff --git a/package-lock.json b/package-lock.json
index 86bdc05e8..a620e1bf9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,48 +5,47 @@
"packages": {
"": {
"dependencies": {
- "@codemirror/commands": "^6.8.0",
+ "@codemirror/commands": "^6.10.0",
"@codemirror/lang-css": "^6.3.1",
- "@codemirror/lang-html": "^6.4.9",
- "@codemirror/lang-javascript": "^6.2.3",
- "@codemirror/lang-json": "^6.0.1",
- "@codemirror/lang-markdown": "^6.3.2",
- "@codemirror/lang-php": "^6.0.1",
+ "@codemirror/lang-html": "^6.4.11",
+ "@codemirror/lang-javascript": "^6.2.4",
+ "@codemirror/lang-json": "^6.0.2",
+ "@codemirror/lang-markdown": "^6.5.0",
+ "@codemirror/lang-php": "^6.0.2",
"@codemirror/lang-xml": "^6.1.0",
- "@codemirror/language": "^6.10.8",
- "@codemirror/legacy-modes": "^6.4.3",
+ "@codemirror/language": "^6.11.3",
+ "@codemirror/legacy-modes": "^6.5.2",
"@codemirror/state": "^6.5.2",
- "@codemirror/theme-one-dark": "^6.1.2",
- "@codemirror/view": "^6.36.3",
- "@lezer/highlight": "^1.2.1",
+ "@codemirror/theme-one-dark": "^6.1.3",
+ "@codemirror/view": "^6.38.8",
+ "@lezer/highlight": "^1.2.3",
"@ssddanbrown/codemirror-lang-smarty": "^1.0.0",
"@ssddanbrown/codemirror-lang-twig": "^1.0.0",
- "@types/jest": "^29.5.14",
- "codemirror": "^6.0.1",
+ "@types/jest": "^30.0.0",
+ "codemirror": "^6.0.2",
"eventsource-client": "^1.1.4",
- "idb-keyval": "^6.2.1",
+ "idb-keyval": "^6.2.2",
"markdown-it": "^14.1.0",
"markdown-it-task-lists": "^2.1.1",
- "snabbdom": "^3.6.2",
+ "snabbdom": "^3.6.3",
"sortablejs": "^1.15.6"
},
"devDependencies": {
- "@eslint/js": "^9.21.0",
- "@lezer/generator": "^1.7.2",
+ "@eslint/js": "^9.39.1",
+ "@lezer/generator": "^1.8.0",
"@types/markdown-it": "^14.1.2",
- "@types/sortablejs": "^1.15.8",
+ "@types/sortablejs": "^1.15.9",
"chokidar-cli": "^3.0",
- "esbuild": "^0.25.0",
- "eslint": "^9.21.0",
- "eslint-plugin-import": "^2.31.0",
- "jest": "^29.7.0",
- "jest-environment-jsdom": "^29.7.0",
- "livereload": "^0.9.3",
+ "esbuild": "^0.27.0",
+ "eslint": "^9.39.1",
+ "eslint-plugin-import": "^2.32.0",
+ "jest": "^30.2.0",
+ "jest-environment-jsdom": "^30.2.0",
"npm-run-all": "^4.1.5",
- "sass": "^1.85.0",
- "ts-jest": "^29.2.6",
+ "sass": "^1.94.2",
+ "ts-jest": "^29.4.5",
"ts-node": "^10.9.2",
- "typescript": "5.7.*"
+ "typescript": "5.9.*"
}
},
"node_modules/@ampproject/remapping": {
@@ -63,6 +62,27 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@asamuzakjp/css-color": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
+ "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.3",
+ "@csstools/css-color-parser": "^3.0.9",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "lru-cache": "^10.4.3"
+ }
+ },
+ "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/@babel/code-frame": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
@@ -537,9 +557,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.28.1",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz",
- "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==",
+ "version": "7.28.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
+ "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -570,9 +590,9 @@
}
},
"node_modules/@codemirror/commands": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.8.1.tgz",
- "integrity": "sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==",
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.0.tgz",
+ "integrity": "sha512-2xUIc5mHXQzT16JnyOFkh8PvfeXuIut3pslWGfsGOhxP/lpgRm9HOl/mpzLErgt5mXDovqA0d11P21gofRLb9w==",
"license": "MIT",
"dependencies": {
"@codemirror/language": "^6.0.0",
@@ -595,9 +615,9 @@
}
},
"node_modules/@codemirror/lang-html": {
- "version": "6.4.9",
- "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz",
- "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==",
+ "version": "6.4.11",
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.11.tgz",
+ "integrity": "sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw==",
"license": "MIT",
"dependencies": {
"@codemirror/autocomplete": "^6.0.0",
@@ -608,7 +628,7 @@
"@codemirror/view": "^6.17.0",
"@lezer/common": "^1.0.0",
"@lezer/css": "^1.1.0",
- "@lezer/html": "^1.3.0"
+ "@lezer/html": "^1.3.12"
}
},
"node_modules/@codemirror/lang-javascript": {
@@ -637,9 +657,9 @@
}
},
"node_modules/@codemirror/lang-markdown": {
- "version": "6.3.3",
- "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.3.3.tgz",
- "integrity": "sha512-1fn1hQAPWlSSMCvnF810AkhWpNLkJpl66CRfIy3vVl20Sl4NwChkorCHqpMtNbXr1EuMJsrDnhEpjZxKZ2UX3A==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.5.0.tgz",
+ "integrity": "sha512-0K40bZ35jpHya6FriukbgaleaqzBLZfOh7HuzqbMxBXkbYMJDxfF39c23xOgxFezR+3G+tR2/Mup+Xk865OMvw==",
"license": "MIT",
"dependencies": {
"@codemirror/autocomplete": "^6.7.1",
@@ -679,9 +699,9 @@
}
},
"node_modules/@codemirror/language": {
- "version": "6.11.2",
- "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.11.2.tgz",
- "integrity": "sha512-p44TsNArL4IVXDTbapUmEkAlvWs2CFQbcfc0ymDsis1kH2wh0gcY96AS29c/vp2d0y2Tquk1EDSaawpzilUiAw==",
+ "version": "6.11.3",
+ "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.11.3.tgz",
+ "integrity": "sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==",
"license": "MIT",
"dependencies": {
"@codemirror/state": "^6.0.0",
@@ -693,9 +713,9 @@
}
},
"node_modules/@codemirror/legacy-modes": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.5.1.tgz",
- "integrity": "sha512-DJYQQ00N1/KdESpZV7jg9hafof/iBNp9h7TYo1SLMk86TWl9uDsVdho2dzd81K+v4retmK6mdC7WpuOQDytQqw==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.5.2.tgz",
+ "integrity": "sha512-/jJbwSTazlQEDOQw2FJ8LEEKVS72pU0lx6oM54kGpL8t/NJ2Jda3CZ4pcltiKTdqYSRk3ug1B3pil1gsjA6+8Q==",
"license": "MIT",
"dependencies": {
"@codemirror/language": "^6.0.0"
@@ -745,9 +765,9 @@
}
},
"node_modules/@codemirror/view": {
- "version": "6.38.1",
- "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.1.tgz",
- "integrity": "sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ==",
+ "version": "6.38.8",
+ "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.8.tgz",
+ "integrity": "sha512-XcE9fcnkHCbWkjeKyi0lllwXmBLtyYb5dt89dJyx23I9+LSh5vZDIuk7OLG4VM1lgrXZQcY6cxyZyk5WVPRv/A==",
"license": "MIT",
"dependencies": {
"@codemirror/state": "^6.5.0",
@@ -780,10 +800,159 @@
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
+ "node_modules/@csstools/color-helpers": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
+ "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/css-calc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
+ "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-color-parser": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
+ "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/color-helpers": "^5.1.0",
+ "@csstools/css-calc": "^2.1.4"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
+ "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@emnapi/core": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz",
+ "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.1.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz",
+ "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
+ "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz",
- "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.0.tgz",
+ "integrity": "sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==",
"cpu": [
"ppc64"
],
@@ -798,9 +967,9 @@
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz",
- "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.0.tgz",
+ "integrity": "sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==",
"cpu": [
"arm"
],
@@ -815,9 +984,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz",
- "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.0.tgz",
+ "integrity": "sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==",
"cpu": [
"arm64"
],
@@ -832,9 +1001,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz",
- "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.0.tgz",
+ "integrity": "sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==",
"cpu": [
"x64"
],
@@ -849,9 +1018,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz",
- "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.0.tgz",
+ "integrity": "sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==",
"cpu": [
"arm64"
],
@@ -866,9 +1035,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz",
- "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.0.tgz",
+ "integrity": "sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==",
"cpu": [
"x64"
],
@@ -883,9 +1052,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz",
- "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.0.tgz",
+ "integrity": "sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==",
"cpu": [
"arm64"
],
@@ -900,9 +1069,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz",
- "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.0.tgz",
+ "integrity": "sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==",
"cpu": [
"x64"
],
@@ -917,9 +1086,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz",
- "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.0.tgz",
+ "integrity": "sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==",
"cpu": [
"arm"
],
@@ -934,9 +1103,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz",
- "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.0.tgz",
+ "integrity": "sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==",
"cpu": [
"arm64"
],
@@ -951,9 +1120,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz",
- "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.0.tgz",
+ "integrity": "sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==",
"cpu": [
"ia32"
],
@@ -968,9 +1137,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz",
- "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.0.tgz",
+ "integrity": "sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==",
"cpu": [
"loong64"
],
@@ -985,9 +1154,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz",
- "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.0.tgz",
+ "integrity": "sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==",
"cpu": [
"mips64el"
],
@@ -1002,9 +1171,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz",
- "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.0.tgz",
+ "integrity": "sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==",
"cpu": [
"ppc64"
],
@@ -1019,9 +1188,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz",
- "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.0.tgz",
+ "integrity": "sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==",
"cpu": [
"riscv64"
],
@@ -1036,9 +1205,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz",
- "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.0.tgz",
+ "integrity": "sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==",
"cpu": [
"s390x"
],
@@ -1053,9 +1222,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz",
- "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.0.tgz",
+ "integrity": "sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==",
"cpu": [
"x64"
],
@@ -1070,9 +1239,9 @@
}
},
"node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz",
- "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.0.tgz",
+ "integrity": "sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==",
"cpu": [
"arm64"
],
@@ -1087,9 +1256,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz",
- "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.0.tgz",
+ "integrity": "sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==",
"cpu": [
"x64"
],
@@ -1104,9 +1273,9 @@
}
},
"node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz",
- "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.0.tgz",
+ "integrity": "sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==",
"cpu": [
"arm64"
],
@@ -1121,9 +1290,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz",
- "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.0.tgz",
+ "integrity": "sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==",
"cpu": [
"x64"
],
@@ -1138,9 +1307,9 @@
}
},
"node_modules/@esbuild/openharmony-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz",
- "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.0.tgz",
+ "integrity": "sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==",
"cpu": [
"arm64"
],
@@ -1155,9 +1324,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz",
- "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.0.tgz",
+ "integrity": "sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==",
"cpu": [
"x64"
],
@@ -1172,9 +1341,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz",
- "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.0.tgz",
+ "integrity": "sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==",
"cpu": [
"arm64"
],
@@ -1189,9 +1358,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz",
- "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.0.tgz",
+ "integrity": "sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==",
"cpu": [
"ia32"
],
@@ -1206,9 +1375,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz",
- "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.0.tgz",
+ "integrity": "sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==",
"cpu": [
"x64"
],
@@ -1223,9 +1392,9 @@
}
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
- "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
+ "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1265,13 +1434,13 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
- "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz",
+ "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/object-schema": "^2.1.6",
+ "@eslint/object-schema": "^2.1.7",
"debug": "^4.3.1",
"minimatch": "^3.1.2"
},
@@ -1280,19 +1449,22 @@
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz",
- "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==",
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
+ "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
"dev": true,
"license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.17.0"
+ },
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/core": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz",
- "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==",
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
+ "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -1327,9 +1499,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.31.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz",
- "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==",
+ "version": "9.39.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz",
+ "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1340,9 +1512,9 @@
}
},
"node_modules/@eslint/object-schema": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
- "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
+ "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -1350,13 +1522,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz",
- "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
+ "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.15.1",
+ "@eslint/core": "^0.17.0",
"levn": "^0.4.1"
},
"engines": {
@@ -1429,6 +1601,80 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/@istanbuljs/load-nyc-config": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
@@ -1471,9 +1717,9 @@
}
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1547,61 +1793,61 @@
}
},
"node_modules/@jest/console": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz",
+ "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
+ "chalk": "^4.1.2",
+ "jest-message-util": "30.2.0",
+ "jest-util": "30.2.0",
"slash": "^3.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/core": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz",
+ "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
+ "@jest/console": "30.2.0",
+ "@jest/pattern": "30.0.1",
+ "@jest/reporters": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "exit-x": "^0.2.2",
+ "graceful-fs": "^4.2.11",
+ "jest-changed-files": "30.2.0",
+ "jest-config": "30.2.0",
+ "jest-haste-map": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-regex-util": "30.0.1",
+ "jest-resolve": "30.2.0",
+ "jest-resolve-dependencies": "30.2.0",
+ "jest-runner": "30.2.0",
+ "jest-runtime": "30.2.0",
+ "jest-snapshot": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0",
+ "jest-watcher": "30.2.0",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.2.0",
+ "slash": "^3.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
@@ -1612,116 +1858,174 @@
}
}
},
+ "node_modules/@jest/diff-sequences": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
+ "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
"node_modules/@jest/environment": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz",
+ "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "jest-mock": "^29.7.0"
+ "jest-mock": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.2.0.tgz",
+ "integrity": "sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "30.2.0",
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/jsdom": "^21.1.7",
+ "@types/node": "*",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "canvas": "^3.0.0",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
}
},
"node_modules/@jest/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz",
+ "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
+ "expect": "30.2.0",
+ "jest-snapshot": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/expect-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz",
+ "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==",
"license": "MIT",
"dependencies": {
- "jest-get-type": "^29.6.3"
+ "@jest/get-type": "30.1.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/fake-timers": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz",
+ "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
+ "@jest/types": "30.2.0",
+ "@sinonjs/fake-timers": "^13.0.0",
"@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/get-type": {
+ "version": "30.1.0",
+ "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
+ "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/globals": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz",
+ "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
+ "@jest/environment": "30.2.0",
+ "@jest/expect": "30.2.0",
+ "@jest/types": "30.2.0",
+ "jest-mock": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/pattern": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz",
+ "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-regex-util": "30.0.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/reporters": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz",
+ "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
+ "@jest/console": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@jridgewell/trace-mapping": "^0.3.25",
"@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
+ "chalk": "^4.1.2",
+ "collect-v8-coverage": "^1.0.2",
+ "exit-x": "^0.2.2",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.11",
"istanbul-lib-coverage": "^3.0.0",
"istanbul-lib-instrument": "^6.0.0",
"istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-lib-source-maps": "^5.0.0",
"istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
+ "jest-message-util": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-worker": "30.2.0",
"slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
+ "string-length": "^4.0.2",
"v8-to-istanbul": "^9.0.1"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
@@ -1733,106 +2037,123 @@
}
},
"node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "version": "30.0.5",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+ "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
"license": "MIT",
"dependencies": {
- "@sinclair/typebox": "^0.27.8"
+ "@sinclair/typebox": "^0.34.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/snapshot-utils": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz",
+ "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "natural-compare": "^1.4.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/source-map": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz",
+ "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "callsites": "^3.1.0",
+ "graceful-fs": "^4.2.11"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/test-result": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz",
+ "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
+ "@jest/console": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "collect-v8-coverage": "^1.0.2"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/test-sequencer": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz",
+ "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
+ "@jest/test-result": "30.2.0",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.2.0",
"slash": "^3.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz",
+ "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
+ "@babel/core": "^7.27.4",
+ "@jest/types": "30.2.0",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "babel-plugin-istanbul": "^7.0.1",
+ "chalk": "^4.1.2",
"convert-source-map": "^2.0.0",
"fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.2.0",
+ "jest-regex-util": "30.0.1",
+ "jest-util": "30.2.0",
+ "micromatch": "^4.0.8",
+ "pirates": "^4.0.7",
"slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
+ "write-file-atomic": "^5.0.1"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+ "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
"license": "MIT",
"dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
"@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
@@ -1875,9 +2196,9 @@
}
},
"node_modules/@lezer/common": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz",
- "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.4.0.tgz",
+ "integrity": "sha512-DVeMRoGrgn/k45oQNu189BoW4SZwgZFzJ1+1TV5j2NJ/KFC83oa/enRqZSGshyeMk5cPWMhsKs9nx+8o0unwGg==",
"license": "MIT"
},
"node_modules/@lezer/css": {
@@ -1906,18 +2227,18 @@
}
},
"node_modules/@lezer/highlight": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz",
- "integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz",
+ "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==",
"license": "MIT",
"dependencies": {
- "@lezer/common": "^1.0.0"
+ "@lezer/common": "^1.3.0"
}
},
"node_modules/@lezer/html": {
- "version": "1.3.10",
- "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz",
- "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==",
+ "version": "1.3.12",
+ "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.12.tgz",
+ "integrity": "sha512-RJ7eRWdaJe3bsiiLLHjCFT1JMk8m1YP9kaUbvu2rMLEoOnke9mcTVDyfOslsln0LtujdWespjJ39w6zo+RsQYw==",
"license": "MIT",
"dependencies": {
"@lezer/common": "^1.2.0",
@@ -1994,6 +2315,19 @@
"integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==",
"license": "MIT"
},
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz",
+ "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.4.3",
+ "@emnapi/runtime": "^1.4.3",
+ "@tybys/wasm-util": "^0.10.0"
+ }
+ },
"node_modules/@parcel/watcher": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
@@ -2304,6 +2638,30 @@
"url": "https://opencollective.com/parcel"
}
},
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@pkgr/core": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz",
+ "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/pkgr"
+ }
+ },
"node_modules/@rtsao/scc": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
@@ -2312,9 +2670,9 @@
"license": "MIT"
},
"node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "version": "0.34.41",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
+ "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
"license": "MIT"
},
"node_modules/@sinonjs/commons": {
@@ -2328,13 +2686,13 @@
}
},
"node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "version": "13.0.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz",
+ "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
- "@sinonjs/commons": "^3.0.0"
+ "@sinonjs/commons": "^3.0.1"
}
},
"node_modules/@ssddanbrown/codemirror-lang-smarty": {
@@ -2354,16 +2712,6 @@
"@lezer/lr": "^1.0.0"
}
},
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
"node_modules/@tsconfig/node10": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
@@ -2392,6 +2740,17 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
@@ -2428,13 +2787,13 @@
}
},
"node_modules/@types/babel__traverse": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz",
- "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.20.7"
+ "@babel/types": "^7.28.2"
}
},
"node_modules/@types/estree": {
@@ -2444,16 +2803,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/graceful-fs": {
- "version": "4.1.9",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
- "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
@@ -2479,19 +2828,19 @@
}
},
"node_modules/@types/jest": {
- "version": "29.5.14",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz",
- "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==",
+ "version": "30.0.0",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz",
+ "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==",
"license": "MIT",
"dependencies": {
- "expect": "^29.0.0",
- "pretty-format": "^29.0.0"
+ "expect": "^30.0.0",
+ "pretty-format": "^30.0.0"
}
},
"node_modules/@types/jsdom": {
- "version": "20.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz",
- "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==",
+ "version": "21.1.7",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
+ "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2549,9 +2898,9 @@
}
},
"node_modules/@types/sortablejs": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.8.tgz",
- "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==",
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.9.tgz",
+ "integrity": "sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==",
"dev": true,
"license": "MIT"
},
@@ -2583,13 +2932,281 @@
"integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
"license": "MIT"
},
- "node_modules/abab": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
- "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
- "deprecated": "Use your platform's native atob() and btoa() methods instead",
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
"dev": true,
- "license": "BSD-3-Clause"
+ "license": "ISC"
+ },
+ "node_modules/@unrs/resolver-binding-android-arm-eabi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz",
+ "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-android-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz",
+ "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz",
+ "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz",
+ "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-freebsd-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz",
+ "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz",
+ "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz",
+ "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz",
+ "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz",
+ "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz",
+ "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz",
+ "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz",
+ "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz",
+ "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz",
+ "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz",
+ "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-wasm32-wasi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz",
+ "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@napi-rs/wasm-runtime": "^0.2.11"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz",
+ "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz",
+ "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz",
+ "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
"node_modules/acorn": {
"version": "8.15.0",
@@ -2604,17 +3221,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/acorn-globals": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz",
- "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.1.0",
- "acorn-walk": "^8.0.2"
- }
- },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -2639,16 +3245,13 @@
}
},
"node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "debug": "4"
- },
"engines": {
- "node": ">= 6.0.0"
+ "node": ">= 14"
}
},
"node_modules/ajv": {
@@ -2685,13 +3288,16 @@
}
},
"node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
"node_modules/ansi-styles": {
@@ -2858,13 +3464,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/async": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
- "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/async-function": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
@@ -2875,13 +3474,6 @@
"node": ">= 0.4"
}
},
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
@@ -2899,81 +3491,64 @@
}
},
"node_modules/babel-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz",
+ "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/transform": "^29.7.0",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.6.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
+ "@jest/transform": "30.2.0",
+ "@types/babel__core": "^7.20.5",
+ "babel-plugin-istanbul": "^7.0.1",
+ "babel-preset-jest": "30.2.0",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
"slash": "^3.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
- "@babel/core": "^7.8.0"
+ "@babel/core": "^7.11.0 || ^8.0.0-0"
}
},
"node_modules/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz",
+ "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==",
"dev": true,
"license": "BSD-3-Clause",
+ "workspaces": [
+ "test/babel-8"
+ ],
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-instrument": "^6.0.2",
"test-exclude": "^6.0.0"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
"node_modules/babel-plugin-jest-hoist": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz",
+ "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
+ "@types/babel__core": "^7.20.5"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/babel-preset-current-node-syntax": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz",
- "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
+ "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2994,24 +3569,24 @@
"@babel/plugin-syntax-top-level-await": "^7.14.5"
},
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@babel/core": "^7.0.0 || ^8.0.0-0"
}
},
"node_modules/babel-preset-jest": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz",
+ "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "babel-plugin-jest-hoist": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0"
+ "babel-plugin-jest-hoist": "30.2.0",
+ "babel-preset-current-node-syntax": "^1.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@babel/core": "^7.11.0 || ^8.0.0-beta.1"
}
},
"node_modules/balanced-match": {
@@ -3282,9 +3857,9 @@
}
},
"node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz",
+ "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==",
"funding": [
{
"type": "github",
@@ -3297,9 +3872,9 @@
}
},
"node_modules/cjs-module-lexer": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
- "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz",
+ "integrity": "sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==",
"dev": true,
"license": "MIT"
},
@@ -3365,9 +3940,9 @@
}
},
"node_modules/collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
+ "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
"dev": true,
"license": "MIT"
},
@@ -3389,19 +3964,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"license": "MIT"
},
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -3416,28 +3978,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/create-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
- "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "prompts": "^2.0.1"
- },
- "bin": {
- "create-jest": "bin/create-jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
"node_modules/create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
@@ -3466,46 +4006,32 @@
"node": ">= 8"
}
},
- "node_modules/cssom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
- "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
+ "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "cssom": "~0.3.6"
+ "@asamuzakjp/css-color": "^3.2.0",
+ "rrweb-cssom": "^0.8.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/cssstyle/node_modules/cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/data-urls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
- "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/data-view-buffer": {
@@ -3598,9 +4124,9 @@
"license": "MIT"
},
"node_modules/dedent": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz",
- "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz",
+ "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -3665,16 +4191,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
@@ -3709,15 +4225,6 @@
"node": ">=0.3.1"
}
},
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
"node_modules/doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -3731,20 +4238,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "deprecated": "Use your platform's native DOMException instead",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -3760,21 +4253,12 @@
"node": ">= 0.4"
}
},
- "node_modules/ejs": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
- "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
+ "license": "MIT"
},
"node_modules/electron-to-chromium": {
"version": "1.5.190",
@@ -3975,9 +4459,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
- "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.0.tgz",
+ "integrity": "sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -3988,32 +4472,32 @@
"node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.8",
- "@esbuild/android-arm": "0.25.8",
- "@esbuild/android-arm64": "0.25.8",
- "@esbuild/android-x64": "0.25.8",
- "@esbuild/darwin-arm64": "0.25.8",
- "@esbuild/darwin-x64": "0.25.8",
- "@esbuild/freebsd-arm64": "0.25.8",
- "@esbuild/freebsd-x64": "0.25.8",
- "@esbuild/linux-arm": "0.25.8",
- "@esbuild/linux-arm64": "0.25.8",
- "@esbuild/linux-ia32": "0.25.8",
- "@esbuild/linux-loong64": "0.25.8",
- "@esbuild/linux-mips64el": "0.25.8",
- "@esbuild/linux-ppc64": "0.25.8",
- "@esbuild/linux-riscv64": "0.25.8",
- "@esbuild/linux-s390x": "0.25.8",
- "@esbuild/linux-x64": "0.25.8",
- "@esbuild/netbsd-arm64": "0.25.8",
- "@esbuild/netbsd-x64": "0.25.8",
- "@esbuild/openbsd-arm64": "0.25.8",
- "@esbuild/openbsd-x64": "0.25.8",
- "@esbuild/openharmony-arm64": "0.25.8",
- "@esbuild/sunos-x64": "0.25.8",
- "@esbuild/win32-arm64": "0.25.8",
- "@esbuild/win32-ia32": "0.25.8",
- "@esbuild/win32-x64": "0.25.8"
+ "@esbuild/aix-ppc64": "0.27.0",
+ "@esbuild/android-arm": "0.27.0",
+ "@esbuild/android-arm64": "0.27.0",
+ "@esbuild/android-x64": "0.27.0",
+ "@esbuild/darwin-arm64": "0.27.0",
+ "@esbuild/darwin-x64": "0.27.0",
+ "@esbuild/freebsd-arm64": "0.27.0",
+ "@esbuild/freebsd-x64": "0.27.0",
+ "@esbuild/linux-arm": "0.27.0",
+ "@esbuild/linux-arm64": "0.27.0",
+ "@esbuild/linux-ia32": "0.27.0",
+ "@esbuild/linux-loong64": "0.27.0",
+ "@esbuild/linux-mips64el": "0.27.0",
+ "@esbuild/linux-ppc64": "0.27.0",
+ "@esbuild/linux-riscv64": "0.27.0",
+ "@esbuild/linux-s390x": "0.27.0",
+ "@esbuild/linux-x64": "0.27.0",
+ "@esbuild/netbsd-arm64": "0.27.0",
+ "@esbuild/netbsd-x64": "0.27.0",
+ "@esbuild/openbsd-arm64": "0.27.0",
+ "@esbuild/openbsd-x64": "0.27.0",
+ "@esbuild/openharmony-arm64": "0.27.0",
+ "@esbuild/sunos-x64": "0.27.0",
+ "@esbuild/win32-arm64": "0.27.0",
+ "@esbuild/win32-ia32": "0.27.0",
+ "@esbuild/win32-x64": "0.27.0"
}
},
"node_modules/escalade": {
@@ -4039,48 +4523,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/escodegen": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
- "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
"node_modules/eslint": {
- "version": "9.31.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz",
- "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==",
+ "version": "9.39.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz",
+ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.21.0",
- "@eslint/config-helpers": "^0.3.0",
- "@eslint/core": "^0.15.0",
+ "@eslint/config-array": "^0.21.1",
+ "@eslint/config-helpers": "^0.4.2",
+ "@eslint/core": "^0.17.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.31.0",
- "@eslint/plugin-kit": "^0.3.1",
+ "@eslint/js": "9.39.1",
+ "@eslint/plugin-kit": "^0.4.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
"@types/estree": "^1.0.6",
- "@types/json-schema": "^7.0.15",
"ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.6",
@@ -4338,9 +4799,9 @@
}
},
"node_modules/eventsource-client": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/eventsource-client/-/eventsource-client-1.1.4.tgz",
- "integrity": "sha512-CKnqZTwXCnHN2EqrEB9eLSjMMRqHum09VOsikkgSPoa2Jr2XgQnX7P1Fxhnnj/UHxi3GQ2xVsXDKIktEes07bg==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/eventsource-client/-/eventsource-client-1.2.0.tgz",
+ "integrity": "sha512-kDI75RSzO3TwyG/K9w1ap8XwqSPcwi6jaMkNulfVeZmSeUM49U8kUzk1s+vKNt0tGrXgK47i+620Yasn1ccFiw==",
"license": "MIT",
"dependencies": {
"eventsource-parser": "^3.0.0"
@@ -4350,12 +4811,12 @@
}
},
"node_modules/eventsource-parser": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.5.tgz",
- "integrity": "sha512-bSRG85ZrMdmWtm7qkF9He9TNRzc/Bm99gEJMaQoHJ9E6Kv9QBbsldh2oMj7iXmYNEAVvNgvv5vPorG6W+XtBhQ==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz",
+ "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==",
"license": "MIT",
"engines": {
- "node": ">=20.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/execa": {
@@ -4382,29 +4843,38 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "node_modules/execa/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true,
+ "license": "ISC"
+ },
+ "node_modules/exit-x": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz",
+ "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz",
+ "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==",
"license": "MIT",
"dependencies": {
- "@jest/expect-utils": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0"
+ "@jest/expect-utils": "30.2.0",
+ "@jest/get-type": "30.1.0",
+ "jest-matcher-utils": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/fast-deep-equal": {
@@ -4451,39 +4921,6 @@
"node": ">=16.0.0"
}
},
- "node_modules/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@@ -4550,21 +4987,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.2",
- "mime-types": "^2.1.12"
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": ">= 6"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/fs.realpath": {
@@ -4731,22 +5168,21 @@
}
},
"node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"dev": true,
"license": "ISC",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
},
- "engines": {
- "node": "*"
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -4765,6 +5201,32 @@
"node": ">= 6"
}
},
+ "node_modules/glob/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/glob/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/globals": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
@@ -4814,6 +5276,28 @@
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"license": "ISC"
},
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
"node_modules/has-bigints": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
@@ -4915,16 +5399,16 @@
"license": "ISC"
},
"node_modules/html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "whatwg-encoding": "^2.0.0"
+ "whatwg-encoding": "^3.1.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/html-escaper": {
@@ -4935,32 +5419,31 @@
"license": "MIT"
},
"node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
}
},
"node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "agent-base": "6",
+ "agent-base": "^7.1.2",
"debug": "4"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
}
},
"node_modules/human-signals": {
@@ -5610,24 +6093,24 @@
}
},
"node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
+ "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.23",
"debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
+ "istanbul-lib-coverage": "^3.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/istanbul-reports": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
- "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
+ "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -5638,42 +6121,39 @@
"node": ">=8"
}
},
- "node_modules/jake": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
- "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
- "license": "Apache-2.0",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.4",
- "minimatch": "^3.1.2"
+ "@isaacs/cliui": "^8.0.2"
},
- "bin": {
- "jake": "bin/cli.js"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
},
- "engines": {
- "node": ">=10"
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
- "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz",
+ "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/types": "^29.6.3",
- "import-local": "^3.0.2",
- "jest-cli": "^29.7.0"
+ "@jest/core": "30.2.0",
+ "@jest/types": "30.2.0",
+ "import-local": "^3.2.0",
+ "jest-cli": "30.2.0"
},
"bin": {
"jest": "bin/jest.js"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
@@ -5685,76 +6165,75 @@
}
},
"node_modules/jest-changed-files": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz",
+ "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "execa": "^5.0.0",
- "jest-util": "^29.7.0",
+ "execa": "^5.1.1",
+ "jest-util": "30.2.0",
"p-limit": "^3.1.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-circus": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz",
+ "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
+ "@jest/environment": "30.2.0",
+ "@jest/expect": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "chalk": "^4.0.0",
+ "chalk": "^4.1.2",
"co": "^4.6.0",
- "dedent": "^1.0.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^29.7.0",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
+ "dedent": "^1.6.0",
+ "is-generator-fn": "^2.1.0",
+ "jest-each": "30.2.0",
+ "jest-matcher-utils": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-runtime": "30.2.0",
+ "jest-snapshot": "30.2.0",
+ "jest-util": "30.2.0",
"p-limit": "^3.1.0",
- "pretty-format": "^29.7.0",
- "pure-rand": "^6.0.0",
+ "pretty-format": "30.2.0",
+ "pure-rand": "^7.0.0",
"slash": "^3.0.0",
- "stack-utils": "^2.0.3"
+ "stack-utils": "^2.0.6"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-cli": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
- "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz",
+ "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "create-jest": "^29.7.0",
- "exit": "^0.1.2",
- "import-local": "^3.0.2",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "yargs": "^17.3.1"
+ "@jest/core": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/types": "30.2.0",
+ "chalk": "^4.1.2",
+ "exit-x": "^0.2.2",
+ "import-local": "^3.2.0",
+ "jest-config": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0",
+ "yargs": "^17.7.2"
},
"bin": {
"jest": "bin/jest.js"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
@@ -5765,6 +6244,16 @@
}
}
},
+ "node_modules/jest-cli/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-cli/node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -5812,6 +6301,19 @@
"node": ">=8"
}
},
+ "node_modules/jest-cli/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-cli/node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -5860,117 +6362,120 @@
}
},
"node_modules/jest-config": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz",
+ "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-jest": "^29.7.0",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "micromatch": "^4.0.4",
+ "@babel/core": "^7.27.4",
+ "@jest/get-type": "30.1.0",
+ "@jest/pattern": "30.0.1",
+ "@jest/test-sequencer": "30.2.0",
+ "@jest/types": "30.2.0",
+ "babel-jest": "30.2.0",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "deepmerge": "^4.3.1",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.11",
+ "jest-circus": "30.2.0",
+ "jest-docblock": "30.2.0",
+ "jest-environment-node": "30.2.0",
+ "jest-regex-util": "30.0.1",
+ "jest-resolve": "30.2.0",
+ "jest-runner": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0",
+ "micromatch": "^4.0.8",
"parse-json": "^5.2.0",
- "pretty-format": "^29.7.0",
+ "pretty-format": "30.2.0",
"slash": "^3.0.0",
"strip-json-comments": "^3.1.1"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
"@types/node": "*",
+ "esbuild-register": ">=3.4.0",
"ts-node": ">=9.0.0"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
+ "esbuild-register": {
+ "optional": true
+ },
"ts-node": {
"optional": true
}
}
},
"node_modules/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz",
+ "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==",
"license": "MIT",
"dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
+ "@jest/diff-sequences": "30.0.1",
+ "@jest/get-type": "30.1.0",
+ "chalk": "^4.1.2",
+ "pretty-format": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-docblock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz",
+ "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "detect-newline": "^3.0.0"
+ "detect-newline": "^3.1.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-each": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz",
+ "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "jest-util": "^29.7.0",
- "pretty-format": "^29.7.0"
+ "@jest/get-type": "30.1.0",
+ "@jest/types": "30.2.0",
+ "chalk": "^4.1.2",
+ "jest-util": "30.2.0",
+ "pretty-format": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-environment-jsdom": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz",
- "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.2.0.tgz",
+ "integrity": "sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/jsdom": "^20.0.0",
+ "@jest/environment": "30.2.0",
+ "@jest/environment-jsdom-abstract": "30.2.0",
+ "@types/jsdom": "^21.1.7",
"@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0",
- "jsdom": "^20.0.0"
+ "jsdom": "^26.1.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
- "canvas": "^2.5.0"
+ "canvas": "^3.0.0"
},
"peerDependenciesMeta": {
"canvas": {
@@ -5979,120 +6484,110 @@
}
},
"node_modules/jest-environment-node": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
- "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz",
+ "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
+ "@jest/environment": "30.2.0",
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-get-type": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-haste-map": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz",
+ "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
- "@types/graceful-fs": "^4.1.3",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
+ "anymatch": "^3.1.3",
+ "fb-watchman": "^2.0.2",
+ "graceful-fs": "^4.2.11",
+ "jest-regex-util": "30.0.1",
+ "jest-util": "30.2.0",
+ "jest-worker": "30.2.0",
+ "micromatch": "^4.0.8",
"walker": "^1.0.8"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"optionalDependencies": {
- "fsevents": "^2.3.2"
+ "fsevents": "^2.3.3"
}
},
"node_modules/jest-leak-detector": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz",
+ "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
+ "@jest/get-type": "30.1.0",
+ "pretty-format": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-matcher-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz",
+ "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==",
"license": "MIT",
"dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
+ "@jest/get-type": "30.1.0",
+ "chalk": "^4.1.2",
+ "jest-diff": "30.2.0",
+ "pretty-format": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-message-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
- "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
+ "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.6.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
+ "@babel/code-frame": "^7.27.1",
+ "@jest/types": "30.2.0",
+ "@types/stack-utils": "^2.0.3",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.2.0",
"slash": "^3.0.0",
- "stack-utils": "^2.0.3"
+ "stack-utils": "^2.0.6"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-mock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
- "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
- "dev": true,
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
+ "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
"license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "jest-util": "^29.7.0"
+ "jest-util": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-pnp-resolver": {
@@ -6114,153 +6609,153 @@
}
},
"node_modules/jest-regex-util": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "dev": true,
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz",
+ "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==",
"license": "MIT",
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-resolve": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz",
+ "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "resolve": "^1.20.0",
- "resolve.exports": "^2.0.0",
- "slash": "^3.0.0"
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.2.0",
+ "jest-pnp-resolver": "^1.2.3",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0",
+ "slash": "^3.0.0",
+ "unrs-resolver": "^1.7.11"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-resolve-dependencies": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz",
+ "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "jest-regex-util": "^29.6.3",
- "jest-snapshot": "^29.7.0"
+ "jest-regex-util": "30.0.1",
+ "jest-snapshot": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-runner": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz",
+ "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/environment": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
+ "@jest/console": "30.2.0",
+ "@jest/environment": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "chalk": "^4.0.0",
+ "chalk": "^4.1.2",
"emittery": "^0.13.1",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-leak-detector": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-resolve": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "jest-worker": "^29.7.0",
+ "exit-x": "^0.2.2",
+ "graceful-fs": "^4.2.11",
+ "jest-docblock": "30.2.0",
+ "jest-environment-node": "30.2.0",
+ "jest-haste-map": "30.2.0",
+ "jest-leak-detector": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-resolve": "30.2.0",
+ "jest-runtime": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-watcher": "30.2.0",
+ "jest-worker": "30.2.0",
"p-limit": "^3.1.0",
"source-map-support": "0.5.13"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-runtime": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz",
+ "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/globals": "^29.7.0",
- "@jest/source-map": "^29.6.3",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
+ "@jest/environment": "30.2.0",
+ "@jest/fake-timers": "30.2.0",
+ "@jest/globals": "30.2.0",
+ "@jest/source-map": "30.0.1",
+ "@jest/test-result": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
+ "chalk": "^4.1.2",
+ "cjs-module-lexer": "^2.1.0",
+ "collect-v8-coverage": "^1.0.2",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-regex-util": "30.0.1",
+ "jest-resolve": "30.2.0",
+ "jest-snapshot": "30.2.0",
+ "jest-util": "30.2.0",
"slash": "^3.0.0",
"strip-bom": "^4.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-snapshot": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz",
+ "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-jsx": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "natural-compare": "^1.4.0",
- "pretty-format": "^29.7.0",
- "semver": "^7.5.3"
+ "@babel/core": "^7.27.4",
+ "@babel/generator": "^7.27.5",
+ "@babel/plugin-syntax-jsx": "^7.27.1",
+ "@babel/plugin-syntax-typescript": "^7.27.1",
+ "@babel/types": "^7.27.3",
+ "@jest/expect-utils": "30.2.0",
+ "@jest/get-type": "30.1.0",
+ "@jest/snapshot-utils": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
+ "babel-preset-current-node-syntax": "^1.2.0",
+ "chalk": "^4.1.2",
+ "expect": "30.2.0",
+ "graceful-fs": "^4.2.11",
+ "jest-diff": "30.2.0",
+ "jest-matcher-utils": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-util": "30.2.0",
+ "pretty-format": "30.2.0",
+ "semver": "^7.7.2",
+ "synckit": "^0.11.8"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-snapshot/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -6271,38 +6766,50 @@
}
},
"node_modules/jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
+ "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
"license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.2"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-util/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/jest-validate": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz",
+ "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
+ "@jest/get-type": "30.1.0",
+ "@jest/types": "30.2.0",
+ "camelcase": "^6.3.0",
+ "chalk": "^4.1.2",
"leven": "^3.1.0",
- "pretty-format": "^29.7.0"
+ "pretty-format": "30.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-validate/node_modules/camelcase": {
@@ -6319,39 +6826,40 @@
}
},
"node_modules/jest-watcher": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz",
+ "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
+ "@jest/test-result": "30.2.0",
+ "@jest/types": "30.2.0",
"@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^4.1.2",
"emittery": "^0.13.1",
- "jest-util": "^29.7.0",
- "string-length": "^4.0.1"
+ "jest-util": "30.2.0",
+ "string-length": "^4.0.2"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz",
+ "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*",
- "jest-util": "^29.7.0",
+ "@ungap/structured-clone": "^1.3.0",
+ "jest-util": "30.2.0",
"merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
+ "supports-color": "^8.1.1"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-worker/node_modules/supports-color": {
@@ -6377,9 +6885,9 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6390,44 +6898,38 @@
}
},
"node_modules/jsdom": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
- "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
+ "version": "26.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
+ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "abab": "^2.0.6",
- "acorn": "^8.8.1",
- "acorn-globals": "^7.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.2",
- "decimal.js": "^10.4.2",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
+ "cssstyle": "^4.2.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.5.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.6",
"is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.2",
- "parse5": "^7.1.1",
+ "nwsapi": "^2.2.16",
+ "parse5": "^7.2.1",
+ "rrweb-cssom": "^0.8.0",
"saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
+ "tough-cookie": "^5.1.1",
+ "w3c-xmlserializer": "^5.0.0",
"webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0",
- "ws": "^8.11.0",
- "xml-name-validator": "^4.0.0"
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.1.1",
+ "ws": "^8.18.0",
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"peerDependencies": {
- "canvas": "^2.5.0"
+ "canvas": "^3.0.0"
},
"peerDependenciesMeta": {
"canvas": {
@@ -6506,16 +7008,6 @@
"json-buffer": "3.0.1"
}
},
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -6556,54 +7048,6 @@
"uc.micro": "^2.0.0"
}
},
- "node_modules/livereload": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz",
- "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chokidar": "^3.5.0",
- "livereload-js": "^3.3.1",
- "opts": ">= 1.2.0",
- "ws": "^7.4.3"
- },
- "bin": {
- "livereload": "bin/livereload.js"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/livereload-js": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.1.tgz",
- "integrity": "sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/livereload/node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
"node_modules/load-json-file": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
@@ -6715,9 +7159,9 @@
}
},
"node_modules/make-dir/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -6812,29 +7256,6 @@
"node": ">=8.6"
}
},
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
@@ -6868,6 +7289,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -6875,6 +7306,22 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/napi-postinstall": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz",
+ "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "napi-postinstall": "lib/cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/napi-postinstall"
+ }
+ },
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -6882,6 +7329,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -7135,9 +7589,9 @@
}
},
"node_modules/nwsapi": {
- "version": "2.2.20",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz",
- "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==",
+ "version": "2.2.22",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
+ "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
"dev": true,
"license": "MIT"
},
@@ -7282,13 +7736,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/opts": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz",
- "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==",
- "dev": true,
- "license": "BSD-2-Clause"
- },
"node_modules/own-keys": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
@@ -7349,6 +7796,13 @@
"node": ">=6"
}
},
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -7444,6 +7898,30 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/path-type": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
@@ -7598,17 +8076,17 @@
}
},
"node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+ "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
"license": "MIT",
"dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
+ "@jest/schemas": "30.0.5",
+ "ansi-styles": "^5.2.0",
+ "react-is": "^18.3.1"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/pretty-format/node_modules/ansi-styles": {
@@ -7623,33 +8101,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/psl": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
- "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.3.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/lupomontero"
- }
- },
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -7670,9 +8121,9 @@
}
},
"node_modules/pure-rand": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
- "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz",
+ "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==",
"dev": true,
"funding": [
{
@@ -7686,13 +8137,6 @@
],
"license": "MIT"
},
- "node_modules/querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/react-is": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
@@ -7788,13 +8232,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/resolve": {
"version": "1.22.10",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
@@ -7849,15 +8286,12 @@
"node": ">=4"
}
},
- "node_modules/resolve.exports": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
- "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
+ "node_modules/rrweb-cssom": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
+ "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
+ "license": "MIT"
},
"node_modules/safe-array-concat": {
"version": "1.1.3",
@@ -7922,9 +8356,9 @@
"license": "MIT"
},
"node_modules/sass": {
- "version": "1.89.2",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz",
- "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==",
+ "version": "1.94.2",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.94.2.tgz",
+ "integrity": "sha512-N+7WK20/wOr7CzA2snJcUSSNTCzeCGUTFY3OgeQP3mZ1aj9NMQ0mSTXwlrnd89j33zzQJGqIN52GIOmYrfq46A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8164,18 +8598,17 @@
}
},
"node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
- "license": "ISC"
- },
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true,
- "license": "MIT"
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
"node_modules/slash": {
"version": "3.0.0",
@@ -8187,9 +8620,9 @@
}
},
"node_modules/snabbdom": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/snabbdom/-/snabbdom-3.6.2.tgz",
- "integrity": "sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==",
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/snabbdom/-/snabbdom-3.6.3.tgz",
+ "integrity": "sha512-W2lHLLw2qR2Vv0DcMmcxXqcfdBaIcoN+y/86SmHv8fn4DazEQSH6KN3TjZcWvwujW56OHiiirsbHWZb4vx/0fg==",
"license": "MIT",
"engines": {
"node": ">=12.17.0"
@@ -8324,6 +8757,29 @@
"node": ">=10"
}
},
+ "node_modules/string-length/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-length/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
@@ -8339,6 +8795,62 @@
"node": ">=6"
}
},
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/string-width/node_modules/ansi-regex": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
@@ -8441,6 +8953,23 @@
}
},
"node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
@@ -8453,6 +8982,16 @@
"node": ">=8"
}
},
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/strip-bom": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
@@ -8524,6 +9063,22 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/synckit": {
+ "version": "0.11.11",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz",
+ "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@pkgr/core": "^0.2.9"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/synckit"
+ }
+ },
"node_modules/test-exclude": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -8539,6 +9094,48 @@
"node": ">=8"
}
},
+ "node_modules/test-exclude/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/tldts": {
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
+ "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tldts-core": "^6.1.86"
+ },
+ "bin": {
+ "tldts": "bin/cli.js"
+ }
+ },
+ "node_modules/tldts-core": {
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
+ "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -8559,48 +9156,45 @@
}
},
"node_modules/tough-cookie": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
- "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
+ "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
+ "tldts": "^6.1.32"
},
"engines": {
- "node": ">=6"
+ "node": ">=16"
}
},
"node_modules/tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "punycode": "^2.1.1"
+ "punycode": "^2.3.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/ts-jest": {
- "version": "29.4.0",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.0.tgz",
- "integrity": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==",
+ "version": "29.4.5",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz",
+ "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"bs-logger": "^0.2.6",
- "ejs": "^3.1.10",
"fast-json-stable-stringify": "^2.1.0",
+ "handlebars": "^4.7.8",
"json5": "^2.2.3",
"lodash.memoize": "^4.1.2",
"make-error": "^1.3.6",
- "semver": "^7.7.2",
+ "semver": "^7.7.3",
"type-fest": "^4.41.0",
"yargs-parser": "^21.1.1"
},
@@ -8641,9 +9235,9 @@
}
},
"node_modules/ts-jest/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -8746,6 +9340,14 @@
"node": ">=4"
}
},
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD",
+ "optional": true
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -8861,9 +9463,9 @@
}
},
"node_modules/typescript": {
- "version": "5.7.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
- "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "version": "5.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -8880,6 +9482,20 @@
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
"license": "MIT"
},
+ "node_modules/uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/unbox-primitive": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
@@ -8905,14 +9521,39 @@
"integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
"license": "MIT"
},
- "node_modules/universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "node_modules/unrs-resolver": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
+ "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==",
"dev": true,
+ "hasInstallScript": true,
"license": "MIT",
- "engines": {
- "node": ">= 4.0.0"
+ "dependencies": {
+ "napi-postinstall": "^0.3.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unrs-resolver"
+ },
+ "optionalDependencies": {
+ "@unrs/resolver-binding-android-arm-eabi": "1.11.1",
+ "@unrs/resolver-binding-android-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-x64": "1.11.1",
+ "@unrs/resolver-binding-freebsd-x64": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-musl": "1.11.1",
+ "@unrs/resolver-binding-wasm32-wasi": "1.11.1",
+ "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-x64-msvc": "1.11.1"
}
},
"node_modules/update-browserslist-db": {
@@ -8956,17 +9597,6 @@
"punycode": "^2.1.0"
}
},
- "node_modules/url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
"node_modules/v8-compile-cache-lib": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
@@ -9007,16 +9637,16 @@
"license": "MIT"
},
"node_modules/w3c-xmlserializer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
- "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "xml-name-validator": "^4.0.0"
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/walker": {
@@ -9040,40 +9670,40 @@
}
},
"node_modules/whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tr46": "^3.0.0",
+ "tr46": "^5.1.0",
"webidl-conversions": "^7.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/which": {
@@ -9198,6 +9828,13 @@
"node": ">=0.10.0"
}
},
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
@@ -9213,6 +9850,80 @@
"node": ">=6"
}
},
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/wrap-ansi/node_modules/ansi-regex": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
@@ -9274,17 +9985,17 @@
"license": "ISC"
},
"node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
"license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/ws": {
@@ -9310,13 +10021,13 @@
}
},
"node_modules/xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true,
"license": "Apache-2.0",
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/xmlchars": {
diff --git a/package.json b/package.json
index 637457a93..cd5bc8d2b 100644
--- a/package.json
+++ b/package.json
@@ -4,14 +4,13 @@
"build:css:dev": "sass ./resources/sass:./public/dist --embed-sources",
"build:css:watch": "sass ./resources/sass:./public/dist --watch --embed-sources",
"build:css:production": "sass ./resources/sass:./public/dist -s compressed",
- "build:js:dev": "node dev/build/esbuild.js",
- "build:js:watch": "chokidar --initial \"./resources/**/*.js\" \"./resources/**/*.mjs\" \"./resources/**/*.ts\" -c \"npm run build:js:dev\"",
- "build:js:production": "node dev/build/esbuild.js production",
+ "build:js:dev": "node dev/build/esbuild.mjs",
+ "build:js:watch": "node dev/build/esbuild.mjs watch",
+ "build:js:production": "node dev/build/esbuild.mjs production",
"build": "npm-run-all --parallel build:*:dev",
"production": "npm-run-all --parallel build:*:production",
- "dev": "npm-run-all --parallel watch livereload",
+ "dev": "npm-run-all --parallel build:*:watch",
"watch": "npm-run-all --parallel build:*:watch",
- "livereload": "livereload ./public/dist/",
"permissions": "chown -R $USER:$USER bootstrap/cache storage public/uploads",
"lint": "eslint \"resources/**/*.js\" \"resources/**/*.mjs\"",
"fix": "eslint --fix \"resources/**/*.js\" \"resources/**/*.mjs\"",
@@ -19,47 +18,46 @@
"test": "jest"
},
"devDependencies": {
- "@eslint/js": "^9.21.0",
- "@lezer/generator": "^1.7.2",
+ "@eslint/js": "^9.39.1",
+ "@lezer/generator": "^1.8.0",
"@types/markdown-it": "^14.1.2",
- "@types/sortablejs": "^1.15.8",
+ "@types/sortablejs": "^1.15.9",
"chokidar-cli": "^3.0",
- "esbuild": "^0.25.0",
- "eslint": "^9.21.0",
- "eslint-plugin-import": "^2.31.0",
- "jest": "^29.7.0",
- "jest-environment-jsdom": "^29.7.0",
- "livereload": "^0.9.3",
+ "esbuild": "^0.27.0",
+ "eslint": "^9.39.1",
+ "eslint-plugin-import": "^2.32.0",
+ "jest": "^30.2.0",
+ "jest-environment-jsdom": "^30.2.0",
"npm-run-all": "^4.1.5",
- "sass": "^1.85.0",
- "ts-jest": "^29.2.6",
+ "sass": "^1.94.2",
+ "ts-jest": "^29.4.5",
"ts-node": "^10.9.2",
- "typescript": "5.7.*"
+ "typescript": "5.9.*"
},
"dependencies": {
- "@codemirror/commands": "^6.8.0",
+ "@codemirror/commands": "^6.10.0",
"@codemirror/lang-css": "^6.3.1",
- "@codemirror/lang-html": "^6.4.9",
- "@codemirror/lang-javascript": "^6.2.3",
- "@codemirror/lang-json": "^6.0.1",
- "@codemirror/lang-markdown": "^6.3.2",
- "@codemirror/lang-php": "^6.0.1",
+ "@codemirror/lang-html": "^6.4.11",
+ "@codemirror/lang-javascript": "^6.2.4",
+ "@codemirror/lang-json": "^6.0.2",
+ "@codemirror/lang-markdown": "^6.5.0",
+ "@codemirror/lang-php": "^6.0.2",
"@codemirror/lang-xml": "^6.1.0",
- "@codemirror/language": "^6.10.8",
- "@codemirror/legacy-modes": "^6.4.3",
+ "@codemirror/language": "^6.11.3",
+ "@codemirror/legacy-modes": "^6.5.2",
"@codemirror/state": "^6.5.2",
- "@codemirror/theme-one-dark": "^6.1.2",
- "@codemirror/view": "^6.36.3",
- "@lezer/highlight": "^1.2.1",
+ "@codemirror/theme-one-dark": "^6.1.3",
+ "@codemirror/view": "^6.38.8",
+ "@lezer/highlight": "^1.2.3",
"@ssddanbrown/codemirror-lang-smarty": "^1.0.0",
"@ssddanbrown/codemirror-lang-twig": "^1.0.0",
- "@types/jest": "^29.5.14",
- "codemirror": "^6.0.1",
+ "@types/jest": "^30.0.0",
+ "codemirror": "^6.0.2",
"eventsource-client": "^1.1.4",
- "idb-keyval": "^6.2.1",
+ "idb-keyval": "^6.2.2",
"markdown-it": "^14.1.0",
"markdown-it-task-lists": "^2.1.1",
- "snabbdom": "^3.6.2",
+ "snabbdom": "^3.6.3",
"sortablejs": "^1.15.6"
}
}
diff --git a/phpcs.xml b/phpcs.xml
index 8d4c6b702..8337d5aac 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -14,7 +14,7 @@
-
+ ./tests/*
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
index 0f2021383..72189222f 100644
--- a/phpstan.neon.dist
+++ b/phpstan.neon.dist
@@ -7,7 +7,7 @@ parameters:
- app
# The level 8 is the highest level
- level: 1
+ level: 3
phpVersion:
min: 80200
diff --git a/phpunit.xml b/phpunit.xml
index 243c3d3bc..8a7ab9cb7 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -1,6 +1,6 @@
@@ -16,6 +16,8 @@
+
+
diff --git a/public/web.config b/public/web.config
index 474eb6898..b08c89c9a 100644
--- a/public/web.config
+++ b/public/web.config
@@ -1,6 +1,6 @@
diff --git a/readme.md b/readme.md
index 50b908107..3ee5f242a 100644
--- a/readme.md
+++ b/readme.md
@@ -51,48 +51,53 @@ Big thanks to these companies for supporting the project.
This documentation covers use of the REST API.
- Examples of API usage, in a variety of programming languages, can be found in the BookStack api-scripts repo on GitHub.
+ Examples of API usage, in a variety of programming languages, can be found in the BookStack api-scripts repo on GitHub.
Some alternative options for extension and customization can be found below:
diff --git a/resources/views/attachments/manager-list.blade.php b/resources/views/attachments/manager-list.blade.php
index 6314aa7b5..10ede4aae 100644
--- a/resources/views/attachments/manager-list.blade.php
+++ b/resources/views/attachments/manager-list.blade.php
@@ -16,7 +16,7 @@
type="button"
title="{{ trans('entities.attachments_insert_link') }}"
class="drag-card-action text-center text-link">@icon('link')
- @if(userCan('attachment-update', $attachment))
+ @if(userCan(\BookStack\Permissions\Permission::AttachmentUpdate, $attachment))
@endif
- @if(userCan('attachment-delete', $attachment))
+ @if(userCan(\BookStack\Permissions\Permission::AttachmentDelete, $attachment))