diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 374ceb72d..89285bc63 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -6,6 +6,32 @@ updates:
schedule:
interval: "weekly"
open-pull-requests-limit: 10
+ # HELD BACK DELIBERATELY, not out of caution. Each of these is blocked by a
+ # package we do not control, and dependabot cannot see that, so it proposes
+ # them on every run and each one takes `npm ci` or `npm run build` from
+ # green to red with no code change that can fix it.
+ #
+ # typescript 7: typescript-eslint hard-throws on TS >= 7 (a `versionMajor
+ # >= 7` guard in its dist/index.js) and every published
+ # version still peers `typescript: ">=4.8.4 <6.1.0"`.
+ # webpack-cli 7: @nextcloud/webpack-vue-config 7.0.4, the latest, peers
+ # `webpack-cli: ^6.0.1`.
+ # @babel/core 8: the same package peers `@babel/core: ^7.22.9`, and
+ # preset-env 8 requires core 8, so the pair moves together
+ # or not at all.
+ #
+ # Lift each the moment its blocker ships support. These are compatibility
+ # limits, not security ones: `npm audit` reports no advisory against any of
+ # the versions pinned here.
+ ignore:
+ - dependency-name: "typescript"
+ update-types: ["version-update:semver-major"]
+ - dependency-name: "webpack-cli"
+ update-types: ["version-update:semver-major"]
+ - dependency-name: "@babel/core"
+ update-types: ["version-update:semver-major"]
+ - dependency-name: "@babel/preset-env"
+ update-types: ["version-update:semver-major"]
cooldown:
default-days: 1
include:
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 0caac38c6..b232b2c45 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -64,7 +64,7 @@ Gratis en open source onder de EUPL-1.2 licentie.
which quoted the grep command in order to WARN about the problem —
made it read ")[^". The warning reproduced the bug it described.
-->
- 1.1.3-unstable.20260830084017
+ 1.1.7-unstable.20260830174749
EUPL-1.2
Conduction
Thematiq
diff --git a/docs/package-lock.json b/docs/package-lock.json
index ba5e29ec3..62e8b9509 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -272,12 +272,12 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
- "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
+ "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/helper-validator-identifier": "^7.29.7",
"js-tokens": "^4.0.0",
"picocolors": "^1.1.1"
},
@@ -334,13 +334,13 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.29.1",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
- "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "version": "7.29.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz",
+ "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==",
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.29.0",
- "@babel/types": "^7.29.0",
+ "@babel/parser": "^7.29.8",
+ "@babel/types": "^7.29.8",
"@jridgewell/gen-mapping": "^0.3.12",
"@jridgewell/trace-mapping": "^0.3.28",
"jsesc": "^3.0.2"
@@ -459,9 +459,9 @@
}
},
"node_modules/@babel/helper-globals": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
- "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
+ "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -481,27 +481,27 @@
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
- "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
+ "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
"license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.28.6",
- "@babel/types": "^7.28.6"
+ "@babel/traverse": "^7.29.7",
+ "@babel/types": "^7.29.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
- "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
+ "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.28.6",
- "@babel/helper-validator-identifier": "^7.28.5",
- "@babel/traverse": "^7.28.6"
+ "@babel/helper-module-imports": "^7.29.7",
+ "@babel/helper-validator-identifier": "^7.29.7",
+ "@babel/traverse": "^7.29.7"
},
"engines": {
"node": ">=6.9.0"
@@ -523,9 +523,9 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
- "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz",
+ "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -579,18 +579,18 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
- "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
+ "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
- "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
+ "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -633,12 +633,12 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
- "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
+ "version": "7.29.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz",
+ "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.29.0"
+ "@babel/types": "^7.29.8"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -1223,15 +1223,15 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz",
- "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==",
+ "version": "7.29.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz",
+ "integrity": "sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.28.6",
- "@babel/helper-plugin-utils": "^7.28.6",
- "@babel/helper-validator-identifier": "^7.28.5",
- "@babel/traverse": "^7.29.0"
+ "@babel/helper-module-transforms": "^7.29.7",
+ "@babel/helper-plugin-utils": "^7.29.7",
+ "@babel/helper-validator-identifier": "^7.29.7",
+ "@babel/traverse": "^7.29.8"
},
"engines": {
"node": ">=6.9.0"
@@ -1940,31 +1940,31 @@
}
},
"node_modules/@babel/template": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
- "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
+ "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.28.6",
- "@babel/parser": "^7.28.6",
- "@babel/types": "^7.28.6"
+ "@babel/code-frame": "^7.29.7",
+ "@babel/parser": "^7.29.7",
+ "@babel/types": "^7.29.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
- "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "version": "7.29.8",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz",
+ "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.29.0",
- "@babel/generator": "^7.29.0",
- "@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.29.0",
- "@babel/template": "^7.28.6",
- "@babel/types": "^7.29.0",
+ "@babel/code-frame": "^7.29.7",
+ "@babel/generator": "^7.29.8",
+ "@babel/helper-globals": "^7.29.7",
+ "@babel/parser": "^7.29.8",
+ "@babel/template": "^7.29.7",
+ "@babel/types": "^7.29.8",
"debug": "^4.3.1"
},
"engines": {
@@ -1972,13 +1972,13 @@
}
},
"node_modules/@babel/types": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
- "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "version": "7.29.8",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz",
+ "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.28.5"
+ "@babel/helper-string-parser": "^7.29.7",
+ "@babel/helper-validator-identifier": "^7.29.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1990,43 +1990,10 @@
"integrity": "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==",
"license": "MIT"
},
- "node_modules/@chevrotain/cst-dts-gen": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.1.1.tgz",
- "integrity": "sha512-fRHyv6/f542qQqiRGalrfJl/evD39mAvbJLCekPazhiextEatq1Jx1K/i9gSd5NNO0ds03ek0Cbo/4uVKmOBcw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/gast": "11.1.1",
- "@chevrotain/types": "11.1.1",
- "lodash-es": "4.17.23"
- }
- },
- "node_modules/@chevrotain/gast": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.1.1.tgz",
- "integrity": "sha512-Ko/5vPEYy1vn5CbCjjvnSO4U7GgxyGm+dfUZZJIWTlQFkXkyym0jFYrWEU10hyCjrA7rQtiHtBr0EaZqvHFZvg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/types": "11.1.1",
- "lodash-es": "4.17.23"
- }
- },
- "node_modules/@chevrotain/regexp-to-ast": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.1.1.tgz",
- "integrity": "sha512-ctRw1OKSXkOrR8VTvOxrQ5USEc4sNrfwXHa1NuTcR7wre4YbjPcKw+82C2uylg/TEwFRgwLmbhlln4qkmDyteg==",
- "license": "Apache-2.0"
- },
"node_modules/@chevrotain/types": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.1.1.tgz",
- "integrity": "sha512-wb2ToxG8LkgPYnKe9FH8oGn3TMCBdnwiuNC5l5y+CtlaVRbCytU0kbVsk6CGrqTL4ZN4ksJa0TXOYbxpbthtqw==",
- "license": "Apache-2.0"
- },
- "node_modules/@chevrotain/utils": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.1.1.tgz",
- "integrity": "sha512-71eTYMzYXYSFPrbg/ZwftSaSDld7UYlS8OQa3lNnn9jzNtpFbaReRRyghzqS7rI3CDaorqpPJJcXGHK+FE1TVQ==",
+ "version": "11.1.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.1.2.tgz",
+ "integrity": "sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==",
"license": "Apache-2.0"
},
"node_modules/@colors/colors": {
@@ -4795,12 +4762,12 @@
}
},
"node_modules/@mermaid-js/parser": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-1.0.0.tgz",
- "integrity": "sha512-vvK0Hi/VWndxoh03Mmz6wa1KDriSPjS2XMZL/1l19HFwygiObEEoEwSDxOqyLzzAI6J2PU3261JjTMTO7x+BPw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-1.2.1.tgz",
+ "integrity": "sha512-n12NohV3mrUyUL2o93IgG/ifeW9FTyeJn3zDxkhwa8MJ9Fxg3HQMlA3RiGmD/3UnJvheztkjjQAjA2T4LmUcpw==",
"license": "MIT",
"dependencies": {
- "langium": "^4.0.0"
+ "@chevrotain/types": "~11.1.2"
}
},
"node_modules/@noble/hashes": {
@@ -5364,15 +5331,6 @@
"node": ">=14.16"
}
},
- "node_modules/@trysound/sax": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
- "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
- "license": "ISC",
- "engines": {
- "node": ">=10.13.0"
- }
- },
"node_modules/@types/body-parser": {
"version": "1.19.6",
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
@@ -6017,6 +5975,16 @@
"integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
"license": "ISC"
},
+ "node_modules/@upsetjs/venn.js": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@upsetjs/venn.js/-/venn.js-2.0.0.tgz",
+ "integrity": "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==",
+ "license": "MIT",
+ "optionalDependencies": {
+ "d3-selection": "^3.0.0",
+ "d3-transition": "^3.0.1"
+ }
+ },
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
@@ -6688,9 +6656,9 @@
}
},
"node_modules/body-parser": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
- "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
+ "version": "1.20.6",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.6.tgz",
+ "integrity": "sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==",
"license": "MIT",
"dependencies": {
"bytes": "~3.1.2",
@@ -6701,7 +6669,7 @@
"http-errors": "~2.0.1",
"iconv-lite": "~0.4.24",
"on-finished": "~2.4.1",
- "qs": "~6.14.0",
+ "qs": "~6.15.1",
"raw-body": "~2.5.3",
"type-is": "~1.6.18",
"unpipe": "~1.0.0"
@@ -6786,9 +6754,9 @@
}
},
"node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
@@ -7129,32 +7097,6 @@
"url": "https://github.com/sponsors/fb55"
}
},
- "node_modules/chevrotain": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.1.1.tgz",
- "integrity": "sha512-f0yv5CPKaFxfsPTBzX7vGuim4oIC1/gcS7LUGdBSwl2dU6+FON6LVUksdOo1qJjoUvXNn45urgh8C+0a24pACQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "11.1.1",
- "@chevrotain/gast": "11.1.1",
- "@chevrotain/regexp-to-ast": "11.1.1",
- "@chevrotain/types": "11.1.1",
- "@chevrotain/utils": "11.1.1",
- "lodash-es": "4.17.23"
- }
- },
- "node_modules/chevrotain-allstar": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
- "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
- "license": "MIT",
- "dependencies": {
- "lodash-es": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "^11.0.0"
- }
- },
"node_modules/chokidar": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
@@ -8125,9 +8067,9 @@
"license": "MIT"
},
"node_modules/cytoscape": {
- "version": "3.33.1",
- "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz",
- "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==",
+ "version": "3.34.2",
+ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.34.2.tgz",
+ "integrity": "sha512-Cm2jaj1X/PBNlzV9yH8zcfGOxO7U+CJ/+mxSBVPSchLaugdp4jtlGx5qaHtPRZ6tgiZ5P+o1XoRfJA+ba6KM3g==",
"license": "MIT",
"engines": {
"node": ">=0.10"
@@ -8623,9 +8565,9 @@
}
},
"node_modules/dagre-d3-es": {
- "version": "7.0.13",
- "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.13.tgz",
- "integrity": "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==",
+ "version": "7.0.14",
+ "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.14.tgz",
+ "integrity": "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==",
"license": "MIT",
"dependencies": {
"d3": "^7.9.0",
@@ -8633,9 +8575,9 @@
}
},
"node_modules/dayjs": {
- "version": "1.11.19",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
- "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
+ "version": "1.11.23",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.23.tgz",
+ "integrity": "sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==",
"license": "MIT"
},
"node_modules/debounce": {
@@ -8800,9 +8742,9 @@
}
},
"node_modules/delaunator": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
- "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.1.0.tgz",
+ "integrity": "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==",
"license": "ISC",
"dependencies": {
"robust-predicates": "^3.0.2"
@@ -8947,9 +8889,9 @@
}
},
"node_modules/dompurify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz",
- "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==",
+ "version": "3.4.14",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.14.tgz",
+ "integrity": "sha512-dVoH9z+MY+C9IilgGCk3YfFqjLi3fChm2OiKJMzh6axrJ5qwxqWaZamgmHrpv22CN/KdbZJuGEGgfQoL00LTdg==",
"license": "(MPL-2.0 OR Apache-2.0)",
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
@@ -9151,6 +9093,18 @@
"node": ">= 0.4"
}
},
+ "node_modules/es-toolkit": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.52.0.tgz",
+ "integrity": "sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA==",
+ "license": "MIT",
+ "workspaces": [
+ "docs",
+ "benchmarks",
+ "tests/types",
+ "tests/browser-compat"
+ ]
+ },
"node_modules/esast-util-from-estree": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz",
@@ -9462,14 +9416,14 @@
}
},
"node_modules/express": {
- "version": "4.22.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
- "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
+ "version": "4.22.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz",
+ "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==",
"license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "~1.20.3",
+ "body-parser": "~1.20.5",
"content-disposition": "~0.5.4",
"content-type": "~1.0.4",
"cookie": "~0.7.1",
@@ -9488,7 +9442,7 @@
"parseurl": "~1.3.3",
"path-to-regexp": "~0.1.12",
"proxy-addr": "~2.0.7",
- "qs": "~6.14.0",
+ "qs": "~6.15.1",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "~0.19.0",
@@ -9596,9 +9550,9 @@
"license": "MIT"
},
"node_modules/fast-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
- "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.6.tgz",
+ "integrity": "sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q==",
"funding": [
{
"type": "github",
@@ -9611,6 +9565,15 @@
],
"license": "BSD-3-Clause"
},
+ "node_modules/fastdom": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fastdom/-/fastdom-1.0.12.tgz",
+ "integrity": "sha512-LB+xjSTEbjHE1cWsxu+tN2Xqr1kpi+V9aADI7sVM5ZMaXyYGPHULQMzpJMYqOTULK/73pUkWVzzObFRBkPr+hg==",
+ "license": "MIT",
+ "dependencies": {
+ "strictdom": "^1.0.1"
+ }
+ },
"node_modules/fastq": {
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
@@ -9837,9 +9800,9 @@
}
},
"node_modules/follow-redirects": {
- "version": "1.15.11",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
- "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
+ "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
"funding": [
{
"type": "individual",
@@ -10160,9 +10123,9 @@
}
},
"node_modules/gray-matter/node_modules/js-yaml": {
- "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==",
+ "version": "3.15.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz",
+ "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==",
"license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
@@ -11313,9 +11276,19 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz",
+ "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/puzrin"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/nodeca"
+ }
+ ],
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
@@ -11379,9 +11352,9 @@
}
},
"node_modules/katex": {
- "version": "0.16.33",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.33.tgz",
- "integrity": "sha512-q3N5u+1sY9Bu7T4nlXoiRBXWfwSefNGoKeOwekV+gw0cAXQlz2Ww6BLcmBxVDeXBMUDQv6fK5bcNaJLxob3ZQA==",
+ "version": "0.16.47",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz",
+ "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==",
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
@@ -11435,23 +11408,6 @@
"node": ">=6"
}
},
- "node_modules/langium": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/langium/-/langium-4.2.1.tgz",
- "integrity": "sha512-zu9QWmjpzJcomzdJQAHgDVhLGq5bLosVak1KVa40NzQHXfqr4eAHupvnPOVXEoLkg6Ocefvf/93d//SB7du4YQ==",
- "license": "MIT",
- "dependencies": {
- "chevrotain": "~11.1.1",
- "chevrotain-allstar": "~0.3.1",
- "vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "vscode-uri": "~3.1.0"
- },
- "engines": {
- "node": ">=20.10.0",
- "npm": ">=10.2.3"
- }
- },
"node_modules/latest-version": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
@@ -11468,13 +11424,13 @@
}
},
"node_modules/launch-editor": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.1.tgz",
- "integrity": "sha512-lPSddlAAluRKJ7/cjRFoXUFzaX7q/YKI7yPHuEvSJVqoXvFnJov1/Ud87Aa4zULIbA9Nja4mSPK8l0z/7eV2wA==",
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz",
+ "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==",
"license": "MIT",
"dependencies": {
"picocolors": "^1.1.1",
- "shell-quote": "^1.8.3"
+ "shell-quote": "^1.8.4"
}
},
"node_modules/layout-base": {
@@ -11553,15 +11509,15 @@
}
},
"node_modules/lodash": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
- "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
+ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
"license": "MIT"
},
"node_modules/lodash-es": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz",
- "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz",
+ "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==",
"license": "MIT"
},
"node_modules/lodash.debounce": {
@@ -12148,31 +12104,33 @@
}
},
"node_modules/mermaid": {
- "version": "11.12.3",
- "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.3.tgz",
- "integrity": "sha512-wN5ZSgJQIC+CHJut9xaKWsknLxaFBwCPwPkGTSUYrTiHORWvpT8RxGk849HPnpUAQ+/9BPRqYb80jTpearrHzQ==",
+ "version": "11.17.2",
+ "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.17.2.tgz",
+ "integrity": "sha512-V6K3C8EBdEsPFZXSKMJe6ppQOENxuHARr9GvHX4hh47lAbhMRD9qf4oEK7LoaRQxULMa80/qt5gHO73aCleBBg==",
"license": "MIT",
"dependencies": {
- "@braintree/sanitize-url": "^7.1.1",
- "@iconify/utils": "^3.0.1",
- "@mermaid-js/parser": "^1.0.0",
+ "@braintree/sanitize-url": "^7.1.2",
+ "@iconify/utils": "^3.0.2",
+ "@mermaid-js/parser": "^1.2.1",
"@types/d3": "^7.4.3",
- "cytoscape": "^3.29.3",
+ "@upsetjs/venn.js": "^2.0.0",
+ "cytoscape": "^3.34.0",
"cytoscape-cose-bilkent": "^4.1.0",
"cytoscape-fcose": "^2.2.0",
"d3": "^7.9.0",
"d3-sankey": "^0.12.3",
- "dagre-d3-es": "7.0.13",
- "dayjs": "^1.11.18",
- "dompurify": "^3.2.5",
- "katex": "^0.16.22",
+ "dagre-d3-es": "7.0.14",
+ "dayjs": "^1.11.21",
+ "dompurify": "^3.3.3",
+ "es-toolkit": "^1.45.1",
+ "fastdom": "1.0.12",
+ "katex": "^0.16.47",
"khroma": "^2.1.0",
- "lodash-es": "^4.17.23",
- "marked": "^16.2.1",
+ "marked": "^16.3.0",
"roughjs": "^4.6.6",
"stylis": "^4.3.6",
"ts-dedent": "^2.2.0",
- "uuid": "^11.1.0"
+ "uuid": "^11.1.0 || ^12 || ^13 || ^14.0.0"
}
},
"node_modules/methods": {
@@ -14123,9 +14081,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "version": "3.3.18",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz",
+ "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==",
"funding": [
{
"type": "github",
@@ -14821,9 +14779,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "version": "8.5.26",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz",
+ "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==",
"funding": [
{
"type": "opencollective",
@@ -14840,7 +14798,7 @@
],
"license": "MIT",
"dependencies": {
- "nanoid": "^3.3.11",
+ "nanoid": "^3.3.17",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
@@ -16387,12 +16345,13 @@
}
},
"node_modules/qs": {
- "version": "6.14.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
- "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
+ "version": "6.15.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz",
+ "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==",
"license": "BSD-3-Clause",
"dependencies": {
- "side-channel": "^1.1.0"
+ "es-define-property": "^1.0.1",
+ "side-channel": "^1.1.1"
},
"engines": {
"node": ">=0.6"
@@ -17218,9 +17177,9 @@
}
},
"node_modules/robust-predicates": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
- "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",
+ "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==",
"license": "Unlicense"
},
"node_modules/roughjs": {
@@ -17321,9 +17280,9 @@
"license": "MIT"
},
"node_modules/sax": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz",
- "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz",
+ "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==",
"license": "BlueOak-1.0.0",
"engines": {
"node": ">=11.0.0"
@@ -17670,9 +17629,9 @@
}
},
"node_modules/shell-quote": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
- "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz",
+ "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -17682,14 +17641,14 @@
}
},
"node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz",
+ "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
+ "object-inspect": "^1.13.4",
+ "side-channel-list": "^1.0.1",
"side-channel-map": "^1.0.1",
"side-channel-weakmap": "^1.0.2"
},
@@ -17701,13 +17660,13 @@
}
},
"node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
+ "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
+ "object-inspect": "^1.13.4"
},
"engines": {
"node": ">= 0.4"
@@ -17974,6 +17933,12 @@
"integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
"license": "MIT"
},
+ "node_modules/strictdom": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strictdom/-/strictdom-1.0.1.tgz",
+ "integrity": "sha512-cEmp9QeXXRmjj/rVp9oyiqcvyocWab/HaoN4+bwFeZ7QzykJD6L3yD4v12K1x0tHpqRqVpJevN3gW7kyM39Bqg==",
+ "license": "MIT"
+ },
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -18168,18 +18133,18 @@
"license": "MIT"
},
"node_modules/svgo": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
- "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.5.tgz",
+ "integrity": "sha512-8SQMzdrvWaD8deUmrnYB+ASyxBVgWUOilg+A75nE/76WdLpj6LopCwiAVvkzkcqy/9b7t2Mg7faFLjg0ZRcZ3w==",
"license": "MIT",
"dependencies": {
- "@trysound/sax": "0.2.0",
"commander": "^7.2.0",
"css-select": "^5.1.0",
"css-tree": "^2.3.1",
"css-what": "^6.1.0",
"csso": "^5.0.5",
- "picocolors": "^1.0.0"
+ "picocolors": "^1.0.0",
+ "sax": "^1.5.0"
},
"bin": {
"svgo": "bin/svgo"
@@ -19011,55 +18976,6 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/vscode-jsonrpc": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
- "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/vscode-languageserver": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
- "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
- "license": "MIT",
- "dependencies": {
- "vscode-languageserver-protocol": "3.17.5"
- },
- "bin": {
- "installServerIntoExtension": "bin/installServerIntoExtension"
- }
- },
- "node_modules/vscode-languageserver-protocol": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
- "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
- "license": "MIT",
- "dependencies": {
- "vscode-jsonrpc": "8.2.0",
- "vscode-languageserver-types": "3.17.5"
- }
- },
- "node_modules/vscode-languageserver-textdocument": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
- "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
- "license": "MIT"
- },
- "node_modules/vscode-languageserver-types": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
- "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==",
- "license": "MIT"
- },
- "node_modules/vscode-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
- "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
- "license": "MIT"
- },
"node_modules/watchpack": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz",
@@ -19239,9 +19155,9 @@
}
},
"node_modules/webpack-dev-server": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz",
- "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==",
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz",
+ "integrity": "sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw==",
"license": "MIT",
"dependencies": {
"@types/bonjour": "^3.5.13",
@@ -19262,7 +19178,7 @@
"graceful-fs": "^4.2.6",
"http-proxy-middleware": "^2.0.9",
"ipaddr.js": "^2.1.0",
- "launch-editor": "^2.6.1",
+ "launch-editor": "^2.14.1",
"open": "^10.0.3",
"p-retry": "^6.2.0",
"schema-utils": "^4.2.0",
@@ -19326,9 +19242,9 @@
}
},
"node_modules/webpack-dev-server/node_modules/ws": {
- "version": "8.19.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
- "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
+ "version": "8.21.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",
+ "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -19463,9 +19379,9 @@
}
},
"node_modules/websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz",
+ "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==",
"license": "Apache-2.0",
"dependencies": {
"http-parser-js": ">=0.5.1",
@@ -19590,9 +19506,9 @@
}
},
"node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "version": "7.5.13",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.13.tgz",
+ "integrity": "sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA==",
"license": "MIT",
"engines": {
"node": ">=8.3.0"
diff --git a/l10n/be.js b/l10n/be.js
new file mode 100644
index 000000000..2b01601fc
--- /dev/null
+++ b/l10n/be.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Выбар колеру для {label}",
+ "NL design system theme": "Тэма NL Design System",
+ "Documentation": "Дакументацыя",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Выберыце набор дызайн-токенаў урада Нідэрландаў у якасці асновы або наладзьце асобныя CSS-токены Nextcloud ніжэй.",
+ "Design token set": "Набор дызайн-токенаў",
+ "Hide Nextcloud slogan/payoff on login page": "Схаваць слоган Nextcloud на старонцы ўваходу",
+ "Show text labels in app menu (hide icons)": "Паказваць тэкставыя подпісы ў меню праграм (схаваць значкі)",
+ "Preview": "Папярэдні прагляд",
+ "Primary button": "Асноўная кнопка",
+ "Secondary button": "Дадатковая кнопка",
+ "Loading token editor…": "Загрузка рэдактара токенаў …",
+ "Learn more about NL design system": "Даведацца больш пра NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Тэма паспяхова абноўлена. Перазагрузіце старонку, каб убачыць змены.",
+ "Failed to update theme.": "Не ўдалося абнавіць тэму.",
+ "Primary color": "Асноўны колер",
+ "Background color": "Колер фону",
+ "Logo": "Лагатып",
+ "(custom logo)": "(уласны лагатып)",
+ "(default)": "(прадвызначана)",
+ "Background image": "Выява фону",
+ "(custom)": "(уласнае)",
+ "Update Nextcloud theming to match {name}?": "Абнавіць аздабленне Nextcloud у адпаведнасці з {name}?",
+ "Current": "Бягучае",
+ "Proposed": "Прапанаванае",
+ "Setting": "Налада",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Паказаны толькі значэнні, якія адрозніваюцца. Элементы без прапанаванага значэння застаюцца без змен.",
+ "Cancel": "Скасаваць",
+ "Update theming": "Абнавіць аздабленне",
+ "Updating...": "Абнаўленне ...",
+ "Nextcloud theming updated successfully. reloading page...": "Аздабленне Nextcloud паспяхова абноўлена. Перазагрузка старонкі ...",
+ "Failed to update Nextcloud theming:": "Не ўдалося абнавіць аздабленне Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Не ўдалося абнавіць аздабленне Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Налада паспяхова захавана. Перазагрузіце старонку ўваходу, каб убачыць змены.",
+ "Failed to save setting.": "Не ўдалося захаваць наладу.",
+ "Setting saved successfully. reload the page to see changes.": "Налада паспяхова захавана. Перазагрузіце старонку, каб убачыць змены.",
+ "Could not load token editor.": "Не ўдалося загрузіць рэдактар токенаў.",
+ "Custom token overrides": "Уласныя пераазначэнні токенаў",
+ "Download": "Спампаваць",
+ "Upload": "Запампаваць",
+ "Save overrides": "Захаваць пераазначэнні",
+ "Custom value": "Уласнае значэнне",
+ "Reset to default": "Скінуць да прадвызначанага",
+ "Unsaved changes": "Незахаваныя змены",
+ "Token overrides saved.": "Пераазначэнні токенаў захаваны.",
+ "Failed to save overrides:": "Не ўдалося захаваць пераазначэнні: ",
+ "Failed to save overrides.": "Не ўдалося захаваць пераазначэнні.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} токенаў імпартавана, {skipped} токенаў прапушчана (не распазнана)",
+ "Import failed:": "Не ўдалося імпартаваць: ",
+ "Import failed.": "Не ўдалося імпартаваць.",
+ "Apply token set: {name}": "Прымяніць набор токенаў: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Гэтыя значэнні зменяцца. Адзначце, якія з іх прымяніць да вашых уласных пераазначэнняў.",
+ "Select all": "Выбраць усё",
+ "Deselect all": "Зняць усё вылучэнне",
+ "Token": "Токен",
+ "New": "Новы",
+ "Apply selected": "Прымяніць выбранае",
+ "Applying…": "Прымяненне …",
+ "Token overrides applied.": "Пераазначэнні токенаў прыменены.",
+ "Failed to apply token set.": "Не ўдалося прымяніць набор токенаў.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/bg.js b/l10n/bg.js
new file mode 100644
index 000000000..37c936ea8
--- /dev/null
+++ b/l10n/bg.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Избор на цвят за {label}",
+ "NL design system theme": "Тема NL Design System",
+ "Documentation": "Документация",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Изберете набор от дизайнерски токени на нидерландското правителство като основа или персонализирайте отделните CSS токени на Nextcloud по-долу.",
+ "Design token set": "Набор от дизайнерски токени",
+ "Hide Nextcloud slogan/payoff on login page": "Скриване на слогана на Nextcloud на страницата за вход",
+ "Show text labels in app menu (hide icons)": "Показване на текстови етикети в менюто на приложенията (скриване на иконите)",
+ "Preview": "Преглед",
+ "Primary button": "Основен бутон",
+ "Secondary button": "Второстепенен бутон",
+ "Loading token editor…": "Зареждане на редактора на токени…",
+ "Learn more about NL design system": "Научете повече за NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Темата е обновена успешно. Презаредете страницата, за да видите промените.",
+ "Failed to update theme.": "Неуспешно обновяване на темата.",
+ "Primary color": "Основен цвят",
+ "Background color": "Цвят на фона",
+ "Logo": "Лого",
+ "(custom logo)": "(персонализирано лого)",
+ "(default)": "(по подразбиране)",
+ "Background image": "Фоново изображение",
+ "(custom)": "(персонализирано)",
+ "Update Nextcloud theming to match {name}?": "Да се обнови темата на Nextcloud, за да съответства на {name}?",
+ "Current": "Текущо",
+ "Proposed": "Предложено",
+ "Setting": "Настройка",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Показват се само стойностите, които се различават. Елементите без предложена стойност остават непроменени.",
+ "Cancel": "Отказ",
+ "Update theming": "Обновяване на темата",
+ "Updating...": "Обновяване...",
+ "Nextcloud theming updated successfully. reloading page...": "Темата на Nextcloud е обновена успешно. Презареждане на страницата...",
+ "Failed to update Nextcloud theming:": "Неуспешно обновяване на темата на Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Неуспешно обновяване на темата на Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Настройката е запазена успешно. Презаредете страницата за вход, за да видите промените.",
+ "Failed to save setting.": "Неуспешно запазване на настройката.",
+ "Setting saved successfully. reload the page to see changes.": "Настройката е запазена успешно. Презаредете страницата, за да видите промените.",
+ "Could not load token editor.": "Редакторът на токени не можа да се зареди.",
+ "Custom token overrides": "Персонализирани замествания на токени",
+ "Download": "Изтегляне",
+ "Upload": "Качване",
+ "Save overrides": "Запазване на заместванията",
+ "Custom value": "Персонализирана стойност",
+ "Reset to default": "Връщане към стойностите по подразбиране",
+ "Unsaved changes": "Незапазени промени",
+ "Token overrides saved.": "Заместванията на токени са запазени.",
+ "Failed to save overrides:": "Неуспешно запазване на заместванията: ",
+ "Failed to save overrides.": "Неуспешно запазване на заместванията.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} токена импортирани, {skipped} токена пропуснати (неразпознати)",
+ "Import failed:": "Импортирането е неуспешно: ",
+ "Import failed.": "Импортирането е неуспешно.",
+ "Apply token set: {name}": "Прилагане на набор от токени: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Тези стойности ще се променят. Отметнете кои да приложите към вашите персонализирани замествания.",
+ "Select all": "Избиране на всички",
+ "Deselect all": "Премахване на избора от всички",
+ "Token": "Токен",
+ "New": "Нов",
+ "Apply selected": "Прилагане на избраните",
+ "Applying…": "Прилагане…",
+ "Token overrides applied.": "Заместванията на токени са приложени.",
+ "Failed to apply token set.": "Неуспешно прилагане на набора от токени.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/bs.js b/l10n/bs.js
new file mode 100644
index 000000000..9b6160fb2
--- /dev/null
+++ b/l10n/bs.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Birač boja za {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Dokumentacija",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Odaberite skup dizajnerskih tokena holandske vlade kao osnovu, ili prilagodite pojedinačne Nextcloud CSS tokene ispod.",
+ "Design token set": "Skup dizajnerskih tokena",
+ "Hide Nextcloud slogan/payoff on login page": "Sakrij Nextcloud slogan na stranici za prijavu",
+ "Show text labels in app menu (hide icons)": "Prikaži tekstualne oznake u meniju aplikacija (sakrij ikone)",
+ "Preview": "Pregled",
+ "Primary button": "Primarno dugme",
+ "Secondary button": "Sekundarno dugme",
+ "Loading token editor…": "Učitavanje uređivača tokena …",
+ "Learn more about NL design system": "Saznajte više o NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema je uspješno ažurirana. Ponovo učitajte stranicu da biste vidjeli izmjene.",
+ "Failed to update theme.": "Ažuriranje teme nije uspjelo.",
+ "Primary color": "Primarna boja",
+ "Background color": "Boja pozadine",
+ "Logo": "Logo",
+ "(custom logo)": "(prilagođeni logo)",
+ "(default)": "(zadano)",
+ "Background image": "Slika pozadine",
+ "(custom)": "(prilagođeno)",
+ "Update Nextcloud theming to match {name}?": "Ažurirati Nextcloud temu da odgovara {name}?",
+ "Current": "Trenutno",
+ "Proposed": "Predloženo",
+ "Setting": "Postavka",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Prikazane su samo vrijednosti koje se razlikuju. Stavke bez predložene vrijednosti ostaju nepromijenjene.",
+ "Cancel": "Otkaži",
+ "Update theming": "Ažuriraj temu",
+ "Updating...": "Ažuriranje ...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud tema je uspješno ažurirana. Ponovno učitavanje stranice ...",
+ "Failed to update Nextcloud theming:": "Ažuriranje Nextcloud teme nije uspjelo: ",
+ "Failed to update Nextcloud theming.": "Ažuriranje Nextcloud teme nije uspjelo.",
+ "Setting saved successfully. reload the login page to see changes.": "Postavka je uspješno sačuvana. Ponovo učitajte stranicu za prijavu da biste vidjeli izmjene.",
+ "Failed to save setting.": "Čuvanje postavke nije uspjelo.",
+ "Setting saved successfully. reload the page to see changes.": "Postavka je uspješno sačuvana. Ponovo učitajte stranicu da biste vidjeli izmjene.",
+ "Could not load token editor.": "Nije moguće učitati uređivač tokena.",
+ "Custom token overrides": "Prilagođena premošćivanja tokena",
+ "Download": "Preuzmi",
+ "Upload": "Otpremi",
+ "Save overrides": "Sačuvaj premošćivanja",
+ "Custom value": "Prilagođena vrijednost",
+ "Reset to default": "Vrati na zadano",
+ "Unsaved changes": "Nesačuvane izmjene",
+ "Token overrides saved.": "Premošćivanja tokena su sačuvana.",
+ "Failed to save overrides:": "Čuvanje premošćivanja nije uspjelo: ",
+ "Failed to save overrides.": "Čuvanje premošćivanja nije uspjelo.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokena uvezeno, {skipped} tokena preskočeno (nisu prepoznati)",
+ "Import failed:": "Uvoz nije uspio: ",
+ "Import failed.": "Uvoz nije uspio.",
+ "Apply token set: {name}": "Primijeni skup tokena: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Ove vrijednosti bi se promijenile. Označite koje želite primijeniti na vaša prilagođena premošćivanja.",
+ "Select all": "Odaberi sve",
+ "Deselect all": "Poništi odabir svega",
+ "Token": "Token",
+ "New": "Novo",
+ "Apply selected": "Primijeni odabrano",
+ "Applying…": "Primjenjivanje …",
+ "Token overrides applied.": "Premošćivanja tokena su primijenjena.",
+ "Failed to apply token set.": "Primjena skupa tokena nije uspjela.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/ca.js b/l10n/ca.js
new file mode 100644
index 000000000..de70098f9
--- /dev/null
+++ b/l10n/ca.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Selector de color per a {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Documentació",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Seleccioneu un conjunt de tokens de disseny del govern neerlandès com a base o personalitzeu tokens CSS individuals de Nextcloud a continuació.",
+ "Design token set": "Conjunt de tokens de disseny",
+ "Hide Nextcloud slogan/payoff on login page": "Amaga l'eslògan de Nextcloud a la pàgina d'inici de sessió",
+ "Show text labels in app menu (hide icons)": "Mostra les etiquetes de text al menú d'aplicacions (amaga les icones)",
+ "Preview": "Previsualització",
+ "Primary button": "Botó primari",
+ "Secondary button": "Botó secundari",
+ "Loading token editor…": "S'està carregant l'editor de tokens …",
+ "Learn more about NL design system": "Més informació sobre NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "El tema s'ha actualitzat correctament. Torneu a carregar la pàgina per veure els canvis.",
+ "Failed to update theme.": "No s'ha pogut actualitzar el tema.",
+ "Primary color": "Color primari",
+ "Background color": "Color de fons",
+ "Logo": "Logotip",
+ "(custom logo)": "(logotip personalitzat)",
+ "(default)": "(per defecte)",
+ "Background image": "Imatge de fons",
+ "(custom)": "(personalitzat)",
+ "Update Nextcloud theming to match {name}?": "Voleu actualitzar el tema de Nextcloud perquè coincideixi amb {name}?",
+ "Current": "Actual",
+ "Proposed": "Proposat",
+ "Setting": "Paràmetre",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Només es mostren els valors que difereixen. Els elements sense un valor proposat es deixen sense canvis.",
+ "Cancel": "Cancel·la",
+ "Update theming": "Actualitza el tema",
+ "Updating...": "S'està actualitzant ...",
+ "Nextcloud theming updated successfully. reloading page...": "El tema de Nextcloud s'ha actualitzat correctament. S'està tornant a carregar la pàgina ...",
+ "Failed to update Nextcloud theming:": "No s'ha pogut actualitzar el tema de Nextcloud: ",
+ "Failed to update Nextcloud theming.": "No s'ha pogut actualitzar el tema de Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "El paràmetre s'ha desat correctament. Torneu a carregar la pàgina d'inici de sessió per veure els canvis.",
+ "Failed to save setting.": "No s'ha pogut desar el paràmetre.",
+ "Setting saved successfully. reload the page to see changes.": "El paràmetre s'ha desat correctament. Torneu a carregar la pàgina per veure els canvis.",
+ "Could not load token editor.": "No s'ha pogut carregar l'editor de tokens.",
+ "Custom token overrides": "Substitucions de tokens personalitzades",
+ "Download": "Baixa",
+ "Upload": "Puja",
+ "Save overrides": "Desa les substitucions",
+ "Custom value": "Valor personalitzat",
+ "Reset to default": "Restableix als valors per defecte",
+ "Unsaved changes": "Canvis sense desar",
+ "Token overrides saved.": "S'han desat les substitucions de tokens.",
+ "Failed to save overrides:": "No s'han pogut desar les substitucions: ",
+ "Failed to save overrides.": "No s'han pogut desar les substitucions.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens importats, {skipped} tokens omesos (no reconeguts)",
+ "Import failed:": "La importació ha fallat: ",
+ "Import failed.": "La importació ha fallat.",
+ "Apply token set: {name}": "Aplica el conjunt de tokens: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Aquests valors canviarien. Marqueu quins voleu aplicar a les vostres substitucions personalitzades.",
+ "Select all": "Selecciona-ho tot",
+ "Deselect all": "Desselecciona-ho tot",
+ "Token": "Token",
+ "New": "Nou",
+ "Apply selected": "Aplica la selecció",
+ "Applying…": "S'està aplicant …",
+ "Token overrides applied.": "S'han aplicat les substitucions de tokens.",
+ "Failed to apply token set.": "No s'ha pogut aplicar el conjunt de tokens.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/cs.js b/l10n/cs.js
new file mode 100644
index 000000000..09b972276
--- /dev/null
+++ b/l10n/cs.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Výběr barvy pro {label}",
+ "NL design system theme": "Motiv NL Design System",
+ "Documentation": "Dokumentace",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Vyberte sadu návrhových tokenů nizozemské vlády jako základ nebo níže přizpůsobte jednotlivé CSS tokeny Nextcloud.",
+ "Design token set": "Sada návrhových tokenů",
+ "Hide Nextcloud slogan/payoff on login page": "Skrýt slogan Nextcloud na přihlašovací stránce",
+ "Show text labels in app menu (hide icons)": "Zobrazit textové popisky v nabídce aplikací (skrýt ikony)",
+ "Preview": "Náhled",
+ "Primary button": "Primární tlačítko",
+ "Secondary button": "Sekundární tlačítko",
+ "Loading token editor…": "Načítání editoru tokenů…",
+ "Learn more about NL design system": "Zjistěte více o NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Motiv byl úspěšně aktualizován. Znovu načtěte stránku, abyste viděli změny.",
+ "Failed to update theme.": "Aktualizace motivu se nezdařila.",
+ "Primary color": "Primární barva",
+ "Background color": "Barva pozadí",
+ "Logo": "Logo",
+ "(custom logo)": "(vlastní logo)",
+ "(default)": "(výchozí)",
+ "Background image": "Obrázek pozadí",
+ "(custom)": "(vlastní)",
+ "Update Nextcloud theming to match {name}?": "Aktualizovat motiv Nextcloud tak, aby odpovídal {name}?",
+ "Current": "Aktuální",
+ "Proposed": "Navrhované",
+ "Setting": "Nastavení",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Zobrazeny jsou pouze hodnoty, které se liší. Položky bez navrhované hodnoty zůstávají beze změny.",
+ "Cancel": "Zrušit",
+ "Update theming": "Aktualizovat motiv",
+ "Updating...": "Aktualizace...",
+ "Nextcloud theming updated successfully. reloading page...": "Motiv Nextcloud byl úspěšně aktualizován. Znovu se načítá stránka...",
+ "Failed to update Nextcloud theming:": "Aktualizace motivu Nextcloud se nezdařila: ",
+ "Failed to update Nextcloud theming.": "Aktualizace motivu Nextcloud se nezdařila.",
+ "Setting saved successfully. reload the login page to see changes.": "Nastavení bylo úspěšně uloženo. Znovu načtěte přihlašovací stránku, abyste viděli změny.",
+ "Failed to save setting.": "Uložení nastavení se nezdařilo.",
+ "Setting saved successfully. reload the page to see changes.": "Nastavení bylo úspěšně uloženo. Znovu načtěte stránku, abyste viděli změny.",
+ "Could not load token editor.": "Editor tokenů se nepodařilo načíst.",
+ "Custom token overrides": "Vlastní přepsání tokenů",
+ "Download": "Stáhnout",
+ "Upload": "Nahrát",
+ "Save overrides": "Uložit přepsání",
+ "Custom value": "Vlastní hodnota",
+ "Reset to default": "Obnovit výchozí",
+ "Unsaved changes": "Neuložené změny",
+ "Token overrides saved.": "Přepsání tokenů byla uložena.",
+ "Failed to save overrides:": "Uložení přepsání se nezdařilo: ",
+ "Failed to save overrides.": "Uložení přepsání se nezdařilo.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokenů importováno, {skipped} tokenů přeskočeno (nerozpoznáno)",
+ "Import failed:": "Import se nezdařil: ",
+ "Import failed.": "Import se nezdařil.",
+ "Apply token set: {name}": "Použít sadu tokenů: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Tyto hodnoty by se změnily. Zaškrtněte, které z nich použít na vaše vlastní přepsání.",
+ "Select all": "Vybrat vše",
+ "Deselect all": "Zrušit výběr všech",
+ "Token": "Token",
+ "New": "Nové",
+ "Apply selected": "Použít vybrané",
+ "Applying…": "Probíhá použití…",
+ "Token overrides applied.": "Přepsání tokenů byla použita.",
+ "Failed to apply token set.": "Použití sady tokenů se nezdařilo.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/da.js b/l10n/da.js
new file mode 100644
index 000000000..9a9db5d86
--- /dev/null
+++ b/l10n/da.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Farvevælger til {label}",
+ "NL design system theme": "NL Design System-tema",
+ "Documentation": "Dokumentation",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Vælg et hollandsk regerings-designtokensæt som grundlag, eller tilpas individuelle Nextcloud CSS-tokens nedenfor.",
+ "Design token set": "Designtokensæt",
+ "Hide Nextcloud slogan/payoff on login page": "Skjul Nextcloud-slogan på loginsiden",
+ "Show text labels in app menu (hide icons)": "Vis tekstetiketter i appmenuen (skjul ikoner)",
+ "Preview": "Forhåndsvisning",
+ "Primary button": "Primær knap",
+ "Secondary button": "Sekundær knap",
+ "Loading token editor…": "Indlæser tokeneditor…",
+ "Learn more about NL design system": "Få mere at vide om NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Temaet blev opdateret. Genindlæs siden for at se ændringerne.",
+ "Failed to update theme.": "Kunne ikke opdatere temaet.",
+ "Primary color": "Primær farve",
+ "Background color": "Baggrundsfarve",
+ "Logo": "Logo",
+ "(custom logo)": "(brugerdefineret logo)",
+ "(default)": "(standard)",
+ "Background image": "Baggrundsbillede",
+ "(custom)": "(brugerdefineret)",
+ "Update Nextcloud theming to match {name}?": "Opdater Nextcloud-tema, så det matcher {name}?",
+ "Current": "Nuværende",
+ "Proposed": "Foreslået",
+ "Setting": "Indstilling",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Kun værdier, der adskiller sig, vises. Elementer uden en foreslået værdi forbliver uændrede.",
+ "Cancel": "Annuller",
+ "Update theming": "Opdater tema",
+ "Updating...": "Opdaterer...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud-temaet blev opdateret. Genindlæser siden...",
+ "Failed to update Nextcloud theming:": "Kunne ikke opdatere Nextcloud-tema: ",
+ "Failed to update Nextcloud theming.": "Kunne ikke opdatere Nextcloud-tema.",
+ "Setting saved successfully. reload the login page to see changes.": "Indstillingen blev gemt. Genindlæs loginsiden for at se ændringerne.",
+ "Failed to save setting.": "Kunne ikke gemme indstillingen.",
+ "Setting saved successfully. reload the page to see changes.": "Indstillingen blev gemt. Genindlæs siden for at se ændringerne.",
+ "Could not load token editor.": "Kunne ikke indlæse tokeneditoren.",
+ "Custom token overrides": "Brugerdefinerede tokentilsidesættelser",
+ "Download": "Download",
+ "Upload": "Upload",
+ "Save overrides": "Gem tilsidesættelser",
+ "Custom value": "Brugerdefineret værdi",
+ "Reset to default": "Nulstil til standard",
+ "Unsaved changes": "Ikke-gemte ændringer",
+ "Token overrides saved.": "Tokentilsidesættelser gemt.",
+ "Failed to save overrides:": "Kunne ikke gemme tilsidesættelser: ",
+ "Failed to save overrides.": "Kunne ikke gemme tilsidesættelser.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens importeret, {skipped} tokens sprunget over (ikke genkendt)",
+ "Import failed:": "Import mislykkedes: ",
+ "Import failed.": "Import mislykkedes.",
+ "Apply token set: {name}": "Anvend tokensæt: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Disse værdier ville ændre sig. Markér hvilke, der skal anvendes på dine brugerdefinerede tilsidesættelser.",
+ "Select all": "Vælg alle",
+ "Deselect all": "Fravælg alle",
+ "Token": "Token",
+ "New": "Ny",
+ "Apply selected": "Anvend valgte",
+ "Applying…": "Anvender…",
+ "Token overrides applied.": "Tokentilsidesættelser anvendt.",
+ "Failed to apply token set.": "Kunne ikke anvende tokensættet.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/de.js b/l10n/de.js
new file mode 100644
index 000000000..2ec23c4c6
--- /dev/null
+++ b/l10n/de.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Farbauswahl für {label}",
+ "NL design system theme": "NL-Design-System-Theme",
+ "Documentation": "Dokumentation",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Wählen Sie ein niederländisches Design-Token-Set der Verwaltung als Basis oder passen Sie unten einzelne Nextcloud-CSS-Tokens an.",
+ "Design token set": "Design-Token-Set",
+ "Hide Nextcloud slogan/payoff on login page": "Nextcloud-Slogan/Payoff auf der Anmeldeseite ausblenden",
+ "Show text labels in app menu (hide icons)": "Textbeschriftungen im App-Menü anzeigen (Symbole ausblenden)",
+ "Preview": "Vorschau",
+ "Primary button": "Primäre Schaltfläche",
+ "Secondary button": "Sekundäre Schaltfläche",
+ "Loading token editor…": "Token-Editor wird geladen…",
+ "Learn more about NL design system": "Mehr über das NL Design System erfahren",
+ "Theme updated successfully. reload the page to see changes.": "Theme erfolgreich aktualisiert. Laden Sie die Seite neu, um die Änderungen zu sehen.",
+ "Failed to update theme.": "Aktualisieren des Themes fehlgeschlagen.",
+ "Primary color": "Primärfarbe",
+ "Background color": "Hintergrundfarbe",
+ "Logo": "Logo",
+ "(custom logo)": "(benutzerdefiniertes Logo)",
+ "(default)": "(Standard)",
+ "Background image": "Hintergrundbild",
+ "(custom)": "(benutzerdefiniert)",
+ "Update Nextcloud theming to match {name}?": "Nextcloud-Theming aktualisieren, damit es zu {name} passt?",
+ "Current": "Aktuell",
+ "Proposed": "Vorgeschlagen",
+ "Setting": "Einstellung",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Es werden nur abweichende Werte angezeigt. Einträge ohne vorgeschlagenen Wert bleiben unverändert.",
+ "Cancel": "Abbrechen",
+ "Update theming": "Theming aktualisieren",
+ "Updating...": "Wird aktualisiert…",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud-Theming erfolgreich aktualisiert. Seite wird neu geladen…",
+ "Failed to update Nextcloud theming:": "Aktualisieren des Nextcloud-Themings fehlgeschlagen: ",
+ "Failed to update Nextcloud theming.": "Aktualisieren des Nextcloud-Themings fehlgeschlagen.",
+ "Setting saved successfully. reload the login page to see changes.": "Einstellung erfolgreich gespeichert. Laden Sie die Anmeldeseite neu, um die Änderungen zu sehen.",
+ "Failed to save setting.": "Speichern der Einstellung fehlgeschlagen.",
+ "Setting saved successfully. reload the page to see changes.": "Einstellung erfolgreich gespeichert. Laden Sie die Seite neu, um die Änderungen zu sehen.",
+ "Could not load token editor.": "Token-Editor konnte nicht geladen werden.",
+ "Custom token overrides": "Benutzerdefinierte Token-Überschreibungen",
+ "Download": "Herunterladen",
+ "Upload": "Hochladen",
+ "Save overrides": "Überschreibungen speichern",
+ "Custom value": "Benutzerdefinierter Wert",
+ "Reset to default": "Auf Standard zurücksetzen",
+ "Unsaved changes": "Nicht gespeicherte Änderungen",
+ "Token overrides saved.": "Token-Überschreibungen gespeichert.",
+ "Failed to save overrides:": "Speichern der Überschreibungen fehlgeschlagen: ",
+ "Failed to save overrides.": "Speichern der Überschreibungen fehlgeschlagen.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} Tokens importiert, {skipped} Tokens übersprungen (nicht erkannt)",
+ "Import failed:": "Import fehlgeschlagen: ",
+ "Import failed.": "Import fehlgeschlagen.",
+ "Apply token set: {name}": "Token-Set anwenden: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Diese Werte würden sich ändern. Wählen Sie aus, welche auf Ihre benutzerdefinierten Überschreibungen angewendet werden sollen.",
+ "Select all": "Alle auswählen",
+ "Deselect all": "Alle abwählen",
+ "Token": "Token",
+ "New": "Neu",
+ "Apply selected": "Auswahl anwenden",
+ "Applying…": "Wird angewendet…",
+ "Token overrides applied.": "Token-Überschreibungen angewendet.",
+ "Failed to apply token set.": "Anwenden des Token-Sets fehlgeschlagen.",
+ "Theming per app": "Theming pro App",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Wählen Sie, für welche Apps das NL-Design-Theme gilt. Wird eine App abgewählt, werden ihre Seiten im Standard-Nextcloud-Stil dargestellt, einschließlich der Kopfzeile auf diesen Seiten.",
+ "Loading apps…": "Apps werden geladen…",
+ "Save app theming": "App-Theming speichern",
+ "Failed to load apps.": "Apps konnten nicht geladen werden.",
+ "No apps available.": "Keine Apps verfügbar.",
+ "App theming saved. Reload an affected app to see changes.": "App-Theming gespeichert. Laden Sie eine betroffene App neu, um die Änderungen zu sehen.",
+ "Failed to save app theming.": "App-Theming konnte nicht gespeichert werden.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/el.js b/l10n/el.js
new file mode 100644
index 000000000..c766ee250
--- /dev/null
+++ b/l10n/el.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Επιλογέας χρώματος για {label}",
+ "NL design system theme": "Θέμα NL Design System",
+ "Documentation": "Τεκμηρίωση",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Επιλέξτε ένα σύνολο διακριτικών σχεδίασης της ολλανδικής κυβέρνησης ως βάση ή προσαρμόστε μεμονωμένα διακριτικά CSS του Nextcloud παρακάτω.",
+ "Design token set": "Σύνολο διακριτικών σχεδίασης",
+ "Hide Nextcloud slogan/payoff on login page": "Απόκρυψη του σλόγκαν του Nextcloud στη σελίδα σύνδεσης",
+ "Show text labels in app menu (hide icons)": "Εμφάνιση ετικετών κειμένου στο μενού εφαρμογών (απόκρυψη εικονιδίων)",
+ "Preview": "Προεπισκόπηση",
+ "Primary button": "Κύριο κουμπί",
+ "Secondary button": "Δευτερεύον κουμπί",
+ "Loading token editor…": "Φόρτωση επεξεργαστή διακριτικών…",
+ "Learn more about NL design system": "Μάθετε περισσότερα για το NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Το θέμα ενημερώθηκε με επιτυχία. Επαναφορτώστε τη σελίδα για να δείτε τις αλλαγές.",
+ "Failed to update theme.": "Αποτυχία ενημέρωσης του θέματος.",
+ "Primary color": "Κύριο χρώμα",
+ "Background color": "Χρώμα φόντου",
+ "Logo": "Λογότυπο",
+ "(custom logo)": "(προσαρμοσμένο λογότυπο)",
+ "(default)": "(προεπιλογή)",
+ "Background image": "Εικόνα φόντου",
+ "(custom)": "(προσαρμοσμένο)",
+ "Update Nextcloud theming to match {name}?": "Ενημέρωση του θέματος του Nextcloud ώστε να ταιριάζει με το {name};",
+ "Current": "Τρέχον",
+ "Proposed": "Προτεινόμενο",
+ "Setting": "Ρύθμιση",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Εμφανίζονται μόνο οι τιμές που διαφέρουν. Τα στοιχεία χωρίς προτεινόμενη τιμή παραμένουν αμετάβλητα.",
+ "Cancel": "Ακύρωση",
+ "Update theming": "Ενημέρωση θέματος",
+ "Updating...": "Ενημέρωση...",
+ "Nextcloud theming updated successfully. reloading page...": "Το θέμα του Nextcloud ενημερώθηκε με επιτυχία. Επαναφόρτωση σελίδας...",
+ "Failed to update Nextcloud theming:": "Αποτυχία ενημέρωσης του θέματος του Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Αποτυχία ενημέρωσης του θέματος του Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Η ρύθμιση αποθηκεύτηκε με επιτυχία. Επαναφορτώστε τη σελίδα σύνδεσης για να δείτε τις αλλαγές.",
+ "Failed to save setting.": "Αποτυχία αποθήκευσης της ρύθμισης.",
+ "Setting saved successfully. reload the page to see changes.": "Η ρύθμιση αποθηκεύτηκε με επιτυχία. Επαναφορτώστε τη σελίδα για να δείτε τις αλλαγές.",
+ "Could not load token editor.": "Δεν ήταν δυνατή η φόρτωση του επεξεργαστή διακριτικών.",
+ "Custom token overrides": "Προσαρμοσμένες παρακάμψεις διακριτικών",
+ "Download": "Λήψη",
+ "Upload": "Μεταφόρτωση",
+ "Save overrides": "Αποθήκευση παρακάμψεων",
+ "Custom value": "Προσαρμοσμένη τιμή",
+ "Reset to default": "Επαναφορά στην προεπιλογή",
+ "Unsaved changes": "Μη αποθηκευμένες αλλαγές",
+ "Token overrides saved.": "Οι παρακάμψεις διακριτικών αποθηκεύτηκαν.",
+ "Failed to save overrides:": "Αποτυχία αποθήκευσης παρακάμψεων: ",
+ "Failed to save overrides.": "Αποτυχία αποθήκευσης παρακάμψεων.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} διακριτικά εισήχθησαν, {skipped} διακριτικά παραλείφθηκαν (δεν αναγνωρίστηκαν)",
+ "Import failed:": "Η εισαγωγή απέτυχε: ",
+ "Import failed.": "Η εισαγωγή απέτυχε.",
+ "Apply token set: {name}": "Εφαρμογή συνόλου διακριτικών: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Αυτές οι τιμές θα άλλαζαν. Επιλέξτε ποιες θα εφαρμοστούν στις προσαρμοσμένες παρακάμψεις σας.",
+ "Select all": "Επιλογή όλων",
+ "Deselect all": "Αποεπιλογή όλων",
+ "Token": "Διακριτικό",
+ "New": "Νέο",
+ "Apply selected": "Εφαρμογή επιλεγμένων",
+ "Applying…": "Εφαρμογή…",
+ "Token overrides applied.": "Οι παρακάμψεις διακριτικών εφαρμόστηκαν.",
+ "Failed to apply token set.": "Αποτυχία εφαρμογής του συνόλου διακριτικών.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/en.js b/l10n/en.js
new file mode 100644
index 000000000..b378add03
--- /dev/null
+++ b/l10n/en.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Colour picker for {label}",
+ "NL design system theme": "NL Design System Theme",
+ "Documentation": "Documentation",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Select a Dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.",
+ "Design token set": "Design token set",
+ "Hide Nextcloud slogan/payoff on login page": "Hide Nextcloud slogan/payoff on login page",
+ "Show text labels in app menu (hide icons)": "Show text labels in app menu (hide icons)",
+ "Preview": "Preview",
+ "Primary button": "Primary button",
+ "Secondary button": "Secondary button",
+ "Loading token editor…": "Loading token editor…",
+ "Learn more about NL design system": "Learn more about NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Theme updated successfully. Reload the page to see changes.",
+ "Failed to update theme.": "Failed to update theme.",
+ "Primary color": "Primary color",
+ "Background color": "Background color",
+ "Logo": "Logo",
+ "(custom logo)": "(custom logo)",
+ "(default)": "(default)",
+ "Background image": "Background image",
+ "(custom)": "(custom)",
+ "Update Nextcloud theming to match {name}?": "Update Nextcloud theming to match {name}?",
+ "Current": "Current",
+ "Proposed": "Proposed",
+ "Setting": "Setting",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Only values that differ are shown. Items without a proposed value are left unchanged.",
+ "Cancel": "Cancel",
+ "Update theming": "Update theming",
+ "Updating...": "Updating...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud theming updated successfully. Reloading page...",
+ "Failed to update Nextcloud theming:": "Failed to update Nextcloud theming: ",
+ "Failed to update Nextcloud theming.": "Failed to update Nextcloud theming.",
+ "Setting saved successfully. reload the login page to see changes.": "Setting saved successfully. Reload the login page to see changes.",
+ "Failed to save setting.": "Failed to save setting.",
+ "Setting saved successfully. reload the page to see changes.": "Setting saved successfully. Reload the page to see changes.",
+ "Could not load token editor.": "Could not load token editor.",
+ "Custom token overrides": "Custom token overrides",
+ "Download": "Download",
+ "Upload": "Upload",
+ "Save overrides": "Save overrides",
+ "Custom value": "Custom value",
+ "Reset to default": "Reset to default",
+ "Unsaved changes": "Unsaved changes",
+ "Token overrides saved.": "Token overrides saved.",
+ "Failed to save overrides:": "Failed to save overrides: ",
+ "Failed to save overrides.": "Failed to save overrides.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens imported, {skipped} tokens skipped (not recognized)",
+ "Import failed:": "Import failed: ",
+ "Import failed.": "Import failed.",
+ "Apply token set: {name}": "Apply token set: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "These values would change. Check which ones to apply to your custom overrides.",
+ "Select all": "Select all",
+ "Deselect all": "Deselect all",
+ "Token": "Token",
+ "New": "New",
+ "Apply selected": "Apply selected",
+ "Applying…": "Applying…",
+ "Token overrides applied.": "Token overrides applied.",
+ "Failed to apply token set.": "Failed to apply token set.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/es.js b/l10n/es.js
new file mode 100644
index 000000000..a8041795c
--- /dev/null
+++ b/l10n/es.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Selector de color para {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Documentación",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Seleccione un conjunto de tokens de diseño del gobierno neerlandés como base, o personalice a continuación tokens CSS individuales de Nextcloud.",
+ "Design token set": "Conjunto de tokens de diseño",
+ "Hide Nextcloud slogan/payoff on login page": "Ocultar el eslogan/lema de Nextcloud en la página de inicio de sesión",
+ "Show text labels in app menu (hide icons)": "Mostrar etiquetas de texto en el menú de aplicaciones (ocultar iconos)",
+ "Preview": "Vista previa",
+ "Primary button": "Botón principal",
+ "Secondary button": "Botón secundario",
+ "Loading token editor…": "Cargando el editor de tokens…",
+ "Learn more about NL design system": "Más información sobre NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema actualizado correctamente. Vuelva a cargar la página para ver los cambios.",
+ "Failed to update theme.": "No se pudo actualizar el tema.",
+ "Primary color": "Color principal",
+ "Background color": "Color de fondo",
+ "Logo": "Logotipo",
+ "(custom logo)": "(logotipo personalizado)",
+ "(default)": "(predeterminado)",
+ "Background image": "Imagen de fondo",
+ "(custom)": "(personalizado)",
+ "Update Nextcloud theming to match {name}?": "¿Actualizar el tema de Nextcloud para que coincida con {name}?",
+ "Current": "Actual",
+ "Proposed": "Propuesto",
+ "Setting": "Ajuste",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Solo se muestran los valores que difieren. Los elementos sin valor propuesto permanecen sin cambios.",
+ "Cancel": "Cancelar",
+ "Update theming": "Actualizar tema",
+ "Updating...": "Actualizando…",
+ "Nextcloud theming updated successfully. reloading page...": "Tema de Nextcloud actualizado correctamente. Recargando la página…",
+ "Failed to update Nextcloud theming:": "No se pudo actualizar el tema de Nextcloud: ",
+ "Failed to update Nextcloud theming.": "No se pudo actualizar el tema de Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Ajuste guardado correctamente. Vuelva a cargar la página de inicio de sesión para ver los cambios.",
+ "Failed to save setting.": "No se pudo guardar el ajuste.",
+ "Setting saved successfully. reload the page to see changes.": "Ajuste guardado correctamente. Vuelva a cargar la página para ver los cambios.",
+ "Could not load token editor.": "No se pudo cargar el editor de tokens.",
+ "Custom token overrides": "Anulaciones de tokens personalizadas",
+ "Download": "Descargar",
+ "Upload": "Subir",
+ "Save overrides": "Guardar anulaciones",
+ "Custom value": "Valor personalizado",
+ "Reset to default": "Restablecer al valor predeterminado",
+ "Unsaved changes": "Cambios sin guardar",
+ "Token overrides saved.": "Anulaciones de tokens guardadas.",
+ "Failed to save overrides:": "No se pudieron guardar las anulaciones: ",
+ "Failed to save overrides.": "No se pudieron guardar las anulaciones.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens importados, {skipped} tokens omitidos (no reconocidos)",
+ "Import failed:": "Error en la importación: ",
+ "Import failed.": "Error en la importación.",
+ "Apply token set: {name}": "Aplicar conjunto de tokens: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Estos valores cambiarían. Seleccione cuáles aplicar a sus anulaciones personalizadas.",
+ "Select all": "Seleccionar todo",
+ "Deselect all": "Deseleccionar todo",
+ "Token": "Token",
+ "New": "Nuevo",
+ "Apply selected": "Aplicar selección",
+ "Applying…": "Aplicando…",
+ "Token overrides applied.": "Anulaciones de tokens aplicadas.",
+ "Failed to apply token set.": "No se pudo aplicar el conjunto de tokens.",
+ "Theming per app": "Tematización por aplicación",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Elija a qué aplicaciones se aplica el tema NL Design. Al desmarcar una aplicación, sus páginas se muestran con el estilo estándar de Nextcloud, incluida la cabecera en esas páginas.",
+ "Loading apps…": "Cargando aplicaciones…",
+ "Save app theming": "Guardar tematización por aplicación",
+ "Failed to load apps.": "Error al cargar las aplicaciones.",
+ "No apps available.": "No hay aplicaciones disponibles.",
+ "App theming saved. Reload an affected app to see changes.": "Tematización por aplicación guardada. Vuelva a cargar una aplicación afectada para ver los cambios.",
+ "Failed to save app theming.": "Error al guardar la tematización por aplicación.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/et.js b/l10n/et.js
new file mode 100644
index 000000000..8554b5e29
--- /dev/null
+++ b/l10n/et.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Värvivalija sildile {label}",
+ "NL design system theme": "NL Design System teema",
+ "Documentation": "Dokumentatsioon",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Vali aluseks Hollandi valitsuse disainižetoonide komplekt või kohanda allpool üksikuid Nextcloudi CSS-žetoone.",
+ "Design token set": "Disainižetoonide komplekt",
+ "Hide Nextcloud slogan/payoff on login page": "Peida Nextcloudi loosung sisselogimislehel",
+ "Show text labels in app menu (hide icons)": "Näita rakenduste menüüs tekstisilte (peida ikoonid)",
+ "Preview": "Eelvaade",
+ "Primary button": "Esmane nupp",
+ "Secondary button": "Teisene nupp",
+ "Loading token editor…": "Žetooniredaktori laadimine…",
+ "Learn more about NL design system": "Loe lähemalt NL Design Systemi kohta",
+ "Theme updated successfully. reload the page to see changes.": "Teema uuendati edukalt. Muudatuste nägemiseks laadi leht uuesti.",
+ "Failed to update theme.": "Teema uuendamine ebaõnnestus.",
+ "Primary color": "Esmane värv",
+ "Background color": "Taustavärv",
+ "Logo": "Logo",
+ "(custom logo)": "(kohandatud logo)",
+ "(default)": "(vaikimisi)",
+ "Background image": "Taustapilt",
+ "(custom)": "(kohandatud)",
+ "Update Nextcloud theming to match {name}?": "Kas uuendada Nextcloudi teema vastavaks teemaga {name}?",
+ "Current": "Praegune",
+ "Proposed": "Pakutud",
+ "Setting": "Säte",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Kuvatakse ainult väärtused, mis erinevad. Üksused ilma pakutud väärtuseta jäävad muutmata.",
+ "Cancel": "Tühista",
+ "Update theming": "Uuenda teemat",
+ "Updating...": "Uuendamine...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloudi teema uuendati edukalt. Lehe uuesti laadimine...",
+ "Failed to update Nextcloud theming:": "Nextcloudi teema uuendamine ebaõnnestus: ",
+ "Failed to update Nextcloud theming.": "Nextcloudi teema uuendamine ebaõnnestus.",
+ "Setting saved successfully. reload the login page to see changes.": "Säte salvestati edukalt. Muudatuste nägemiseks laadi sisselogimisleht uuesti.",
+ "Failed to save setting.": "Sätte salvestamine ebaõnnestus.",
+ "Setting saved successfully. reload the page to see changes.": "Säte salvestati edukalt. Muudatuste nägemiseks laadi leht uuesti.",
+ "Could not load token editor.": "Žetooniredaktori laadimine ebaõnnestus.",
+ "Custom token overrides": "Kohandatud žetooni alistamised",
+ "Download": "Laadi alla",
+ "Upload": "Laadi üles",
+ "Save overrides": "Salvesta alistamised",
+ "Custom value": "Kohandatud väärtus",
+ "Reset to default": "Lähtesta vaikeväärtusele",
+ "Unsaved changes": "Salvestamata muudatused",
+ "Token overrides saved.": "Žetooni alistamised salvestati.",
+ "Failed to save overrides:": "Alistamiste salvestamine ebaõnnestus: ",
+ "Failed to save overrides.": "Alistamiste salvestamine ebaõnnestus.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} žetooni imporditud, {skipped} žetooni vahele jäetud (ei tuvastatud)",
+ "Import failed:": "Import ebaõnnestus: ",
+ "Import failed.": "Import ebaõnnestus.",
+ "Apply token set: {name}": "Rakenda žetoonikomplekt: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Need väärtused muutuksid. Märgi, millised neist oma kohandatud alistamistele rakendada.",
+ "Select all": "Vali kõik",
+ "Deselect all": "Tühista kõigi valik",
+ "Token": "Žetoon",
+ "New": "Uus",
+ "Apply selected": "Rakenda valitud",
+ "Applying…": "Rakendamine…",
+ "Token overrides applied.": "Žetooni alistamised rakendati.",
+ "Failed to apply token set.": "Žetoonikomplekti rakendamine ebaõnnestus.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/fi.js b/l10n/fi.js
new file mode 100644
index 000000000..26ce9de4d
--- /dev/null
+++ b/l10n/fi.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Värivalitsin kohteelle {label}",
+ "NL design system theme": "NL Design System -teema",
+ "Documentation": "Dokumentaatio",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Valitse Alankomaiden hallinnon suunnittelutunnussarja pohjaksi tai mukauta yksittäisiä Nextcloudin CSS-tunnuksia alla.",
+ "Design token set": "Suunnittelutunnussarja",
+ "Hide Nextcloud slogan/payoff on login page": "Piilota Nextcloudin iskulause kirjautumissivulla",
+ "Show text labels in app menu (hide icons)": "Näytä tekstinimikkeet sovellusvalikossa (piilota kuvakkeet)",
+ "Preview": "Esikatselu",
+ "Primary button": "Ensisijainen painike",
+ "Secondary button": "Toissijainen painike",
+ "Loading token editor…": "Ladataan tunnuseditoria…",
+ "Learn more about NL design system": "Lue lisää NL Design Systemistä",
+ "Theme updated successfully. reload the page to see changes.": "Teema päivitettiin onnistuneesti. Lataa sivu uudelleen nähdäksesi muutokset.",
+ "Failed to update theme.": "Teeman päivittäminen epäonnistui.",
+ "Primary color": "Ensisijainen väri",
+ "Background color": "Taustaväri",
+ "Logo": "Logo",
+ "(custom logo)": "(mukautettu logo)",
+ "(default)": "(oletus)",
+ "Background image": "Taustakuva",
+ "(custom)": "(mukautettu)",
+ "Update Nextcloud theming to match {name}?": "Päivitetäänkö Nextcloudin teema vastaamaan kohdetta {name}?",
+ "Current": "Nykyinen",
+ "Proposed": "Ehdotettu",
+ "Setting": "Asetus",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Vain eroavat arvot näytetään. Kohteet, joilla ei ole ehdotettua arvoa, jätetään ennalleen.",
+ "Cancel": "Peruuta",
+ "Update theming": "Päivitä teema",
+ "Updating...": "Päivitetään...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloudin teema päivitettiin onnistuneesti. Ladataan sivua uudelleen...",
+ "Failed to update Nextcloud theming:": "Nextcloudin teeman päivittäminen epäonnistui: ",
+ "Failed to update Nextcloud theming.": "Nextcloudin teeman päivittäminen epäonnistui.",
+ "Setting saved successfully. reload the login page to see changes.": "Asetus tallennettiin onnistuneesti. Lataa kirjautumissivu uudelleen nähdäksesi muutokset.",
+ "Failed to save setting.": "Asetuksen tallentaminen epäonnistui.",
+ "Setting saved successfully. reload the page to see changes.": "Asetus tallennettiin onnistuneesti. Lataa sivu uudelleen nähdäksesi muutokset.",
+ "Could not load token editor.": "Tunnuseditoria ei voitu ladata.",
+ "Custom token overrides": "Mukautetut tunnusohitukset",
+ "Download": "Lataa",
+ "Upload": "Lähetä",
+ "Save overrides": "Tallenna ohitukset",
+ "Custom value": "Mukautettu arvo",
+ "Reset to default": "Palauta oletukseksi",
+ "Unsaved changes": "Tallentamattomat muutokset",
+ "Token overrides saved.": "Tunnusohitukset tallennettiin.",
+ "Failed to save overrides:": "Ohitusten tallentaminen epäonnistui: ",
+ "Failed to save overrides.": "Ohitusten tallentaminen epäonnistui.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tunnusta tuotu, {skipped} tunnusta ohitettu (ei tunnistettu)",
+ "Import failed:": "Tuonti epäonnistui: ",
+ "Import failed.": "Tuonti epäonnistui.",
+ "Apply token set: {name}": "Ota käyttöön tunnussarja: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Nämä arvot muuttuisivat. Valitse, mitkä otetaan käyttöön mukautetuissa ohituksissasi.",
+ "Select all": "Valitse kaikki",
+ "Deselect all": "Poista kaikkien valinta",
+ "Token": "Tunnus",
+ "New": "Uusi",
+ "Apply selected": "Ota valitut käyttöön",
+ "Applying…": "Otetaan käyttöön…",
+ "Token overrides applied.": "Tunnusohitukset otettiin käyttöön.",
+ "Failed to apply token set.": "Tunnussarjan käyttöönotto epäonnistui.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/fr.js b/l10n/fr.js
new file mode 100644
index 000000000..fc7ad8158
--- /dev/null
+++ b/l10n/fr.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Sélecteur de couleur pour {label}",
+ "NL design system theme": "Thème NL Design System",
+ "Documentation": "Documentation",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Sélectionnez un jeu de jetons de conception du gouvernement néerlandais comme base, ou personnalisez ci-dessous les jetons CSS Nextcloud individuels.",
+ "Design token set": "Jeu de jetons de conception",
+ "Hide Nextcloud slogan/payoff on login page": "Masquer le slogan/la signature Nextcloud sur la page de connexion",
+ "Show text labels in app menu (hide icons)": "Afficher les libellés textuels dans le menu des applications (masquer les icônes)",
+ "Preview": "Aperçu",
+ "Primary button": "Bouton principal",
+ "Secondary button": "Bouton secondaire",
+ "Loading token editor…": "Chargement de l’éditeur de jetons…",
+ "Learn more about NL design system": "En savoir plus sur NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Thème mis à jour avec succès. Rechargez la page pour voir les changements.",
+ "Failed to update theme.": "Échec de la mise à jour du thème.",
+ "Primary color": "Couleur principale",
+ "Background color": "Couleur d’arrière-plan",
+ "Logo": "Logo",
+ "(custom logo)": "(logo personnalisé)",
+ "(default)": "(par défaut)",
+ "Background image": "Image d’arrière-plan",
+ "(custom)": "(personnalisé)",
+ "Update Nextcloud theming to match {name}?": "Mettre à jour le thème Nextcloud pour correspondre à {name} ?",
+ "Current": "Actuel",
+ "Proposed": "Proposé",
+ "Setting": "Paramètre",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Seules les valeurs différentes sont affichées. Les éléments sans valeur proposée restent inchangés.",
+ "Cancel": "Annuler",
+ "Update theming": "Mettre à jour le thème",
+ "Updating...": "Mise à jour…",
+ "Nextcloud theming updated successfully. reloading page...": "Thème Nextcloud mis à jour avec succès. Rechargement de la page…",
+ "Failed to update Nextcloud theming:": "Échec de la mise à jour du thème Nextcloud : ",
+ "Failed to update Nextcloud theming.": "Échec de la mise à jour du thème Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Paramètre enregistré avec succès. Rechargez la page de connexion pour voir les changements.",
+ "Failed to save setting.": "Échec de l’enregistrement du paramètre.",
+ "Setting saved successfully. reload the page to see changes.": "Paramètre enregistré avec succès. Rechargez la page pour voir les changements.",
+ "Could not load token editor.": "Impossible de charger l’éditeur de jetons.",
+ "Custom token overrides": "Remplacements de jetons personnalisés",
+ "Download": "Télécharger",
+ "Upload": "Téléverser",
+ "Save overrides": "Enregistrer les remplacements",
+ "Custom value": "Valeur personnalisée",
+ "Reset to default": "Réinitialiser par défaut",
+ "Unsaved changes": "Modifications non enregistrées",
+ "Token overrides saved.": "Remplacements de jetons enregistrés.",
+ "Failed to save overrides:": "Échec de l’enregistrement des remplacements : ",
+ "Failed to save overrides.": "Échec de l’enregistrement des remplacements.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} jetons importés, {skipped} jetons ignorés (non reconnus)",
+ "Import failed:": "Échec de l’importation : ",
+ "Import failed.": "Échec de l’importation.",
+ "Apply token set: {name}": "Appliquer le jeu de jetons : {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Ces valeurs seraient modifiées. Sélectionnez celles à appliquer à vos remplacements personnalisés.",
+ "Select all": "Tout sélectionner",
+ "Deselect all": "Tout désélectionner",
+ "Token": "Jeton",
+ "New": "Nouveau",
+ "Apply selected": "Appliquer la sélection",
+ "Applying…": "Application…",
+ "Token overrides applied.": "Remplacements de jetons appliqués.",
+ "Failed to apply token set.": "Échec de l’application du jeu de jetons.",
+ "Theming per app": "Thème par application",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choisissez les applications auxquelles le thème NL Design s’applique. Décocher une application affiche ses pages avec le style Nextcloud par défaut, y compris l’en-tête sur ces pages.",
+ "Loading apps…": "Chargement des applications…",
+ "Save app theming": "Enregistrer le thème par application",
+ "Failed to load apps.": "Échec du chargement des applications.",
+ "No apps available.": "Aucune application disponible.",
+ "App theming saved. Reload an affected app to see changes.": "Thème par application enregistré. Rechargez une application concernée pour voir les changements.",
+ "Failed to save app theming.": "Échec de l’enregistrement du thème par application.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne est la police officielle de l'État français et est réservée aux administrations de l'État. Ne l'activez que si votre organisation est une administration de l'État. Sinon, Inter est utilisé.",
+ "Our organisation is a French State agency (administration de l'État)": "Notre organisation est une administration de l'État français",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/ga.js b/l10n/ga.js
new file mode 100644
index 000000000..4e335cda0
--- /dev/null
+++ b/l10n/ga.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Roghnóir dathanna do {label}",
+ "NL design system theme": "Téama NL Design System",
+ "Documentation": "Doiciméadú",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Roghnaigh tacar comharthaí dearaidh rialtas na hÍsiltíre mar bhonn, nó saincheap comharthaí CSS aonair Nextcloud thíos.",
+ "Design token set": "Tacar comharthaí dearaidh",
+ "Hide Nextcloud slogan/payoff on login page": "Folaigh mana Nextcloud ar an leathanach logála isteach",
+ "Show text labels in app menu (hide icons)": "Taispeáin lipéid téacs sa roghchlár feidhmchlár (folaigh ícóin)",
+ "Preview": "Réamhamharc",
+ "Primary button": "Cnaipe príomhúil",
+ "Secondary button": "Cnaipe tánaisteach",
+ "Loading token editor…": "Eagarthóir comharthaí á luchtú…",
+ "Learn more about NL design system": "Foghlaim tuilleadh faoi NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Nuashonraíodh an téama go rathúil. Athluchtaigh an leathanach chun na hathruithe a fheiceáil.",
+ "Failed to update theme.": "Theip ar nuashonrú an téama.",
+ "Primary color": "Príomhdhath",
+ "Background color": "Dath an chúlra",
+ "Logo": "Lógó",
+ "(custom logo)": "(lógó saincheaptha)",
+ "(default)": "(réamhshocrú)",
+ "Background image": "Íomhá chúlra",
+ "(custom)": "(saincheaptha)",
+ "Update Nextcloud theming to match {name}?": "Nuashonraigh téamú Nextcloud chun {name} a mheaitseáil?",
+ "Current": "Reatha",
+ "Proposed": "Molta",
+ "Setting": "Socrú",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Ní thaispeántar ach na luachanna a bhfuil difríocht eatarthu. Fágtar míreanna gan luach molta gan athrú.",
+ "Cancel": "Cealaigh",
+ "Update theming": "Nuashonraigh an téamú",
+ "Updating...": "Á nuashonrú...",
+ "Nextcloud theming updated successfully. reloading page...": "Nuashonraíodh téamú Nextcloud go rathúil. An leathanach á athluchtú...",
+ "Failed to update Nextcloud theming:": "Theip ar nuashonrú téamú Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Theip ar nuashonrú téamú Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Sábháladh an socrú go rathúil. Athluchtaigh an leathanach logála isteach chun na hathruithe a fheiceáil.",
+ "Failed to save setting.": "Theip ar shábháil an socrú.",
+ "Setting saved successfully. reload the page to see changes.": "Sábháladh an socrú go rathúil. Athluchtaigh an leathanach chun na hathruithe a fheiceáil.",
+ "Could not load token editor.": "Níorbh fhéidir an t-eagarthóir comharthaí a luchtú.",
+ "Custom token overrides": "Sáruithe comharthaí saincheaptha",
+ "Download": "Íoslódáil",
+ "Upload": "Uaslódáil",
+ "Save overrides": "Sábháil na sáruithe",
+ "Custom value": "Luach saincheaptha",
+ "Reset to default": "Athshocraigh go dtí an réamhshocrú",
+ "Unsaved changes": "Athruithe gan sábháil",
+ "Token overrides saved.": "Sábháladh na sáruithe comharthaí.",
+ "Failed to save overrides:": "Theip ar shábháil na sáruithe: ",
+ "Failed to save overrides.": "Theip ar shábháil na sáruithe.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} comhartha iompórtáilte, {skipped} comhartha ar lár (gan aithint)",
+ "Import failed:": "Theip ar an iompórtáil: ",
+ "Import failed.": "Theip ar an iompórtáil.",
+ "Apply token set: {name}": "Cuir tacar comharthaí i bhfeidhm: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "D'athródh na luachanna seo. Roghnaigh cé acu a chuirfear i bhfeidhm ar do sháruithe saincheaptha.",
+ "Select all": "Roghnaigh uile",
+ "Deselect all": "Díroghnaigh uile",
+ "Token": "Comhartha",
+ "New": "Nua",
+ "Apply selected": "Cuir na cinn roghnaithe i bhfeidhm",
+ "Applying…": "Á chur i bhfeidhm…",
+ "Token overrides applied.": "Cuireadh na sáruithe comharthaí i bhfeidhm.",
+ "Failed to apply token set.": "Theip ar an tacar comharthaí a chur i bhfeidhm.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/hr.js b/l10n/hr.js
new file mode 100644
index 000000000..1aa469e03
--- /dev/null
+++ b/l10n/hr.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Birač boje za {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Dokumentacija",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Odaberite skup dizajnerskih tokena nizozemske vlade kao osnovu ili prilagodite pojedinačne Nextcloud CSS tokene u nastavku.",
+ "Design token set": "Skup dizajnerskih tokena",
+ "Hide Nextcloud slogan/payoff on login page": "Sakrij Nextcloud slogan na stranici za prijavu",
+ "Show text labels in app menu (hide icons)": "Prikaži tekstualne oznake u izborniku aplikacija (sakrij ikone)",
+ "Preview": "Pregled",
+ "Primary button": "Primarni gumb",
+ "Secondary button": "Sekundarni gumb",
+ "Loading token editor…": "Učitavanje uređivača tokena…",
+ "Learn more about NL design system": "Saznajte više o NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema je uspješno ažurirana. Ponovno učitajte stranicu kako biste vidjeli promjene.",
+ "Failed to update theme.": "Ažuriranje teme nije uspjelo.",
+ "Primary color": "Primarna boja",
+ "Background color": "Boja pozadine",
+ "Logo": "Logotip",
+ "(custom logo)": "(prilagođeni logotip)",
+ "(default)": "(zadano)",
+ "Background image": "Pozadinska slika",
+ "(custom)": "(prilagođeno)",
+ "Update Nextcloud theming to match {name}?": "Ažurirati Nextcloud temu kako bi odgovarala {name}?",
+ "Current": "Trenutno",
+ "Proposed": "Predloženo",
+ "Setting": "Postavka",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Prikazane su samo vrijednosti koje se razlikuju. Stavke bez predložene vrijednosti ostaju nepromijenjene.",
+ "Cancel": "Odustani",
+ "Update theming": "Ažuriraj temu",
+ "Updating...": "Ažuriranje...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud tema je uspješno ažurirana. Ponovno učitavanje stranice...",
+ "Failed to update Nextcloud theming:": "Ažuriranje Nextcloud teme nije uspjelo: ",
+ "Failed to update Nextcloud theming.": "Ažuriranje Nextcloud teme nije uspjelo.",
+ "Setting saved successfully. reload the login page to see changes.": "Postavka je uspješno spremljena. Ponovno učitajte stranicu za prijavu kako biste vidjeli promjene.",
+ "Failed to save setting.": "Spremanje postavke nije uspjelo.",
+ "Setting saved successfully. reload the page to see changes.": "Postavka je uspješno spremljena. Ponovno učitajte stranicu kako biste vidjeli promjene.",
+ "Could not load token editor.": "Nije moguće učitati uređivač tokena.",
+ "Custom token overrides": "Prilagođena nadjačavanja tokena",
+ "Download": "Preuzmi",
+ "Upload": "Učitaj",
+ "Save overrides": "Spremi nadjačavanja",
+ "Custom value": "Prilagođena vrijednost",
+ "Reset to default": "Vrati na zadano",
+ "Unsaved changes": "Nespremljene promjene",
+ "Token overrides saved.": "Nadjačavanja tokena su spremljena.",
+ "Failed to save overrides:": "Spremanje nadjačavanja nije uspjelo: ",
+ "Failed to save overrides.": "Spremanje nadjačavanja nije uspjelo.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokena uvezeno, {skipped} tokena preskočeno (nije prepoznato)",
+ "Import failed:": "Uvoz nije uspio: ",
+ "Import failed.": "Uvoz nije uspio.",
+ "Apply token set: {name}": "Primijeni skup tokena: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Ove bi se vrijednosti promijenile. Označite koje primijeniti na vaša prilagođena nadjačavanja.",
+ "Select all": "Odaberi sve",
+ "Deselect all": "Poništi odabir svih",
+ "Token": "Token",
+ "New": "Novo",
+ "Apply selected": "Primijeni odabrano",
+ "Applying…": "Primjena…",
+ "Token overrides applied.": "Nadjačavanja tokena su primijenjena.",
+ "Failed to apply token set.": "Primjena skupa tokena nije uspjela.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/hu.js b/l10n/hu.js
new file mode 100644
index 000000000..2c5114628
--- /dev/null
+++ b/l10n/hu.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Színválasztó a következőhöz: {label}",
+ "NL design system theme": "NL Design System téma",
+ "Documentation": "Dokumentáció",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Válasszon egy holland kormányzati tervezési tokenkészletet alapként, vagy testreszabhatja az egyes Nextcloud CSS-tokeneket alább.",
+ "Design token set": "Tervezési tokenkészlet",
+ "Hide Nextcloud slogan/payoff on login page": "A Nextcloud szlogen elrejtése a bejelentkezési oldalon",
+ "Show text labels in app menu (hide icons)": "Szöveges címkék megjelenítése az alkalmazásmenüben (ikonok elrejtése)",
+ "Preview": "Előnézet",
+ "Primary button": "Elsődleges gomb",
+ "Secondary button": "Másodlagos gomb",
+ "Loading token editor…": "Tokenszerkesztő betöltése…",
+ "Learn more about NL design system": "Tudjon meg többet az NL Design System rendszerről",
+ "Theme updated successfully. reload the page to see changes.": "A téma sikeresen frissült. A változások megtekintéséhez töltse újra az oldalt.",
+ "Failed to update theme.": "A téma frissítése nem sikerült.",
+ "Primary color": "Elsődleges szín",
+ "Background color": "Háttérszín",
+ "Logo": "Logó",
+ "(custom logo)": "(egyéni logó)",
+ "(default)": "(alapértelmezett)",
+ "Background image": "Háttérkép",
+ "(custom)": "(egyéni)",
+ "Update Nextcloud theming to match {name}?": "Frissíti a Nextcloud témáját, hogy megegyezzen ezzel: {name}?",
+ "Current": "Jelenlegi",
+ "Proposed": "Javasolt",
+ "Setting": "Beállítás",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Csak az eltérő értékek jelennek meg. A javasolt érték nélküli elemek változatlanok maradnak.",
+ "Cancel": "Mégse",
+ "Update theming": "Téma frissítése",
+ "Updating...": "Frissítés...",
+ "Nextcloud theming updated successfully. reloading page...": "A Nextcloud témája sikeresen frissült. Az oldal újratöltése...",
+ "Failed to update Nextcloud theming:": "A Nextcloud témájának frissítése nem sikerült: ",
+ "Failed to update Nextcloud theming.": "A Nextcloud témájának frissítése nem sikerült.",
+ "Setting saved successfully. reload the login page to see changes.": "A beállítás sikeresen mentve. A változások megtekintéséhez töltse újra a bejelentkezési oldalt.",
+ "Failed to save setting.": "A beállítás mentése nem sikerült.",
+ "Setting saved successfully. reload the page to see changes.": "A beállítás sikeresen mentve. A változások megtekintéséhez töltse újra az oldalt.",
+ "Could not load token editor.": "A tokenszerkesztő nem tölthető be.",
+ "Custom token overrides": "Egyéni tokenfelülbírálatok",
+ "Download": "Letöltés",
+ "Upload": "Feltöltés",
+ "Save overrides": "Felülbírálatok mentése",
+ "Custom value": "Egyéni érték",
+ "Reset to default": "Visszaállítás alapértelmezettre",
+ "Unsaved changes": "Nem mentett változtatások",
+ "Token overrides saved.": "A tokenfelülbírálatok mentve.",
+ "Failed to save overrides:": "A felülbírálatok mentése nem sikerült: ",
+ "Failed to save overrides.": "A felülbírálatok mentése nem sikerült.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} token importálva, {skipped} token kihagyva (nem felismert)",
+ "Import failed:": "Az importálás nem sikerült: ",
+ "Import failed.": "Az importálás nem sikerült.",
+ "Apply token set: {name}": "Tokenkészlet alkalmazása: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Ezek az értékek megváltoznának. Jelölje be, melyeket alkalmazza az egyéni felülbírálataira.",
+ "Select all": "Összes kijelölése",
+ "Deselect all": "Kijelölés megszüntetése",
+ "Token": "Token",
+ "New": "Új",
+ "Apply selected": "Kijelöltek alkalmazása",
+ "Applying…": "Alkalmazás…",
+ "Token overrides applied.": "A tokenfelülbírálatok alkalmazva.",
+ "Failed to apply token set.": "A tokenkészlet alkalmazása nem sikerült.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/is.js b/l10n/is.js
new file mode 100644
index 000000000..830c7f40c
--- /dev/null
+++ b/l10n/is.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Litaval fyrir {label}",
+ "NL design system theme": "NL Design System-þema",
+ "Documentation": "Skjölun",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Veldu sett af hönnunartáknum hollenskra stjórnvalda sem grunn, eða sérsníddu einstök Nextcloud-CSS-tákn hér að neðan.",
+ "Design token set": "Sett af hönnunartáknum",
+ "Hide Nextcloud slogan/payoff on login page": "Fela slagorð Nextcloud á innskráningarsíðu",
+ "Show text labels in app menu (hide icons)": "Sýna textamerki í forritavalmynd (fela táknmyndir)",
+ "Preview": "Forskoðun",
+ "Primary button": "Aðalhnappur",
+ "Secondary button": "Aukahnappur",
+ "Loading token editor…": "Hleð inn táknaritli …",
+ "Learn more about NL design system": "Fræðast meira um NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Þema uppfært. Endurhladdu síðuna til að sjá breytingarnar.",
+ "Failed to update theme.": "Mistókst að uppfæra þema.",
+ "Primary color": "Aðallitur",
+ "Background color": "Bakgrunnslitur",
+ "Logo": "Táknmerki",
+ "(custom logo)": "(sérsniðið táknmerki)",
+ "(default)": "(sjálfgefið)",
+ "Background image": "Bakgrunnsmynd",
+ "(custom)": "(sérsniðið)",
+ "Update Nextcloud theming to match {name}?": "Uppfæra þemu Nextcloud svo það samsvari {name}?",
+ "Current": "Núverandi",
+ "Proposed": "Tillaga",
+ "Setting": "Stilling",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Aðeins gildi sem eru ólík eru sýnd. Atriði án tillögugildis eru óbreytt.",
+ "Cancel": "Hætta við",
+ "Update theming": "Uppfæra þemu",
+ "Updating...": "Uppfæri ...",
+ "Nextcloud theming updated successfully. reloading page...": "Þemu Nextcloud uppfært. Endurhleð síðuna ...",
+ "Failed to update Nextcloud theming:": "Mistókst að uppfæra þemu Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Mistókst að uppfæra þemu Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Stilling vistuð. Endurhladdu innskráningarsíðuna til að sjá breytingarnar.",
+ "Failed to save setting.": "Mistókst að vista stillingu.",
+ "Setting saved successfully. reload the page to see changes.": "Stilling vistuð. Endurhladdu síðuna til að sjá breytingarnar.",
+ "Could not load token editor.": "Tókst ekki að hlaða táknaritli.",
+ "Custom token overrides": "Sérsniðnar yfirskriftir tákna",
+ "Download": "Sækja",
+ "Upload": "Hlaða upp",
+ "Save overrides": "Vista yfirskriftir",
+ "Custom value": "Sérsniðið gildi",
+ "Reset to default": "Endurstilla á sjálfgefið",
+ "Unsaved changes": "Óvistaðar breytingar",
+ "Token overrides saved.": "Yfirskriftir tákna vistaðar.",
+ "Failed to save overrides:": "Mistókst að vista yfirskriftir: ",
+ "Failed to save overrides.": "Mistókst að vista yfirskriftir.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tákn flutt inn, {skipped} tákn sleppt (ekki þekkt)",
+ "Import failed:": "Innflutningur mistókst: ",
+ "Import failed.": "Innflutningur mistókst.",
+ "Apply token set: {name}": "Beita táknasetti: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Þessi gildi myndu breytast. Hakaðu við hver á að beita á sérsniðnu yfirskriftirnar þínar.",
+ "Select all": "Velja allt",
+ "Deselect all": "Afvelja allt",
+ "Token": "Tákn",
+ "New": "Nýtt",
+ "Apply selected": "Beita völdu",
+ "Applying…": "Beiti …",
+ "Token overrides applied.": "Yfirskriftum tákna beitt.",
+ "Failed to apply token set.": "Mistókst að beita táknasetti.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/it.js b/l10n/it.js
new file mode 100644
index 000000000..14dcfff5b
--- /dev/null
+++ b/l10n/it.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Selettore colore per {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Documentazione",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Selezioni un set di token di progettazione del governo dei Paesi Bassi come base, oppure personalizzi i singoli token CSS di Nextcloud qui sotto.",
+ "Design token set": "Set di token di progettazione",
+ "Hide Nextcloud slogan/payoff on login page": "Nascondi lo slogan/payoff di Nextcloud nella pagina di accesso",
+ "Show text labels in app menu (hide icons)": "Mostra le etichette di testo nel menu delle applicazioni (nascondi le icone)",
+ "Preview": "Anteprima",
+ "Primary button": "Pulsante principale",
+ "Secondary button": "Pulsante secondario",
+ "Loading token editor…": "Caricamento dell’editor dei token…",
+ "Learn more about NL design system": "Scopri di più su NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema aggiornato correttamente. Ricarichi la pagina per vedere le modifiche.",
+ "Failed to update theme.": "Aggiornamento del tema non riuscito.",
+ "Primary color": "Colore principale",
+ "Background color": "Colore di sfondo",
+ "Logo": "Logo",
+ "(custom logo)": "(logo personalizzato)",
+ "(default)": "(predefinito)",
+ "Background image": "Immagine di sfondo",
+ "(custom)": "(personalizzato)",
+ "Update Nextcloud theming to match {name}?": "Aggiornare il tema di Nextcloud affinché corrisponda a {name}?",
+ "Current": "Attuale",
+ "Proposed": "Proposto",
+ "Setting": "Impostazione",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Vengono mostrati solo i valori che differiscono. Gli elementi senza un valore proposto rimangono invariati.",
+ "Cancel": "Annulla",
+ "Update theming": "Aggiorna tema",
+ "Updating...": "Aggiornamento in corso…",
+ "Nextcloud theming updated successfully. reloading page...": "Tema di Nextcloud aggiornato correttamente. Ricaricamento della pagina…",
+ "Failed to update Nextcloud theming:": "Aggiornamento del tema di Nextcloud non riuscito: ",
+ "Failed to update Nextcloud theming.": "Aggiornamento del tema di Nextcloud non riuscito.",
+ "Setting saved successfully. reload the login page to see changes.": "Impostazione salvata correttamente. Ricarichi la pagina di accesso per vedere le modifiche.",
+ "Failed to save setting.": "Salvataggio dell’impostazione non riuscito.",
+ "Setting saved successfully. reload the page to see changes.": "Impostazione salvata correttamente. Ricarichi la pagina per vedere le modifiche.",
+ "Could not load token editor.": "Impossibile caricare l’editor dei token.",
+ "Custom token overrides": "Sostituzioni di token personalizzate",
+ "Download": "Scarica",
+ "Upload": "Carica",
+ "Save overrides": "Salva sostituzioni",
+ "Custom value": "Valore personalizzato",
+ "Reset to default": "Ripristina il valore predefinito",
+ "Unsaved changes": "Modifiche non salvate",
+ "Token overrides saved.": "Sostituzioni di token salvate.",
+ "Failed to save overrides:": "Salvataggio delle sostituzioni non riuscito: ",
+ "Failed to save overrides.": "Salvataggio delle sostituzioni non riuscito.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} token importati, {skipped} token ignorati (non riconosciuti)",
+ "Import failed:": "Importazione non riuscita: ",
+ "Import failed.": "Importazione non riuscita.",
+ "Apply token set: {name}": "Applica set di token: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Questi valori verrebbero modificati. Selezioni quali applicare alle sue sostituzioni personalizzate.",
+ "Select all": "Seleziona tutto",
+ "Deselect all": "Deseleziona tutto",
+ "Token": "Token",
+ "New": "Nuovo",
+ "Apply selected": "Applica selezionati",
+ "Applying…": "Applicazione in corso…",
+ "Token overrides applied.": "Sostituzioni di token applicate.",
+ "Failed to apply token set.": "Applicazione del set di token non riuscita.",
+ "Theming per app": "Tematizzazione per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Scegli a quali app si applica il tema NL Design. Deselezionando un’app le sue pagine vengono visualizzate con lo stile standard di Nextcloud, inclusa l’intestazione su quelle pagine.",
+ "Loading apps…": "Caricamento app…",
+ "Save app theming": "Salva tematizzazione per app",
+ "Failed to load apps.": "Caricamento delle app non riuscito.",
+ "No apps available.": "Nessuna app disponibile.",
+ "App theming saved. Reload an affected app to see changes.": "Tematizzazione per app salvata. Ricarica un’app interessata per vedere le modifiche.",
+ "Failed to save app theming.": "Salvataggio della tematizzazione per app non riuscito.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/lb.js b/l10n/lb.js
new file mode 100644
index 000000000..2e543406d
--- /dev/null
+++ b/l10n/lb.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Faarfwieler fir {label}",
+ "NL design system theme": "NL Design System Theema",
+ "Documentation": "Dokumentatioun",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Wielt en Design-Token-Set vun der hollännescher Regierung als Basis, oder personaliséiert eenzel Nextcloud-CSS-Tokens hei ënnen.",
+ "Design token set": "Design-Token-Set",
+ "Hide Nextcloud slogan/payoff on login page": "Nextcloud-Slogan op der Umeldungssäit verstoppen",
+ "Show text labels in app menu (hide icons)": "Textetiketten am App-Menü uweisen (Iconen verstoppen)",
+ "Preview": "Virschau",
+ "Primary button": "Primäre Knäppchen",
+ "Secondary button": "Sekundäre Knäppchen",
+ "Loading token editor…": "Token-Editor gëtt gelueden …",
+ "Learn more about NL design system": "Méi iwwer NL Design System léieren",
+ "Theme updated successfully. reload the page to see changes.": "Theema erfollegräich aktualiséiert. Lued d'Säit nei fir d'Ännerungen ze gesinn.",
+ "Failed to update theme.": "Theema konnt net aktualiséiert ginn.",
+ "Primary color": "Primärfaarf",
+ "Background color": "Hannergrondfaarf",
+ "Logo": "Logo",
+ "(custom logo)": "(personaliséierte Logo)",
+ "(default)": "(Standard)",
+ "Background image": "Hannergrondbild",
+ "(custom)": "(personaliséiert)",
+ "Update Nextcloud theming to match {name}?": "Nextcloud-Theema aktualiséieren fir mat {name} ze passen?",
+ "Current": "Aktuell",
+ "Proposed": "Proposéiert",
+ "Setting": "Astellung",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Et ginn nëmmen d'Wäerter gewisen, déi sech ënnerscheeden. Elementer ouni e proposéierte Wäert bleiwen onverännert.",
+ "Cancel": "Ofbriechen",
+ "Update theming": "Theema aktualiséieren",
+ "Updating...": "Gëtt aktualiséiert ...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud-Theema erfollegräich aktualiséiert. D'Säit gëtt nei gelueden ...",
+ "Failed to update Nextcloud theming:": "Nextcloud-Theema konnt net aktualiséiert ginn: ",
+ "Failed to update Nextcloud theming.": "Nextcloud-Theema konnt net aktualiséiert ginn.",
+ "Setting saved successfully. reload the login page to see changes.": "Astellung erfollegräich gespäichert. Lued d'Umeldungssäit nei fir d'Ännerungen ze gesinn.",
+ "Failed to save setting.": "Astellung konnt net gespäichert ginn.",
+ "Setting saved successfully. reload the page to see changes.": "Astellung erfollegräich gespäichert. Lued d'Säit nei fir d'Ännerungen ze gesinn.",
+ "Could not load token editor.": "Token-Editor konnt net gelueden ginn.",
+ "Custom token overrides": "Personaliséiert Token-Iwwerschreiwungen",
+ "Download": "Eroflueden",
+ "Upload": "Eroplueden",
+ "Save overrides": "Iwwerschreiwunge späicheren",
+ "Custom value": "Personaliséierte Wäert",
+ "Reset to default": "Op Standard zerécksetzen",
+ "Unsaved changes": "Net gespäichert Ännerungen",
+ "Token overrides saved.": "Token-Iwwerschreiwunge gespäichert.",
+ "Failed to save overrides:": "Iwwerschreiwunge konnten net gespäichert ginn: ",
+ "Failed to save overrides.": "Iwwerschreiwunge konnten net gespäichert ginn.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} Tokens importéiert, {skipped} Tokens iwwersprongen (net erkannt)",
+ "Import failed:": "Import feelgeschloen: ",
+ "Import failed.": "Import feelgeschloen.",
+ "Apply token set: {name}": "Token-Set uwenden: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Dës Wäerter géifen änneren. Markéiert, déi Dir op Är personaliséiert Iwwerschreiwunge uwenne wëllt.",
+ "Select all": "Alles auswielen",
+ "Deselect all": "Auswiel ophiewen",
+ "Token": "Token",
+ "New": "Nei",
+ "Apply selected": "Ausgewielt uwenden",
+ "Applying…": "Gëtt ugewannt …",
+ "Token overrides applied.": "Token-Iwwerschreiwungen ugewannt.",
+ "Failed to apply token set.": "Token-Set konnt net ugewannt ginn.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/lt.js b/l10n/lt.js
new file mode 100644
index 000000000..10fbccb4a
--- /dev/null
+++ b/l10n/lt.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Spalvų parinkiklis elementui {label}",
+ "NL design system theme": "NL Design System tema",
+ "Documentation": "Dokumentacija",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Pasirinkite Nyderlandų vyriausybės dizaino prieigos raktų rinkinį kaip pagrindą arba tinkinkite atskirus Nextcloud CSS prieigos raktus žemiau.",
+ "Design token set": "Dizaino prieigos raktų rinkinys",
+ "Hide Nextcloud slogan/payoff on login page": "Slėpti Nextcloud šūkį prisijungimo puslapyje",
+ "Show text labels in app menu (hide icons)": "Rodyti teksto etiketes programų meniu (slėpti piktogramas)",
+ "Preview": "Peržiūra",
+ "Primary button": "Pagrindinis mygtukas",
+ "Secondary button": "Antrinis mygtukas",
+ "Loading token editor…": "Įkeliamas prieigos raktų redaktorius…",
+ "Learn more about NL design system": "Sužinokite daugiau apie NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema sėkmingai atnaujinta. Iš naujo įkelkite puslapį, kad pamatytumėte pakeitimus.",
+ "Failed to update theme.": "Nepavyko atnaujinti temos.",
+ "Primary color": "Pagrindinė spalva",
+ "Background color": "Fono spalva",
+ "Logo": "Logotipas",
+ "(custom logo)": "(pasirinktinis logotipas)",
+ "(default)": "(numatytasis)",
+ "Background image": "Fono vaizdas",
+ "(custom)": "(pasirinktinis)",
+ "Update Nextcloud theming to match {name}?": "Atnaujinti Nextcloud apipavidalinimą, kad atitiktų {name}?",
+ "Current": "Dabartinis",
+ "Proposed": "Siūlomas",
+ "Setting": "Nustatymas",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Rodomos tik besiskiriančios reikšmės. Elementai be siūlomos reikšmės lieka nepakeisti.",
+ "Cancel": "Atšaukti",
+ "Update theming": "Atnaujinti apipavidalinimą",
+ "Updating...": "Atnaujinama...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud apipavidalinimas sėkmingai atnaujintas. Iš naujo įkeliamas puslapis...",
+ "Failed to update Nextcloud theming:": "Nepavyko atnaujinti Nextcloud apipavidalinimo: ",
+ "Failed to update Nextcloud theming.": "Nepavyko atnaujinti Nextcloud apipavidalinimo.",
+ "Setting saved successfully. reload the login page to see changes.": "Nustatymas sėkmingai įrašytas. Iš naujo įkelkite prisijungimo puslapį, kad pamatytumėte pakeitimus.",
+ "Failed to save setting.": "Nepavyko įrašyti nustatymo.",
+ "Setting saved successfully. reload the page to see changes.": "Nustatymas sėkmingai įrašytas. Iš naujo įkelkite puslapį, kad pamatytumėte pakeitimus.",
+ "Could not load token editor.": "Nepavyko įkelti prieigos raktų redaktoriaus.",
+ "Custom token overrides": "Pasirinktiniai prieigos raktų perrašymai",
+ "Download": "Atsisiųsti",
+ "Upload": "Įkelti",
+ "Save overrides": "Įrašyti perrašymus",
+ "Custom value": "Pasirinktinė reikšmė",
+ "Reset to default": "Atstatyti į numatytąją",
+ "Unsaved changes": "Neįrašyti pakeitimai",
+ "Token overrides saved.": "Prieigos raktų perrašymai įrašyti.",
+ "Failed to save overrides:": "Nepavyko įrašyti perrašymų: ",
+ "Failed to save overrides.": "Nepavyko įrašyti perrašymų.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} prieigos raktai importuoti, {skipped} prieigos raktai praleisti (neatpažinti)",
+ "Import failed:": "Importavimas nepavyko: ",
+ "Import failed.": "Importavimas nepavyko.",
+ "Apply token set: {name}": "Taikyti prieigos raktų rinkinį: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Šios reikšmės pasikeistų. Pažymėkite, kurias taikyti jūsų pasirinktiniams perrašymams.",
+ "Select all": "Pažymėti viską",
+ "Deselect all": "Atžymėti viską",
+ "Token": "Prieigos raktas",
+ "New": "Naujas",
+ "Apply selected": "Taikyti pažymėtus",
+ "Applying…": "Taikoma…",
+ "Token overrides applied.": "Prieigos raktų perrašymai pritaikyti.",
+ "Failed to apply token set.": "Nepavyko pritaikyti prieigos raktų rinkinio.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/lv.js b/l10n/lv.js
new file mode 100644
index 000000000..50eccc08b
--- /dev/null
+++ b/l10n/lv.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Krāsu atlasītājs vienumam {label}",
+ "NL design system theme": "NL Design System tēma",
+ "Documentation": "Dokumentācija",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Atlasiet Nīderlandes valdības dizaina marķieru kopu kā pamatu vai pielāgojiet atsevišķus Nextcloud CSS marķierus zemāk.",
+ "Design token set": "Dizaina marķieru kopa",
+ "Hide Nextcloud slogan/payoff on login page": "Slēpt Nextcloud saukli pieteikšanās lapā",
+ "Show text labels in app menu (hide icons)": "Rādīt teksta etiķetes lietotņu izvēlnē (slēpt ikonas)",
+ "Preview": "Priekšskatījums",
+ "Primary button": "Primārā poga",
+ "Secondary button": "Sekundārā poga",
+ "Loading token editor…": "Notiek marķieru redaktora ielāde…",
+ "Learn more about NL design system": "Uzziniet vairāk par NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tēma veiksmīgi atjaunināta. Pārlādējiet lapu, lai redzētu izmaiņas.",
+ "Failed to update theme.": "Neizdevās atjaunināt tēmu.",
+ "Primary color": "Primārā krāsa",
+ "Background color": "Fona krāsa",
+ "Logo": "Logotips",
+ "(custom logo)": "(pielāgots logotips)",
+ "(default)": "(noklusējums)",
+ "Background image": "Fona attēls",
+ "(custom)": "(pielāgots)",
+ "Update Nextcloud theming to match {name}?": "Atjaunināt Nextcloud noformējumu, lai tas atbilstu {name}?",
+ "Current": "Pašreizējais",
+ "Proposed": "Piedāvātais",
+ "Setting": "Iestatījums",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Tiek rādītas tikai vērtības, kas atšķiras. Vienumi bez piedāvātās vērtības paliek nemainīgi.",
+ "Cancel": "Atcelt",
+ "Update theming": "Atjaunināt noformējumu",
+ "Updating...": "Notiek atjaunināšana...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud noformējums veiksmīgi atjaunināts. Notiek lapas pārlāde...",
+ "Failed to update Nextcloud theming:": "Neizdevās atjaunināt Nextcloud noformējumu: ",
+ "Failed to update Nextcloud theming.": "Neizdevās atjaunināt Nextcloud noformējumu.",
+ "Setting saved successfully. reload the login page to see changes.": "Iestatījums veiksmīgi saglabāts. Pārlādējiet pieteikšanās lapu, lai redzētu izmaiņas.",
+ "Failed to save setting.": "Neizdevās saglabāt iestatījumu.",
+ "Setting saved successfully. reload the page to see changes.": "Iestatījums veiksmīgi saglabāts. Pārlādējiet lapu, lai redzētu izmaiņas.",
+ "Could not load token editor.": "Neizdevās ielādēt marķieru redaktoru.",
+ "Custom token overrides": "Pielāgotie marķieru pārrakstījumi",
+ "Download": "Lejupielādēt",
+ "Upload": "Augšupielādēt",
+ "Save overrides": "Saglabāt pārrakstījumus",
+ "Custom value": "Pielāgota vērtība",
+ "Reset to default": "Atiestatīt uz noklusējumu",
+ "Unsaved changes": "Nesaglabātas izmaiņas",
+ "Token overrides saved.": "Marķieru pārrakstījumi saglabāti.",
+ "Failed to save overrides:": "Neizdevās saglabāt pārrakstījumus: ",
+ "Failed to save overrides.": "Neizdevās saglabāt pārrakstījumus.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} marķieri importēti, {skipped} marķieri izlaisti (nav atpazīti)",
+ "Import failed:": "Importēšana neizdevās: ",
+ "Import failed.": "Importēšana neizdevās.",
+ "Apply token set: {name}": "Lietot marķieru kopu: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Šīs vērtības mainītos. Atzīmējiet, kuras no tām lietot jūsu pielāgotajiem pārrakstījumiem.",
+ "Select all": "Atlasīt visu",
+ "Deselect all": "Noņemt visu atlasi",
+ "Token": "Marķieris",
+ "New": "Jauns",
+ "Apply selected": "Lietot atlasītos",
+ "Applying…": "Notiek lietošana…",
+ "Token overrides applied.": "Marķieru pārrakstījumi lietoti.",
+ "Failed to apply token set.": "Neizdevās lietot marķieru kopu.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/mk.js b/l10n/mk.js
new file mode 100644
index 000000000..560ffbf22
--- /dev/null
+++ b/l10n/mk.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Избирач на бои за {label}",
+ "NL design system theme": "Тема NL Design System",
+ "Documentation": "Документација",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Изберете збир на дизајн-токени на холандската влада како основа, или прилагодете поединечни Nextcloud CSS токени подолу.",
+ "Design token set": "Збир на дизајн-токени",
+ "Hide Nextcloud slogan/payoff on login page": "Скриј го слоганот на Nextcloud на страницата за најава",
+ "Show text labels in app menu (hide icons)": "Прикажи текстуални ознаки во менито на апликации (скриј икони)",
+ "Preview": "Преглед",
+ "Primary button": "Примарно копче",
+ "Secondary button": "Секундарно копче",
+ "Loading token editor…": "Се вчитува уредувачот на токени …",
+ "Learn more about NL design system": "Дознајте повеќе за NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Темата е успешно ажурирана. Превчитајте ја страницата за да ги видите промените.",
+ "Failed to update theme.": "Ажурирањето на темата не успеа.",
+ "Primary color": "Примарна боја",
+ "Background color": "Боја на позадина",
+ "Logo": "Лого",
+ "(custom logo)": "(прилагодено лого)",
+ "(default)": "(стандардно)",
+ "Background image": "Слика на позадина",
+ "(custom)": "(прилагодено)",
+ "Update Nextcloud theming to match {name}?": "Да се ажурира темата на Nextcloud за да одговара на {name}?",
+ "Current": "Тековно",
+ "Proposed": "Предложено",
+ "Setting": "Поставка",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Прикажани се само вредностите што се разликуваат. Ставките без предложена вредност остануваат непроменети.",
+ "Cancel": "Откажи",
+ "Update theming": "Ажурирај тема",
+ "Updating...": "Се ажурира ...",
+ "Nextcloud theming updated successfully. reloading page...": "Темата на Nextcloud е успешно ажурирана. Се превчитува страницата ...",
+ "Failed to update Nextcloud theming:": "Ажурирањето на темата на Nextcloud не успеа: ",
+ "Failed to update Nextcloud theming.": "Ажурирањето на темата на Nextcloud не успеа.",
+ "Setting saved successfully. reload the login page to see changes.": "Поставката е успешно зачувана. Превчитајте ја страницата за најава за да ги видите промените.",
+ "Failed to save setting.": "Зачувувањето на поставката не успеа.",
+ "Setting saved successfully. reload the page to see changes.": "Поставката е успешно зачувана. Превчитајте ја страницата за да ги видите промените.",
+ "Could not load token editor.": "Не може да се вчита уредувачот на токени.",
+ "Custom token overrides": "Прилагодени пребришувања на токени",
+ "Download": "Преземи",
+ "Upload": "Подигни",
+ "Save overrides": "Зачувај пребришувања",
+ "Custom value": "Прилагодена вредност",
+ "Reset to default": "Врати на стандардно",
+ "Unsaved changes": "Незачувани промени",
+ "Token overrides saved.": "Пребришувањата на токени се зачувани.",
+ "Failed to save overrides:": "Зачувувањето на пребришувањата не успеа: ",
+ "Failed to save overrides.": "Зачувувањето на пребришувањата не успеа.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} токени се увезени, {skipped} токени се прескокнати (не се препознаени)",
+ "Import failed:": "Увозот не успеа: ",
+ "Import failed.": "Увозот не успеа.",
+ "Apply token set: {name}": "Примени збир на токени: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Овие вредности би се промениле. Означете кои сакате да ги примените на вашите прилагодени пребришувања.",
+ "Select all": "Избери ги сите",
+ "Deselect all": "Поништи го изборот на сите",
+ "Token": "Токен",
+ "New": "Ново",
+ "Apply selected": "Примени ги избраните",
+ "Applying…": "Се применува …",
+ "Token overrides applied.": "Пребришувањата на токени се применети.",
+ "Failed to apply token set.": "Примената на збирот на токени не успеа.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/mt.js b/l10n/mt.js
new file mode 100644
index 000000000..29698e876
--- /dev/null
+++ b/l10n/mt.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Għażla tal-kuluri għal {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Dokumentazzjoni",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Agħżel sett ta' tokens tad-disinn tal-gvern Olandiż bħala bażi, jew ippersonalizza tokens individwali tas-CSS ta' Nextcloud hawn taħt.",
+ "Design token set": "Sett ta' tokens tad-disinn",
+ "Hide Nextcloud slogan/payoff on login page": "Aħbi s-slogan ta' Nextcloud fil-paġna tal-login",
+ "Show text labels in app menu (hide icons)": "Uri tikketti tat-test fil-menu tal-apps (aħbi l-ikoni)",
+ "Preview": "Anteprima",
+ "Primary button": "Buttuna primarja",
+ "Secondary button": "Buttuna sekondarja",
+ "Loading token editor…": "Qed jitgħabba l-editur tat-tokens…",
+ "Learn more about NL design system": "Tgħallem aktar dwar NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "It-tema ġiet aġġornata b'suċċess. Erġa' għabbi l-paġna biex tara l-bidliet.",
+ "Failed to update theme.": "L-aġġornament tat-tema falla.",
+ "Primary color": "Kulur primarju",
+ "Background color": "Kulur tal-isfond",
+ "Logo": "Logo",
+ "(custom logo)": "(logo personalizzat)",
+ "(default)": "(awtomatiku)",
+ "Background image": "Immaġni tal-isfond",
+ "(custom)": "(personalizzat)",
+ "Update Nextcloud theming to match {name}?": "Taġġorna t-tema ta' Nextcloud biex taqbel ma' {name}?",
+ "Current": "Attwali",
+ "Proposed": "Propost",
+ "Setting": "Issettjar",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Jintwerew biss il-valuri li jvarjaw. L-elementi mingħajr valur propost jitħallew mhux mibdula.",
+ "Cancel": "Ikkanċella",
+ "Update theming": "Aġġorna t-tema",
+ "Updating...": "Qed jaġġorna...",
+ "Nextcloud theming updated successfully. reloading page...": "It-tema ta' Nextcloud ġiet aġġornata b'suċċess. Qed terġa' titgħabba l-paġna...",
+ "Failed to update Nextcloud theming:": "L-aġġornament tat-tema ta' Nextcloud falla: ",
+ "Failed to update Nextcloud theming.": "L-aġġornament tat-tema ta' Nextcloud falla.",
+ "Setting saved successfully. reload the login page to see changes.": "L-issettjar ġie salvat b'suċċess. Erġa' għabbi l-paġna tal-login biex tara l-bidliet.",
+ "Failed to save setting.": "Is-salvataġġ tal-issettjar falla.",
+ "Setting saved successfully. reload the page to see changes.": "L-issettjar ġie salvat b'suċċess. Erġa' għabbi l-paġna biex tara l-bidliet.",
+ "Could not load token editor.": "Ma setax jitgħabba l-editur tat-tokens.",
+ "Custom token overrides": "Sostituzzjonijiet ta' tokens personalizzati",
+ "Download": "Niżżel",
+ "Upload": "Tella'",
+ "Save overrides": "Salva s-sostituzzjonijiet",
+ "Custom value": "Valur personalizzat",
+ "Reset to default": "Erġa' lura għall-awtomatiku",
+ "Unsaved changes": "Bidliet mhux salvati",
+ "Token overrides saved.": "Is-sostituzzjonijiet tat-tokens ġew salvati.",
+ "Failed to save overrides:": "Is-salvataġġ tas-sostituzzjonijiet falla: ",
+ "Failed to save overrides.": "Is-salvataġġ tas-sostituzzjonijiet falla.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens importati, {skipped} tokens maqbuża (mhux rikonoxxuti)",
+ "Import failed:": "L-importazzjoni falliet: ",
+ "Import failed.": "L-importazzjoni falliet.",
+ "Apply token set: {name}": "Applika s-sett tat-tokens: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Dawn il-valuri jinbidlu. Immarka liema minnhom tapplika għas-sostituzzjonijiet personalizzati tiegħek.",
+ "Select all": "Agħżel kollox",
+ "Deselect all": "Neħħi l-għażla ta' kollox",
+ "Token": "Token",
+ "New": "Ġdid",
+ "Apply selected": "Applika dawk magħżula",
+ "Applying…": "Qed tiġi applikata…",
+ "Token overrides applied.": "Is-sostituzzjonijiet tat-tokens ġew applikati.",
+ "Failed to apply token set.": "L-applikazzjoni tas-sett tat-tokens falliet.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/nb.js b/l10n/nb.js
new file mode 100644
index 000000000..f929c7856
--- /dev/null
+++ b/l10n/nb.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Fargevelger for {label}",
+ "NL design system theme": "NL Design System-tema",
+ "Documentation": "Dokumentasjon",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Velg et sett med designtokens fra den nederlandske regjeringen som grunnlag, eller tilpass enkelte Nextcloud-CSS-tokens nedenfor.",
+ "Design token set": "Sett med designtokens",
+ "Hide Nextcloud slogan/payoff on login page": "Skjul Nextclouds slagord på påloggingssiden",
+ "Show text labels in app menu (hide icons)": "Vis tekstetiketter i appmenyen (skjul ikoner)",
+ "Preview": "Forhåndsvisning",
+ "Primary button": "Primærknapp",
+ "Secondary button": "Sekundærknapp",
+ "Loading token editor…": "Laster tokenredigerer …",
+ "Learn more about NL design system": "Lær mer om NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Temaet ble oppdatert. Last inn siden på nytt for å se endringene.",
+ "Failed to update theme.": "Kunne ikke oppdatere temaet.",
+ "Primary color": "Primærfarge",
+ "Background color": "Bakgrunnsfarge",
+ "Logo": "Logo",
+ "(custom logo)": "(egendefinert logo)",
+ "(default)": "(standard)",
+ "Background image": "Bakgrunnsbilde",
+ "(custom)": "(egendefinert)",
+ "Update Nextcloud theming to match {name}?": "Oppdatere Nextclouds tema slik at det samsvarer med {name}?",
+ "Current": "Gjeldende",
+ "Proposed": "Foreslått",
+ "Setting": "Innstilling",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Bare verdier som er forskjellige vises. Elementer uten en foreslått verdi forblir uendret.",
+ "Cancel": "Avbryt",
+ "Update theming": "Oppdater tema",
+ "Updating...": "Oppdaterer ...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextclouds tema ble oppdatert. Laster inn siden på nytt ...",
+ "Failed to update Nextcloud theming:": "Kunne ikke oppdatere Nextclouds tema: ",
+ "Failed to update Nextcloud theming.": "Kunne ikke oppdatere Nextclouds tema.",
+ "Setting saved successfully. reload the login page to see changes.": "Innstillingen ble lagret. Last inn påloggingssiden på nytt for å se endringene.",
+ "Failed to save setting.": "Kunne ikke lagre innstillingen.",
+ "Setting saved successfully. reload the page to see changes.": "Innstillingen ble lagret. Last inn siden på nytt for å se endringene.",
+ "Could not load token editor.": "Kunne ikke laste tokenredigereren.",
+ "Custom token overrides": "Egendefinerte tokenoverstyringer",
+ "Download": "Last ned",
+ "Upload": "Last opp",
+ "Save overrides": "Lagre overstyringer",
+ "Custom value": "Egendefinert verdi",
+ "Reset to default": "Tilbakestill til standard",
+ "Unsaved changes": "Ulagrede endringer",
+ "Token overrides saved.": "Tokenoverstyringene ble lagret.",
+ "Failed to save overrides:": "Kunne ikke lagre overstyringene: ",
+ "Failed to save overrides.": "Kunne ikke lagre overstyringene.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens importert, {skipped} tokens hoppet over (ikke gjenkjent)",
+ "Import failed:": "Importen mislyktes: ",
+ "Import failed.": "Importen mislyktes.",
+ "Apply token set: {name}": "Bruk tokensett: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Disse verdiene ville endres. Merk av hvilke du vil bruke på dine egendefinerte overstyringer.",
+ "Select all": "Velg alle",
+ "Deselect all": "Fjern alle valg",
+ "Token": "Token",
+ "New": "Ny",
+ "Apply selected": "Bruk valgte",
+ "Applying…": "Bruker …",
+ "Token overrides applied.": "Tokenoverstyringene ble brukt.",
+ "Failed to apply token set.": "Kunne ikke bruke tokensettet.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/nl.js b/l10n/nl.js
new file mode 100644
index 000000000..94a0ac401
--- /dev/null
+++ b/l10n/nl.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Kleurkiezer voor {label}",
+ "NL design system theme": "NL Design System-thema",
+ "Documentation": "Documentatie",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Selecteer een Nederlandse overheidsontwerp-tokenset als basis, of pas hieronder individuele Nextcloud CSS-tokens aan.",
+ "Design token set": "Ontwerp-tokenset",
+ "Hide Nextcloud slogan/payoff on login page": "Verberg Nextcloud-slogan/payoff op de inlogpagina",
+ "Show text labels in app menu (hide icons)": "Toon tekstlabels in het app-menu (verberg pictogrammen)",
+ "Preview": "Voorbeeld",
+ "Primary button": "Primaire knop",
+ "Secondary button": "Secundaire knop",
+ "Loading token editor…": "Token-editor laden…",
+ "Learn more about NL design system": "Meer informatie over NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Thema succesvol bijgewerkt. Laad de pagina opnieuw om de wijzigingen te zien.",
+ "Failed to update theme.": "Bijwerken van het thema mislukt.",
+ "Primary color": "Primaire kleur",
+ "Background color": "Achtergrondkleur",
+ "Logo": "Logo",
+ "(custom logo)": "(aangepast logo)",
+ "(default)": "(standaard)",
+ "Background image": "Achtergrondafbeelding",
+ "(custom)": "(aangepast)",
+ "Update Nextcloud theming to match {name}?": "Nextcloud-thema bijwerken zodat het overeenkomt met {name}?",
+ "Current": "Huidig",
+ "Proposed": "Voorgesteld",
+ "Setting": "Instelling",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Alleen afwijkende waarden worden getoond. Items zonder voorgestelde waarde blijven ongewijzigd.",
+ "Cancel": "Annuleren",
+ "Update theming": "Thema bijwerken",
+ "Updating...": "Bijwerken…",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud-thema succesvol bijgewerkt. Pagina wordt opnieuw geladen…",
+ "Failed to update Nextcloud theming:": "Bijwerken van Nextcloud-thema mislukt: ",
+ "Failed to update Nextcloud theming.": "Bijwerken van Nextcloud-thema mislukt.",
+ "Setting saved successfully. reload the login page to see changes.": "Instelling succesvol opgeslagen. Laad de inlogpagina opnieuw om de wijzigingen te zien.",
+ "Failed to save setting.": "Opslaan van instelling mislukt.",
+ "Setting saved successfully. reload the page to see changes.": "Instelling succesvol opgeslagen. Laad de pagina opnieuw om de wijzigingen te zien.",
+ "Could not load token editor.": "Token-editor kon niet worden geladen.",
+ "Custom token overrides": "Aangepaste token-overschrijvingen",
+ "Download": "Downloaden",
+ "Upload": "Uploaden",
+ "Save overrides": "Overschrijvingen opslaan",
+ "Custom value": "Aangepaste waarde",
+ "Reset to default": "Terugzetten naar standaard",
+ "Unsaved changes": "Niet-opgeslagen wijzigingen",
+ "Token overrides saved.": "Token-overschrijvingen opgeslagen.",
+ "Failed to save overrides:": "Opslaan van overschrijvingen mislukt: ",
+ "Failed to save overrides.": "Opslaan van overschrijvingen mislukt.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens geïmporteerd, {skipped} tokens overgeslagen (niet herkend)",
+ "Import failed:": "Importeren mislukt: ",
+ "Import failed.": "Importeren mislukt.",
+ "Apply token set: {name}": "Tokenset toepassen: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Deze waarden zouden wijzigen. Selecteer welke u op uw aangepaste overschrijvingen wilt toepassen.",
+ "Select all": "Alles selecteren",
+ "Deselect all": "Alles deselecteren",
+ "Token": "Token",
+ "New": "Nieuw",
+ "Apply selected": "Geselecteerde toepassen",
+ "Applying…": "Toepassen…",
+ "Token overrides applied.": "Token-overschrijvingen toegepast.",
+ "Failed to apply token set.": "Toepassen van tokenset mislukt.",
+ "Theming per app": "Thema per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Kies op welke apps het NL Design-thema van toepassing is. Door een app uit te vinken worden de pagina's van die app weergegeven met de standaard Nextcloud-stijl, inclusief de koptekst op die pagina's.",
+ "Loading apps…": "Apps laden…",
+ "Save app theming": "App-thema opslaan",
+ "Failed to load apps.": "Laden van apps mislukt.",
+ "No apps available.": "Geen apps beschikbaar.",
+ "App theming saved. Reload an affected app to see changes.": "App-thema opgeslagen. Herlaad een betreffende app om de wijzigingen te zien.",
+ "Failed to save app theming.": "Opslaan van app-thema mislukt.",
+ "Group theming": "Thema per groep",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Koppel Nextcloud-groepen aan tokensets, zodat verschillende gemeenten op één gedeelde omgeving elk hun eigen huisstijl zien. De volgorde van de rijen is de prioriteitsvolgorde: voor een gebruiker in meerdere gekoppelde groepen wint de eerst passende rij.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, e-mailsjablonen en andere Nextcloud-kernhuisstijl volgen altijd de standaard tokenset van de omgeving hierboven — deze zijn niet per groep. Alleen deze tokenset-stijllaag verschilt per groep.",
+ "Loading group mappings…": "Groepskoppelingen laden…",
+ "Add mapping": "Koppeling toevoegen",
+ "Save group theming": "Thema per groep opslaan",
+ "Failed to load group mappings.": "Laden van groepskoppelingen mislukt.",
+ "Group": "Groep",
+ "Token set": "Tokenset",
+ "Move mapping up": "Koppeling omhoog verplaatsen",
+ "Move mapping down": "Koppeling omlaag verplaatsen",
+ "Remove mapping": "Koppeling verwijderen",
+ "No group mappings configured.": "Geen groepskoppelingen geconfigureerd.",
+ "Group theming saved.": "Thema per groep opgeslagen.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Kon koppeling voor groep \"{group}\" → \"{tokenSet}\" niet opslaan: {reason}",
+ "Failed to save group theming.": "Opslaan van thema per groep mislukt.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA-contrastwaarschuwing(en) — zie het toepasvenster.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens geïmporteerd, {skipped} overgeslagen.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 ligt onder de WCAG 2.1 AA-drempel van {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast kon niet worden berekend (geen letterlijke kleurwaarde).",
+ "Contrast warning": "Contrastwaarschuwing",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Aangepaste token set verwijderd. Herlaad de pagina om de keuzelijst te vernieuwen.",
+ "Delete": "Verwijderen",
+ "Delete custom token set": "Aangepaste token set verwijderen",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "De aangepaste token set \"{name}\" verwijderen? Als deze actief is, valt het thema terug op Nextcloud.",
+ "Enter a token set name first.": "Voer eerst een naam voor de token set in.",
+ "Failed to delete custom token set.": "Verwijderen van aangepaste token set mislukt.",
+ "Failed to load custom token sets.": "Laden van aangepaste token sets mislukt.",
+ "No custom token sets uploaded yet.": "Nog geen aangepaste token sets geüpload.",
+ "Token set uploaded. Reload the page to apply it.": "Token set geüpload. Herlaad de pagina om deze toe te passen.",
+ "Upload failed:": "Uploaden mislukt:",
+ "Upload failed.": "Uploaden mislukt.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA-contrastwaarschuwing",
+ "WCAG AA OK": "WCAG AA in orde",
+ "Custom token sets": "Aangepaste token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload uw eigen huisstijl als token set, als NL Design CSS-bestand (--nldesign-*-variabelen) of als W3C Design Tokens JSON-bestand. Geüploade sets verschijnen in de keuzelijst hierboven.",
+ "Token set name": "Naam token set",
+ "e.g. Gemeente Voorbeeld": "bijv. Gemeente Voorbeeld",
+ "Choose file and upload": "Bestand kiezen en uploaden",
+ "Loading custom token sets…": "Aangepaste token sets laden…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Laden van het auditlog mislukt.",
+ "from {value}": "van {value}",
+ "No theming changes have been recorded yet.": "Er zijn nog geen thema-wijzigingen vastgelegd.",
+ "to {value}": "naar {value}",
+ "Theming audit log": "Thema-auditlog",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "Een overzicht van thema-configuratiewijzigingen: wie wat wijzigde, van wat, naar wat, en wanneer. Nuttig bewijs voor toegankelijkheidsaudits.",
+ "Timestamp": "Tijdstip",
+ "User": "Gebruiker",
+ "Action": "Actie",
+ "Details": "Details",
+ "Loading audit log…": "Auditlog laden…",
+ "Download full log": "Volledig log downloaden",
+ "Email template": "E-mailsjabloon",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Voorzie wachtwoord-reset, deelmeldingen en andere systeem-e-mails van de kleur en het logo van de actieve tokenset. Als nldesign later wordt uitgeschakeld, valt Nextcloud automatisch terug op het standaard e-mailsjabloon — e-mail wordt door deze instelling nooit geblokkeerd.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "Er is al een andere e-mailsjabloonklasse geconfigureerd ({class}); nldesign overschrijft deze niet.",
+ "Use NL Design email template": "NL Design e-mailsjabloon gebruiken",
+ "Organization name": "Organisatienaam",
+ "Accessibility statement URL": "URL toegankelijkheidsverklaring",
+ "Privacy statement URL": "URL privacyverklaring",
+ "Save email template settings": "E-mailsjabloon-instellingen opslaan",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is alleen-lezen. Voer een van de volgende commando's handmatig uit om het e-mailsjabloon in of uit te schakelen:",
+ "Email template settings saved.": "E-mailsjabloon-instellingen opgeslagen.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is alleen-lezen; voer het getoonde occ-commando handmatig uit.",
+ "A different mail template class is already configured.": "Er is al een andere e-mailsjabloonklasse geconfigureerd.",
+ "Invalid footer URL — use an http:// or https:// address.": "Ongeldige URL in de voettekst — gebruik een http:// of https://-adres.",
+ "Failed to save email template settings.": "Opslaan van e-mailsjabloon-instellingen mislukt.",
+ "Accessibility statement": "Toegankelijkheidsverklaring",
+ "Privacy statement": "Privacyverklaring",
+ "Alias chain too deep (more than 10 hops)": "Alias-keten te diep (meer dan 10 stappen)",
+ "Alias cycle detected": "Alias-cyclus gedetecteerd",
+ "Alias target does not exist": "Alias-doel bestaat niet",
+ "Another token already maps to this target": "Een ander token verwijst al naar dit doel",
+ "No $type could be resolved (never guessed)": "Geen $type kon worden bepaald (nooit geraden)",
+ "Not part of the --nldesign-* vocabulary": "Geen onderdeel van de --nldesign-* woordenschat",
+ "Package version: {version}": "Pakketversie: {version}",
+ "Unsupported color space": "Niet-ondersteunde kleurruimte",
+ "Unsupported value shape": "Niet-ondersteunde waardevorm",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "Geen lettertypebestand geüpload.",
+ "Font file exceeds the 2 MB size limit.": "Lettertypebestand overschrijdt de limiet van 2 MB.",
+ "Could not read the uploaded file.": "Kon het geüploade bestand niet lezen.",
+ "Font not found.": "Lettertype niet gevonden.",
+ "Custom fonts": "Aangepaste lettertypen",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Upload alleen lettertypen waarvoor uw organisatie een licentie heeft om ze zelf te hosten. De verantwoordelijkheid voor de licentie ligt bij degene die uploadt.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload een WOFF2-lettertypebestand (max. 2 MB, max. 20 lettertypen) en wijs het toe aan de rol hoofdtekst of kop. Geüploade lettertypen worden zelf gehost — geen externe verzoeken.",
+ "Font display name": "Weergavenaam lettertype",
+ "e.g. Rijks Sans": "bijv. Rijks Sans",
+ "Font role": "Rol lettertype",
+ "Body text": "Hoofdtekst",
+ "Heading": "Kop",
+ "Choose font and upload": "Lettertype kiezen en uploaden",
+ "Loading fonts…": "Lettertypen laden…",
+ "Enter a font display name first.": "Voer eerst een weergavenaam voor het lettertype in.",
+ "Font uploaded. Reload the page to apply it.": "Lettertype geüpload. Herlaad de pagina om het toe te passen.",
+ "Failed to load fonts.": "Laden van lettertypen mislukt.",
+ "No fonts uploaded yet.": "Nog geen lettertypen geüpload.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Het lettertype \"{name}\" verwijderen? Pagina's die het gebruiken vallen terug op Fira Sans.",
+ "Delete font": "Lettertype verwijderen",
+ "Font deleted. Reload the page to refresh the styling.": "Lettertype verwijderd. Herlaad de pagina om de opmaak te vernieuwen.",
+ "Failed to delete font.": "Verwijderen van lettertype mislukt.",
+ "Upstream token updates": "Upstream token-updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Controleer optioneel eenmaal per dag of de upstream NL Design System-thema's nieuwe tokens hebben. Dit is het enige uitgaande netwerkverzoek van deze app; het contacteert api.github.com en past nooit automatisch iets toe — u beoordeelt en past updates altijd zelf toe.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Dagelijks controleren op upstream token-updates (contacteert api.github.com)",
+ "Last checked: {when}": "Laatst gecontroleerd: {when}",
+ "Not checked yet.": "Nog niet gecontroleerd.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} heeft upstream update {version} — beoordelen & toepassen",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets hebben updates ({version}) — beoordelen & toepassen",
+ "Dismiss": "Negeren",
+ "Upstream token update checks enabled.": "Controle op upstream token-updates ingeschakeld.",
+ "Upstream token update checks disabled.": "Controle op upstream token-updates uitgeschakeld.",
+ "Configuration bundle (OTAP promotion)": "Configuratiebundel (OTAP-promotie)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download of upload de volledige NL Design-configuratie als één JSON-bestand — de actieve tokenset, schakelaars, per-app uitsluitingen, token-overrides, aangepaste tokensets, e-mailvoettekst en de upstream-updateschakelaar. Gebruik dit om configuratie identiek te promoveren tussen ontwikkel-, test-, acceptatie- en productieomgevingen (OTAP). Dit is anders dan de overrides-only download hierboven.",
+ "Download configuration": "Configuratie downloaden",
+ "Upload configuration": "Configuratie uploaden",
+ "Configuration imported successfully. Reloading…": "Configuratie succesvol geïmporteerd. Pagina wordt herladen…",
+ "Configuration imported successfully.": "Configuratie succesvol geïmporteerd.",
+ "Import failed — nothing was applied:": "Import mislukt — er is niets toegepast:",
+ "Configuration import failed.": "Importeren van configuratie mislukt.",
+ "Discard": "Verwerpen",
+ "Failed to discard theme preview.": "Verwerpen van thema-voorbeeld mislukt.",
+ "Failed to start theme preview.": "Starten van thema-voorbeeld mislukt.",
+ "Preview: {name} — this is only visible to you": "Voorbeeld: {name} — alleen zichtbaar voor u",
+ "Publish": "Publiceren",
+ "Theme published instance-wide. Reload the page to see changes.": "Thema instantiebreed gepubliceerd. Herlaad de pagina om de wijzigingen te zien.",
+ "Preview in my session": "Voorbeeld bekijken in mijn sessie",
+ "Previewing \"{name}\" in your session only.": "U bekijkt een voorbeeld van \"{name}\", alleen zichtbaar voor u.",
+ "Dark logo": "Donker logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "Deze tokenset bevat ook een logo voor een donkere ondergrond. Nextcloud zelf heeft geen apart logo-slot voor donkere modus, dus dit logo wordt toegepast via nldesign's eigen donkeremodus-stylesheet, niet gesynchroniseerd naar Nextcloud-theming.",
+ "Enable dark mode variants for the active token set": "Donkeremodusvarianten inschakelen voor de actieve tokenset",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "Indien ingeschakeld volgt een gegenereerd donkeremodus-stylesheet het licht-, donker- of systeemthema dat Nextcloud al gebruikt — het wijzigt nooit uw Nextcloud-themakeuze zelf.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is het officiële lettertype van de Franse staat en is voorbehouden aan Franse staatsinstellingen. Schakel dit alleen in als uw organisatie een Franse staatsinstelling is. Anders wordt Inter gebruikt.",
+ "Our organisation is a French State agency (administration de l'État)": "Onze organisatie is een Franse staatsinstelling (administration de l'État)",
+ "Active icon pack": "Actieve iconenset",
+ "Nextcloud stock icons (no custom pack)": "Standaard Nextcloud-iconen (geen aangepaste set)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Bron: beheerdersoverschrijving (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Bron: het actieve designsysteem",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "Dit wijzigt alleen de iconenassets die nldesign zelf levert via imagePath. Het vervangt niet de ingebouwde kern-iconen van Nextcloud, afgezien van wat de CSS van het actieve thema al herstylet.",
+ "Saved. Reload to see the change.": "Opgeslagen. Herlaad de pagina om de wijziging te zien."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/pl.js b/l10n/pl.js
new file mode 100644
index 000000000..c2cb2834c
--- /dev/null
+++ b/l10n/pl.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Wybór koloru dla {label}",
+ "NL design system theme": "Motyw NL Design System",
+ "Documentation": "Dokumentacja",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Wybierz zestaw tokenów projektowych holenderskiego rządu jako podstawę lub dostosuj poniżej poszczególne tokeny CSS Nextcloud.",
+ "Design token set": "Zestaw tokenów projektowych",
+ "Hide Nextcloud slogan/payoff on login page": "Ukryj slogan Nextcloud na stronie logowania",
+ "Show text labels in app menu (hide icons)": "Pokaż etykiety tekstowe w menu aplikacji (ukryj ikony)",
+ "Preview": "Podgląd",
+ "Primary button": "Przycisk główny",
+ "Secondary button": "Przycisk dodatkowy",
+ "Loading token editor…": "Ładowanie edytora tokenów…",
+ "Learn more about NL design system": "Dowiedz się więcej o NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Motyw został pomyślnie zaktualizowany. Odśwież stronę, aby zobaczyć zmiany.",
+ "Failed to update theme.": "Nie udało się zaktualizować motywu.",
+ "Primary color": "Kolor główny",
+ "Background color": "Kolor tła",
+ "Logo": "Logo",
+ "(custom logo)": "(niestandardowe logo)",
+ "(default)": "(domyślny)",
+ "Background image": "Obraz tła",
+ "(custom)": "(niestandardowy)",
+ "Update Nextcloud theming to match {name}?": "Zaktualizować motyw Nextcloud, aby pasował do {name}?",
+ "Current": "Bieżący",
+ "Proposed": "Proponowany",
+ "Setting": "Ustawienie",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Wyświetlane są tylko wartości, które się różnią. Elementy bez proponowanej wartości pozostają niezmienione.",
+ "Cancel": "Anuluj",
+ "Update theming": "Zaktualizuj motyw",
+ "Updating...": "Aktualizowanie...",
+ "Nextcloud theming updated successfully. reloading page...": "Motyw Nextcloud został pomyślnie zaktualizowany. Ponowne ładowanie strony...",
+ "Failed to update Nextcloud theming:": "Nie udało się zaktualizować motywu Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Nie udało się zaktualizować motywu Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Ustawienie zostało pomyślnie zapisane. Odśwież stronę logowania, aby zobaczyć zmiany.",
+ "Failed to save setting.": "Nie udało się zapisać ustawienia.",
+ "Setting saved successfully. reload the page to see changes.": "Ustawienie zostało pomyślnie zapisane. Odśwież stronę, aby zobaczyć zmiany.",
+ "Could not load token editor.": "Nie można załadować edytora tokenów.",
+ "Custom token overrides": "Niestandardowe nadpisania tokenów",
+ "Download": "Pobierz",
+ "Upload": "Prześlij",
+ "Save overrides": "Zapisz nadpisania",
+ "Custom value": "Wartość niestandardowa",
+ "Reset to default": "Przywróć domyślne",
+ "Unsaved changes": "Niezapisane zmiany",
+ "Token overrides saved.": "Nadpisania tokenów zostały zapisane.",
+ "Failed to save overrides:": "Nie udało się zapisać nadpisań: ",
+ "Failed to save overrides.": "Nie udało się zapisać nadpisań.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokenów zaimportowano, {skipped} tokenów pominięto (nierozpoznane)",
+ "Import failed:": "Import nie powiódł się: ",
+ "Import failed.": "Import nie powiódł się.",
+ "Apply token set: {name}": "Zastosuj zestaw tokenów: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Te wartości uległyby zmianie. Zaznacz, które zastosować do swoich niestandardowych nadpisań.",
+ "Select all": "Zaznacz wszystko",
+ "Deselect all": "Odznacz wszystko",
+ "Token": "Token",
+ "New": "Nowy",
+ "Apply selected": "Zastosuj zaznaczone",
+ "Applying…": "Stosowanie…",
+ "Token overrides applied.": "Nadpisania tokenów zostały zastosowane.",
+ "Failed to apply token set.": "Nie udało się zastosować zestawu tokenów.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/pt.js b/l10n/pt.js
new file mode 100644
index 000000000..2ec92ff17
--- /dev/null
+++ b/l10n/pt.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Seletor de cor para {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Documentação",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Selecione um conjunto de tokens de design do governo neerlandês como base ou personalize tokens CSS individuais do Nextcloud abaixo.",
+ "Design token set": "Conjunto de tokens de design",
+ "Hide Nextcloud slogan/payoff on login page": "Ocultar o slogan do Nextcloud na página de início de sessão",
+ "Show text labels in app menu (hide icons)": "Mostrar rótulos de texto no menu de aplicações (ocultar ícones)",
+ "Preview": "Pré-visualização",
+ "Primary button": "Botão principal",
+ "Secondary button": "Botão secundário",
+ "Loading token editor…": "A carregar o editor de tokens…",
+ "Learn more about NL design system": "Saiba mais sobre o NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema atualizado com sucesso. Recarregue a página para ver as alterações.",
+ "Failed to update theme.": "Falha ao atualizar o tema.",
+ "Primary color": "Cor principal",
+ "Background color": "Cor de fundo",
+ "Logo": "Logótipo",
+ "(custom logo)": "(logótipo personalizado)",
+ "(default)": "(predefinição)",
+ "Background image": "Imagem de fundo",
+ "(custom)": "(personalizado)",
+ "Update Nextcloud theming to match {name}?": "Atualizar o tema do Nextcloud para corresponder a {name}?",
+ "Current": "Atual",
+ "Proposed": "Proposto",
+ "Setting": "Definição",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Apenas são mostrados os valores que diferem. Os itens sem um valor proposto permanecem inalterados.",
+ "Cancel": "Cancelar",
+ "Update theming": "Atualizar tema",
+ "Updating...": "A atualizar...",
+ "Nextcloud theming updated successfully. reloading page...": "Tema do Nextcloud atualizado com sucesso. A recarregar a página...",
+ "Failed to update Nextcloud theming:": "Falha ao atualizar o tema do Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Falha ao atualizar o tema do Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Definição guardada com sucesso. Recarregue a página de início de sessão para ver as alterações.",
+ "Failed to save setting.": "Falha ao guardar a definição.",
+ "Setting saved successfully. reload the page to see changes.": "Definição guardada com sucesso. Recarregue a página para ver as alterações.",
+ "Could not load token editor.": "Não foi possível carregar o editor de tokens.",
+ "Custom token overrides": "Substituições de tokens personalizadas",
+ "Download": "Transferir",
+ "Upload": "Carregar",
+ "Save overrides": "Guardar substituições",
+ "Custom value": "Valor personalizado",
+ "Reset to default": "Repor predefinição",
+ "Unsaved changes": "Alterações não guardadas",
+ "Token overrides saved.": "Substituições de tokens guardadas.",
+ "Failed to save overrides:": "Falha ao guardar as substituições: ",
+ "Failed to save overrides.": "Falha ao guardar as substituições.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens importados, {skipped} tokens ignorados (não reconhecidos)",
+ "Import failed:": "Falha na importação: ",
+ "Import failed.": "Falha na importação.",
+ "Apply token set: {name}": "Aplicar conjunto de tokens: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Estes valores seriam alterados. Selecione quais aplicar às suas substituições personalizadas.",
+ "Select all": "Selecionar tudo",
+ "Deselect all": "Desmarcar tudo",
+ "Token": "Token",
+ "New": "Novo",
+ "Apply selected": "Aplicar selecionados",
+ "Applying…": "A aplicar…",
+ "Token overrides applied.": "Substituições de tokens aplicadas.",
+ "Failed to apply token set.": "Falha ao aplicar o conjunto de tokens.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/rm.js b/l10n/rm.js
new file mode 100644
index 000000000..4d1af1301
--- /dev/null
+++ b/l10n/rm.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Selecziunader da colurs per {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Documentaziun",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Tscherna in set da tokens da design dal guvern ollandais sco basa u persunalisescha tokens CSS singuls da Nextcloud sutvart.",
+ "Design token set": "Set da tokens da design",
+ "Hide Nextcloud slogan/payoff on login page": "Zuppentar il slogan da Nextcloud sin la pagina d'annunzia",
+ "Show text labels in app menu (hide icons)": "Mussar etichettas da text en il menu d'applicaziuns (zuppentar ils simbols)",
+ "Preview": "Prevista",
+ "Primary button": "Buttun primar",
+ "Secondary button": "Buttun secundar",
+ "Loading token editor…": "Chargiar l'editur da tokens …",
+ "Learn more about NL design system": "Ulteriuras infurmaziuns davart NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Il tema è vegnì actualisà cun success. Rechargia la pagina per vesair las midadas.",
+ "Failed to update theme.": "Betg reussì d'actualisar il tema.",
+ "Primary color": "Colur primara",
+ "Background color": "Colur dal fund",
+ "Logo": "Logo",
+ "(custom logo)": "(logo persunalisà)",
+ "(default)": "(standard)",
+ "Background image": "Maletg dal fund",
+ "(custom)": "(persunalisà)",
+ "Update Nextcloud theming to match {name}?": "Actualisar il design da Nextcloud per correspunder a {name}?",
+ "Current": "Actual",
+ "Proposed": "Proponì",
+ "Setting": "Configuraziun",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Mo las valurs che sa differenzieschan vegnan mussadas. Elements senza ina valur proponida restan immïdads.",
+ "Cancel": "Interrumper",
+ "Update theming": "Actualisar il design",
+ "Updating...": "Actualisar ...",
+ "Nextcloud theming updated successfully. reloading page...": "Il design da Nextcloud è vegnì actualisà cun success. Rechargiar la pagina ...",
+ "Failed to update Nextcloud theming:": "Betg reussì d'actualisar il design da Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Betg reussì d'actualisar il design da Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "La configuraziun è vegnida memorisada cun success. Rechargia la pagina d'annunzia per vesair las midadas.",
+ "Failed to save setting.": "Betg reussì da memorisar la configuraziun.",
+ "Setting saved successfully. reload the page to see changes.": "La configuraziun è vegnida memorisada cun success. Rechargia la pagina per vesair las midadas.",
+ "Could not load token editor.": "Impussibel da chargiar l'editur da tokens.",
+ "Custom token overrides": "Surscrividas da tokens persunalisadas",
+ "Download": "Telechargiar",
+ "Upload": "Transferir",
+ "Save overrides": "Memorisar las surscrividas",
+ "Custom value": "Valur persunalisada",
+ "Reset to default": "Reampuntar als standards",
+ "Unsaved changes": "Midadas betg memorisadas",
+ "Token overrides saved.": "Las surscrividas da tokens èn vegnidas memorisadas.",
+ "Failed to save overrides:": "Betg reussì da memorisar las surscrividas: ",
+ "Failed to save overrides.": "Betg reussì da memorisar las surscrividas.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens importads, {skipped} tokens sursavlads (betg renconuschids)",
+ "Import failed:": "L'import è fallì: ",
+ "Import failed.": "L'import è fallì.",
+ "Apply token set: {name}": "Applitgar il set da tokens: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Questas valurs midassan. Marchescha tge ch'ti vuls applitgar a tias surscrividas persunalisadas.",
+ "Select all": "Tscherner tut",
+ "Deselect all": "Deselecziunar tut",
+ "Token": "Token",
+ "New": "Nov",
+ "Apply selected": "Applitgar la selecziun",
+ "Applying…": "Applitgar …",
+ "Token overrides applied.": "Las surscrividas da tokens èn vegnidas applitgadas.",
+ "Failed to apply token set.": "Betg reussì d'applitgar il set da tokens.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/ro.js b/l10n/ro.js
new file mode 100644
index 000000000..b4249cd18
--- /dev/null
+++ b/l10n/ro.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Selector de culoare pentru {label}",
+ "NL design system theme": "Temă NL Design System",
+ "Documentation": "Documentație",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Selectați un set de jetoane de design al guvernului neerlandez ca bază sau personalizați mai jos jetoane CSS individuale Nextcloud.",
+ "Design token set": "Set de jetoane de design",
+ "Hide Nextcloud slogan/payoff on login page": "Ascundeți sloganul Nextcloud pe pagina de autentificare",
+ "Show text labels in app menu (hide icons)": "Afișați etichete text în meniul aplicațiilor (ascundeți pictogramele)",
+ "Preview": "Previzualizare",
+ "Primary button": "Buton principal",
+ "Secondary button": "Buton secundar",
+ "Loading token editor…": "Se încarcă editorul de jetoane…",
+ "Learn more about NL design system": "Aflați mai multe despre NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema a fost actualizată cu succes. Reîncărcați pagina pentru a vedea modificările.",
+ "Failed to update theme.": "Actualizarea temei a eșuat.",
+ "Primary color": "Culoare principală",
+ "Background color": "Culoare de fundal",
+ "Logo": "Siglă",
+ "(custom logo)": "(siglă personalizată)",
+ "(default)": "(implicit)",
+ "Background image": "Imagine de fundal",
+ "(custom)": "(personalizat)",
+ "Update Nextcloud theming to match {name}?": "Actualizați tema Nextcloud pentru a se potrivi cu {name}?",
+ "Current": "Curent",
+ "Proposed": "Propus",
+ "Setting": "Setare",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Sunt afișate doar valorile care diferă. Elementele fără o valoare propusă rămân neschimbate.",
+ "Cancel": "Anulează",
+ "Update theming": "Actualizează tema",
+ "Updating...": "Se actualizează...",
+ "Nextcloud theming updated successfully. reloading page...": "Tema Nextcloud a fost actualizată cu succes. Se reîncarcă pagina...",
+ "Failed to update Nextcloud theming:": "Actualizarea temei Nextcloud a eșuat: ",
+ "Failed to update Nextcloud theming.": "Actualizarea temei Nextcloud a eșuat.",
+ "Setting saved successfully. reload the login page to see changes.": "Setarea a fost salvată cu succes. Reîncărcați pagina de autentificare pentru a vedea modificările.",
+ "Failed to save setting.": "Salvarea setării a eșuat.",
+ "Setting saved successfully. reload the page to see changes.": "Setarea a fost salvată cu succes. Reîncărcați pagina pentru a vedea modificările.",
+ "Could not load token editor.": "Editorul de jetoane nu a putut fi încărcat.",
+ "Custom token overrides": "Suprascrieri personalizate de jetoane",
+ "Download": "Descarcă",
+ "Upload": "Încarcă",
+ "Save overrides": "Salvează suprascrierile",
+ "Custom value": "Valoare personalizată",
+ "Reset to default": "Resetează la implicit",
+ "Unsaved changes": "Modificări nesalvate",
+ "Token overrides saved.": "Suprascrierile de jetoane au fost salvate.",
+ "Failed to save overrides:": "Salvarea suprascrierilor a eșuat: ",
+ "Failed to save overrides.": "Salvarea suprascrierilor a eșuat.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} jetoane importate, {skipped} jetoane omise (nerecunoscute)",
+ "Import failed:": "Importul a eșuat: ",
+ "Import failed.": "Importul a eșuat.",
+ "Apply token set: {name}": "Aplică setul de jetoane: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Aceste valori s-ar modifica. Bifați pe care să le aplicați suprascrierilor personalizate.",
+ "Select all": "Selectează tot",
+ "Deselect all": "Deselectează tot",
+ "Token": "Jeton",
+ "New": "Nou",
+ "Apply selected": "Aplică selecția",
+ "Applying…": "Se aplică…",
+ "Token overrides applied.": "Suprascrierile de jetoane au fost aplicate.",
+ "Failed to apply token set.": "Aplicarea setului de jetoane a eșuat.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/ru.js b/l10n/ru.js
new file mode 100644
index 000000000..ad8db8c27
--- /dev/null
+++ b/l10n/ru.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Выбор цвета для {label}",
+ "NL design system theme": "Тема NL Design System",
+ "Documentation": "Документация",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Выберите набор дизайн-токенов правительства Нидерландов в качестве основы или настройте отдельные CSS-токены Nextcloud ниже.",
+ "Design token set": "Набор дизайн-токенов",
+ "Hide Nextcloud slogan/payoff on login page": "Скрыть слоган Nextcloud на странице входа",
+ "Show text labels in app menu (hide icons)": "Показывать текстовые подписи в меню приложений (скрыть значки)",
+ "Preview": "Предпросмотр",
+ "Primary button": "Основная кнопка",
+ "Secondary button": "Дополнительная кнопка",
+ "Loading token editor…": "Загрузка редактора токенов …",
+ "Learn more about NL design system": "Подробнее о NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Тема успешно обновлена. Перезагрузите страницу, чтобы увидеть изменения.",
+ "Failed to update theme.": "Не удалось обновить тему.",
+ "Primary color": "Основной цвет",
+ "Background color": "Цвет фона",
+ "Logo": "Логотип",
+ "(custom logo)": "(пользовательский логотип)",
+ "(default)": "(по умолчанию)",
+ "Background image": "Фоновое изображение",
+ "(custom)": "(пользовательское)",
+ "Update Nextcloud theming to match {name}?": "Обновить оформление Nextcloud в соответствии с {name}?",
+ "Current": "Текущее",
+ "Proposed": "Предлагаемое",
+ "Setting": "Параметр",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Показаны только различающиеся значения. Элементы без предлагаемого значения остаются без изменений.",
+ "Cancel": "Отмена",
+ "Update theming": "Обновить оформление",
+ "Updating...": "Обновление ...",
+ "Nextcloud theming updated successfully. reloading page...": "Оформление Nextcloud успешно обновлено. Перезагрузка страницы ...",
+ "Failed to update Nextcloud theming:": "Не удалось обновить оформление Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Не удалось обновить оформление Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Параметр успешно сохранён. Перезагрузите страницу входа, чтобы увидеть изменения.",
+ "Failed to save setting.": "Не удалось сохранить параметр.",
+ "Setting saved successfully. reload the page to see changes.": "Параметр успешно сохранён. Перезагрузите страницу, чтобы увидеть изменения.",
+ "Could not load token editor.": "Не удалось загрузить редактор токенов.",
+ "Custom token overrides": "Пользовательские переопределения токенов",
+ "Download": "Скачать",
+ "Upload": "Загрузить",
+ "Save overrides": "Сохранить переопределения",
+ "Custom value": "Пользовательское значение",
+ "Reset to default": "Сбросить до значения по умолчанию",
+ "Unsaved changes": "Несохранённые изменения",
+ "Token overrides saved.": "Переопределения токенов сохранены.",
+ "Failed to save overrides:": "Не удалось сохранить переопределения: ",
+ "Failed to save overrides.": "Не удалось сохранить переопределения.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} токенов импортировано, {skipped} токенов пропущено (не распознаны)",
+ "Import failed:": "Не удалось импортировать: ",
+ "Import failed.": "Не удалось импортировать.",
+ "Apply token set: {name}": "Применить набор токенов: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Эти значения изменятся. Отметьте, какие из них применить к вашим пользовательским переопределениям.",
+ "Select all": "Выбрать все",
+ "Deselect all": "Снять все выделения",
+ "Token": "Токен",
+ "New": "Новый",
+ "Apply selected": "Применить выбранное",
+ "Applying…": "Применение …",
+ "Token overrides applied.": "Переопределения токенов применены.",
+ "Failed to apply token set.": "Не удалось применить набор токенов.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/sk.js b/l10n/sk.js
new file mode 100644
index 000000000..210b82a10
--- /dev/null
+++ b/l10n/sk.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Výber farby pre {label}",
+ "NL design system theme": "Motív NL Design System",
+ "Documentation": "Dokumentácia",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Vyberte sadu návrhových tokenov holandskej vlády ako základ alebo nižšie prispôsobte jednotlivé CSS tokeny Nextcloudu.",
+ "Design token set": "Sada návrhových tokenov",
+ "Hide Nextcloud slogan/payoff on login page": "Skryť slogan Nextcloudu na prihlasovacej stránke",
+ "Show text labels in app menu (hide icons)": "Zobraziť textové menovky v ponuke aplikácií (skryť ikony)",
+ "Preview": "Náhľad",
+ "Primary button": "Primárne tlačidlo",
+ "Secondary button": "Sekundárne tlačidlo",
+ "Loading token editor…": "Načítava sa editor tokenov…",
+ "Learn more about NL design system": "Získajte viac informácií o NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Motív bol úspešne aktualizovaný. Znova načítajte stránku, aby ste videli zmeny.",
+ "Failed to update theme.": "Aktualizácia motívu zlyhala.",
+ "Primary color": "Primárna farba",
+ "Background color": "Farba pozadia",
+ "Logo": "Logo",
+ "(custom logo)": "(vlastné logo)",
+ "(default)": "(predvolené)",
+ "Background image": "Obrázok pozadia",
+ "(custom)": "(vlastné)",
+ "Update Nextcloud theming to match {name}?": "Aktualizovať motív Nextcloudu tak, aby zodpovedal {name}?",
+ "Current": "Aktuálne",
+ "Proposed": "Navrhované",
+ "Setting": "Nastavenie",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Zobrazujú sa iba hodnoty, ktoré sa líšia. Položky bez navrhovanej hodnoty zostávajú nezmenené.",
+ "Cancel": "Zrušiť",
+ "Update theming": "Aktualizovať motív",
+ "Updating...": "Aktualizuje sa...",
+ "Nextcloud theming updated successfully. reloading page...": "Motív Nextcloudu bol úspešne aktualizovaný. Znova sa načítava stránka...",
+ "Failed to update Nextcloud theming:": "Aktualizácia motívu Nextcloudu zlyhala: ",
+ "Failed to update Nextcloud theming.": "Aktualizácia motívu Nextcloudu zlyhala.",
+ "Setting saved successfully. reload the login page to see changes.": "Nastavenie bolo úspešne uložené. Znova načítajte prihlasovaciu stránku, aby ste videli zmeny.",
+ "Failed to save setting.": "Uloženie nastavenia zlyhalo.",
+ "Setting saved successfully. reload the page to see changes.": "Nastavenie bolo úspešne uložené. Znova načítajte stránku, aby ste videli zmeny.",
+ "Could not load token editor.": "Editor tokenov sa nepodarilo načítať.",
+ "Custom token overrides": "Vlastné prepísania tokenov",
+ "Download": "Stiahnuť",
+ "Upload": "Nahrať",
+ "Save overrides": "Uložiť prepísania",
+ "Custom value": "Vlastná hodnota",
+ "Reset to default": "Obnoviť predvolené",
+ "Unsaved changes": "Neuložené zmeny",
+ "Token overrides saved.": "Prepísania tokenov boli uložené.",
+ "Failed to save overrides:": "Uloženie prepísaní zlyhalo: ",
+ "Failed to save overrides.": "Uloženie prepísaní zlyhalo.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokenov importovaných, {skipped} tokenov preskočených (nerozpoznané)",
+ "Import failed:": "Import zlyhal: ",
+ "Import failed.": "Import zlyhal.",
+ "Apply token set: {name}": "Použiť sadu tokenov: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Tieto hodnoty by sa zmenili. Začiarknite, ktoré z nich použiť na vaše vlastné prepísania.",
+ "Select all": "Vybrať všetko",
+ "Deselect all": "Zrušiť výber všetkého",
+ "Token": "Token",
+ "New": "Nové",
+ "Apply selected": "Použiť vybrané",
+ "Applying…": "Používa sa…",
+ "Token overrides applied.": "Prepísania tokenov boli použité.",
+ "Failed to apply token set.": "Použitie sady tokenov zlyhalo.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/sl.js b/l10n/sl.js
new file mode 100644
index 000000000..c6198c7b5
--- /dev/null
+++ b/l10n/sl.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Izbirnik barv za {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Dokumentacija",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Izberite nabor oblikovalskih žetonov nizozemske vlade kot osnovo ali spodaj prilagodite posamezne žetone CSS za Nextcloud.",
+ "Design token set": "Nabor oblikovalskih žetonov",
+ "Hide Nextcloud slogan/payoff on login page": "Skrij slogan Nextclouda na prijavni strani",
+ "Show text labels in app menu (hide icons)": "Pokaži besedilne oznake v meniju aplikacij (skrij ikone)",
+ "Preview": "Predogled",
+ "Primary button": "Primarni gumb",
+ "Secondary button": "Sekundarni gumb",
+ "Loading token editor…": "Nalaganje urejevalnika žetonov …",
+ "Learn more about NL design system": "Več o NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema je bila uspešno posodobljena. Znova naložite stran za prikaz sprememb.",
+ "Failed to update theme.": "Posodobitev teme ni uspela.",
+ "Primary color": "Primarna barva",
+ "Background color": "Barva ozadja",
+ "Logo": "Logotip",
+ "(custom logo)": "(logotip po meri)",
+ "(default)": "(privzeto)",
+ "Background image": "Slika ozadja",
+ "(custom)": "(po meri)",
+ "Update Nextcloud theming to match {name}?": "Posodobim tematiko Nextclouda, da se ujema z {name}?",
+ "Current": "Trenutno",
+ "Proposed": "Predlagano",
+ "Setting": "Nastavitev",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Prikazane so samo vrednosti, ki se razlikujejo. Elementi brez predlagane vrednosti ostanejo nespremenjeni.",
+ "Cancel": "Prekliči",
+ "Update theming": "Posodobi tematiko",
+ "Updating...": "Posodabljanje ...",
+ "Nextcloud theming updated successfully. reloading page...": "Tematika Nextclouda je bila uspešno posodobljena. Ponovno nalaganje strani ...",
+ "Failed to update Nextcloud theming:": "Posodobitev tematike Nextclouda ni uspela: ",
+ "Failed to update Nextcloud theming.": "Posodobitev tematike Nextclouda ni uspela.",
+ "Setting saved successfully. reload the login page to see changes.": "Nastavitev je bila uspešno shranjena. Znova naložite prijavno stran za prikaz sprememb.",
+ "Failed to save setting.": "Shranjevanje nastavitve ni uspelo.",
+ "Setting saved successfully. reload the page to see changes.": "Nastavitev je bila uspešno shranjena. Znova naložite stran za prikaz sprememb.",
+ "Could not load token editor.": "Urejevalnika žetonov ni bilo mogoče naložiti.",
+ "Custom token overrides": "Preglasitve žetonov po meri",
+ "Download": "Prenesi",
+ "Upload": "Naloži",
+ "Save overrides": "Shrani preglasitve",
+ "Custom value": "Vrednost po meri",
+ "Reset to default": "Ponastavi na privzeto",
+ "Unsaved changes": "Neshranjene spremembe",
+ "Token overrides saved.": "Preglasitve žetonov so shranjene.",
+ "Failed to save overrides:": "Shranjevanje preglasitev ni uspelo: ",
+ "Failed to save overrides.": "Shranjevanje preglasitev ni uspelo.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} žetonov uvoženih, {skipped} žetonov preskočenih (ni prepoznano)",
+ "Import failed:": "Uvoz ni uspel: ",
+ "Import failed.": "Uvoz ni uspel.",
+ "Apply token set: {name}": "Uporabi nabor žetonov: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Te vrednosti bi se spremenile. Označite, katere želite uporabiti za svoje preglasitve po meri.",
+ "Select all": "Izberi vse",
+ "Deselect all": "Počisti izbor",
+ "Token": "Žeton",
+ "New": "Novo",
+ "Apply selected": "Uporabi izbrano",
+ "Applying…": "Uporabljanje …",
+ "Token overrides applied.": "Preglasitve žetonov so uporabljene.",
+ "Failed to apply token set.": "Uporaba nabora žetonov ni uspela.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/sq.js b/l10n/sq.js
new file mode 100644
index 000000000..58574e34d
--- /dev/null
+++ b/l10n/sq.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Zgjedhës ngjyrash për {label}",
+ "NL design system theme": "Tema NL Design System",
+ "Documentation": "Dokumentim",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Zgjidhni një grup tokenash dizajni të qeverisë holandeze si bazë, ose përshtatni tokenat individuale CSS të Nextcloud më poshtë.",
+ "Design token set": "Grup tokenash dizajni",
+ "Hide Nextcloud slogan/payoff on login page": "Fshih sloganin e Nextcloud në faqen e hyrjes",
+ "Show text labels in app menu (hide icons)": "Shfaq etiketat me tekst në menynë e aplikacioneve (fshih ikonat)",
+ "Preview": "Paraparje",
+ "Primary button": "Buton parësor",
+ "Secondary button": "Buton dytësor",
+ "Loading token editor…": "Po ngarkohet redaktuesi i tokenave …",
+ "Learn more about NL design system": "Mësoni më shumë rreth NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Tema u përditësua me sukses. Ringarkoni faqen për të parë ndryshimet.",
+ "Failed to update theme.": "Përditësimi i temës dështoi.",
+ "Primary color": "Ngjyra parësore",
+ "Background color": "Ngjyra e sfondit",
+ "Logo": "Logoja",
+ "(custom logo)": "(logo e personalizuar)",
+ "(default)": "(parazgjedhur)",
+ "Background image": "Imazhi i sfondit",
+ "(custom)": "(e personalizuar)",
+ "Update Nextcloud theming to match {name}?": "Të përditësohet tema e Nextcloud që të përputhet me {name}?",
+ "Current": "Aktuale",
+ "Proposed": "E propozuar",
+ "Setting": "Cilësim",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Shfaqen vetëm vlerat që ndryshojnë. Artikujt pa një vlerë të propozuar lihen të pandryshuar.",
+ "Cancel": "Anulo",
+ "Update theming": "Përditëso temën",
+ "Updating...": "Po përditësohet ...",
+ "Nextcloud theming updated successfully. reloading page...": "Tema e Nextcloud u përditësua me sukses. Po ringarkohet faqja ...",
+ "Failed to update Nextcloud theming:": "Përditësimi i temës së Nextcloud dështoi: ",
+ "Failed to update Nextcloud theming.": "Përditësimi i temës së Nextcloud dështoi.",
+ "Setting saved successfully. reload the login page to see changes.": "Cilësimi u ruajt me sukses. Ringarkoni faqen e hyrjes për të parë ndryshimet.",
+ "Failed to save setting.": "Ruajtja e cilësimit dështoi.",
+ "Setting saved successfully. reload the page to see changes.": "Cilësimi u ruajt me sukses. Ringarkoni faqen për të parë ndryshimet.",
+ "Could not load token editor.": "Nuk u arrit të ngarkohej redaktuesi i tokenave.",
+ "Custom token overrides": "Mbishkrime tokenash të personalizuara",
+ "Download": "Shkarko",
+ "Upload": "Ngarko",
+ "Save overrides": "Ruaj mbishkrimet",
+ "Custom value": "Vlerë e personalizuar",
+ "Reset to default": "Rivendos në parazgjedhje",
+ "Unsaved changes": "Ndryshime të paruajtura",
+ "Token overrides saved.": "Mbishkrimet e tokenave u ruajtën.",
+ "Failed to save overrides:": "Ruajtja e mbishkrimeve dështoi: ",
+ "Failed to save overrides.": "Ruajtja e mbishkrimeve dështoi.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokena u importuan, {skipped} tokena u anashkaluan (nuk u njohën)",
+ "Import failed:": "Importimi dështoi: ",
+ "Import failed.": "Importimi dështoi.",
+ "Apply token set: {name}": "Zbato grupin e tokenave: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Këto vlera do të ndryshonin. Shënoni cilat dëshironi t'i zbatoni te mbishkrimet tuaja të personalizuara.",
+ "Select all": "Zgjidh të gjitha",
+ "Deselect all": "Hiq zgjedhjen e të gjithave",
+ "Token": "Token",
+ "New": "I ri",
+ "Apply selected": "Zbato të zgjedhurat",
+ "Applying…": "Po zbatohet …",
+ "Token overrides applied.": "Mbishkrimet e tokenave u zbatuan.",
+ "Failed to apply token set.": "Zbatimi i grupit të tokenave dështoi.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/sr.js b/l10n/sr.js
new file mode 100644
index 000000000..9aa7b84a2
--- /dev/null
+++ b/l10n/sr.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Бирач боја за {label}",
+ "NL design system theme": "Тема NL Design System",
+ "Documentation": "Документација",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Изаберите скуп дизајнерских токена холандске владе као основу, или прилагодите појединачне Nextcloud CSS токене испод.",
+ "Design token set": "Скуп дизајнерских токена",
+ "Hide Nextcloud slogan/payoff on login page": "Сакриј Nextcloud слоган на страници за пријаву",
+ "Show text labels in app menu (hide icons)": "Прикажи текстуалне ознаке у менију апликација (сакриј иконе)",
+ "Preview": "Преглед",
+ "Primary button": "Примарно дугме",
+ "Secondary button": "Секундарно дугме",
+ "Loading token editor…": "Учитавање уређивача токена …",
+ "Learn more about NL design system": "Сазнајте више о NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Тема је успешно ажурирана. Поново учитајте страницу да бисте видели измене.",
+ "Failed to update theme.": "Ажурирање теме није успело.",
+ "Primary color": "Примарна боја",
+ "Background color": "Боја позадине",
+ "Logo": "Лого",
+ "(custom logo)": "(прилагођени лого)",
+ "(default)": "(подразумевано)",
+ "Background image": "Слика позадине",
+ "(custom)": "(прилагођено)",
+ "Update Nextcloud theming to match {name}?": "Да ажурирам Nextcloud тему да одговара {name}?",
+ "Current": "Тренутно",
+ "Proposed": "Предложено",
+ "Setting": "Подешавање",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Приказане су само вредности које се разликују. Ставке без предложене вредности остају непромењене.",
+ "Cancel": "Откажи",
+ "Update theming": "Ажурирај тему",
+ "Updating...": "Ажурирање ...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud тема је успешно ажурирана. Поновно учитавање странице ...",
+ "Failed to update Nextcloud theming:": "Ажурирање Nextcloud теме није успело: ",
+ "Failed to update Nextcloud theming.": "Ажурирање Nextcloud теме није успело.",
+ "Setting saved successfully. reload the login page to see changes.": "Подешавање је успешно сачувано. Поново учитајте страницу за пријаву да бисте видели измене.",
+ "Failed to save setting.": "Чување подешавања није успело.",
+ "Setting saved successfully. reload the page to see changes.": "Подешавање је успешно сачувано. Поново учитајте страницу да бисте видели измене.",
+ "Could not load token editor.": "Није могуће учитати уређивач токена.",
+ "Custom token overrides": "Прилагођена преписивања токена",
+ "Download": "Преузми",
+ "Upload": "Отпреми",
+ "Save overrides": "Сачувај преписивања",
+ "Custom value": "Прилагођена вредност",
+ "Reset to default": "Врати на подразумевано",
+ "Unsaved changes": "Несачуване измене",
+ "Token overrides saved.": "Преписивања токена су сачувана.",
+ "Failed to save overrides:": "Чување преписивања није успело: ",
+ "Failed to save overrides.": "Чување преписивања није успело.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} токена увезено, {skipped} токена прескочено (нису препознати)",
+ "Import failed:": "Увоз није успео: ",
+ "Import failed.": "Увоз није успео.",
+ "Apply token set: {name}": "Примени скуп токена: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Ове вредности би се промениле. Означите које желите да примените на ваша прилагођена преписивања.",
+ "Select all": "Изабери све",
+ "Deselect all": "Поништи избор свега",
+ "Token": "Токен",
+ "New": "Ново",
+ "Apply selected": "Примени изабрано",
+ "Applying…": "Примењивање …",
+ "Token overrides applied.": "Преписивања токена су примењена.",
+ "Failed to apply token set.": "Примена скупа токена није успела.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/sv.js b/l10n/sv.js
new file mode 100644
index 000000000..7f42352b0
--- /dev/null
+++ b/l10n/sv.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Färgväljare för {label}",
+ "NL design system theme": "NL Design System-tema",
+ "Documentation": "Dokumentation",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Välj en uppsättning designtokens från den nederländska regeringen som grund, eller anpassa enskilda Nextcloud-CSS-tokens nedan.",
+ "Design token set": "Uppsättning designtokens",
+ "Hide Nextcloud slogan/payoff on login page": "Dölj Nextclouds slogan på inloggningssidan",
+ "Show text labels in app menu (hide icons)": "Visa textetiketter i appmenyn (dölj ikoner)",
+ "Preview": "Förhandsgranskning",
+ "Primary button": "Primär knapp",
+ "Secondary button": "Sekundär knapp",
+ "Loading token editor…": "Läser in tokenredigerare …",
+ "Learn more about NL design system": "Läs mer om NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Temat uppdaterades. Läs in sidan på nytt för att se ändringarna.",
+ "Failed to update theme.": "Det gick inte att uppdatera temat.",
+ "Primary color": "Primärfärg",
+ "Background color": "Bakgrundsfärg",
+ "Logo": "Logotyp",
+ "(custom logo)": "(anpassad logotyp)",
+ "(default)": "(standard)",
+ "Background image": "Bakgrundsbild",
+ "(custom)": "(anpassad)",
+ "Update Nextcloud theming to match {name}?": "Uppdatera Nextclouds tema så att det matchar {name}?",
+ "Current": "Aktuell",
+ "Proposed": "Föreslagen",
+ "Setting": "Inställning",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Endast värden som skiljer sig visas. Objekt utan ett föreslaget värde lämnas oförändrade.",
+ "Cancel": "Avbryt",
+ "Update theming": "Uppdatera tema",
+ "Updating...": "Uppdaterar ...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextclouds tema uppdaterades. Läser in sidan på nytt ...",
+ "Failed to update Nextcloud theming:": "Det gick inte att uppdatera Nextclouds tema: ",
+ "Failed to update Nextcloud theming.": "Det gick inte att uppdatera Nextclouds tema.",
+ "Setting saved successfully. reload the login page to see changes.": "Inställningen sparades. Läs in inloggningssidan på nytt för att se ändringarna.",
+ "Failed to save setting.": "Det gick inte att spara inställningen.",
+ "Setting saved successfully. reload the page to see changes.": "Inställningen sparades. Läs in sidan på nytt för att se ändringarna.",
+ "Could not load token editor.": "Det gick inte att läsa in tokenredigeraren.",
+ "Custom token overrides": "Anpassade tokenåsidosättningar",
+ "Download": "Ladda ned",
+ "Upload": "Ladda upp",
+ "Save overrides": "Spara åsidosättningar",
+ "Custom value": "Anpassat värde",
+ "Reset to default": "Återställ till standard",
+ "Unsaved changes": "Osparade ändringar",
+ "Token overrides saved.": "Tokenåsidosättningarna sparades.",
+ "Failed to save overrides:": "Det gick inte att spara åsidosättningarna: ",
+ "Failed to save overrides.": "Det gick inte att spara åsidosättningarna.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} tokens importerade, {skipped} tokens överhoppade (känns inte igen)",
+ "Import failed:": "Importen misslyckades: ",
+ "Import failed.": "Importen misslyckades.",
+ "Apply token set: {name}": "Tillämpa tokenuppsättning: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Dessa värden skulle ändras. Markera vilka du vill tillämpa på dina anpassade åsidosättningar.",
+ "Select all": "Markera alla",
+ "Deselect all": "Avmarkera alla",
+ "Token": "Token",
+ "New": "Ny",
+ "Apply selected": "Tillämpa markerade",
+ "Applying…": "Tillämpar …",
+ "Token overrides applied.": "Tokenåsidosättningarna tillämpades.",
+ "Failed to apply token set.": "Det gick inte att tillämpa tokenuppsättningen.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/tr.js b/l10n/tr.js
new file mode 100644
index 000000000..b38cc9d9b
--- /dev/null
+++ b/l10n/tr.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "{label} için renk seçici",
+ "NL design system theme": "NL Design System teması",
+ "Documentation": "Belgeler",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Temel olarak bir Hollanda hükûmeti tasarım belirteci kümesi seçin veya aşağıdan tek tek Nextcloud CSS belirteçlerini özelleştirin.",
+ "Design token set": "Tasarım belirteci kümesi",
+ "Hide Nextcloud slogan/payoff on login page": "Giriş sayfasında Nextcloud sloganını gizle",
+ "Show text labels in app menu (hide icons)": "Uygulama menüsünde metin etiketlerini göster (simgeleri gizle)",
+ "Preview": "Önizleme",
+ "Primary button": "Birincil düğme",
+ "Secondary button": "İkincil düğme",
+ "Loading token editor…": "Belirteç düzenleyici yükleniyor …",
+ "Learn more about NL design system": "NL Design System hakkında daha fazla bilgi edinin",
+ "Theme updated successfully. reload the page to see changes.": "Tema başarıyla güncellendi. Değişiklikleri görmek için sayfayı yeniden yükleyin.",
+ "Failed to update theme.": "Tema güncellenemedi.",
+ "Primary color": "Birincil renk",
+ "Background color": "Arka plan rengi",
+ "Logo": "Logo",
+ "(custom logo)": "(özel logo)",
+ "(default)": "(varsayılan)",
+ "Background image": "Arka plan görseli",
+ "(custom)": "(özel)",
+ "Update Nextcloud theming to match {name}?": "Nextcloud teması {name} ile eşleşecek şekilde güncellensin mi?",
+ "Current": "Geçerli",
+ "Proposed": "Önerilen",
+ "Setting": "Ayar",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Yalnızca farklı olan değerler gösterilir. Önerilen değeri olmayan ögeler değiştirilmeden bırakılır.",
+ "Cancel": "İptal",
+ "Update theming": "Temayı güncelle",
+ "Updating...": "Güncelleniyor ...",
+ "Nextcloud theming updated successfully. reloading page...": "Nextcloud teması başarıyla güncellendi. Sayfa yeniden yükleniyor ...",
+ "Failed to update Nextcloud theming:": "Nextcloud teması güncellenemedi: ",
+ "Failed to update Nextcloud theming.": "Nextcloud teması güncellenemedi.",
+ "Setting saved successfully. reload the login page to see changes.": "Ayar başarıyla kaydedildi. Değişiklikleri görmek için giriş sayfasını yeniden yükleyin.",
+ "Failed to save setting.": "Ayar kaydedilemedi.",
+ "Setting saved successfully. reload the page to see changes.": "Ayar başarıyla kaydedildi. Değişiklikleri görmek için sayfayı yeniden yükleyin.",
+ "Could not load token editor.": "Belirteç düzenleyici yüklenemedi.",
+ "Custom token overrides": "Özel belirteç geçersiz kılmaları",
+ "Download": "İndir",
+ "Upload": "Yükle",
+ "Save overrides": "Geçersiz kılmaları kaydet",
+ "Custom value": "Özel değer",
+ "Reset to default": "Varsayılana sıfırla",
+ "Unsaved changes": "Kaydedilmemiş değişiklikler",
+ "Token overrides saved.": "Belirteç geçersiz kılmaları kaydedildi.",
+ "Failed to save overrides:": "Geçersiz kılmalar kaydedilemedi: ",
+ "Failed to save overrides.": "Geçersiz kılmalar kaydedilemedi.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} belirteç içe aktarıldı, {skipped} belirteç atlandı (tanınmadı)",
+ "Import failed:": "İçe aktarma başarısız oldu: ",
+ "Import failed.": "İçe aktarma başarısız oldu.",
+ "Apply token set: {name}": "Belirteç kümesini uygula: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Bu değerler değişecek. Özel geçersiz kılmalarınıza hangilerinin uygulanacağını işaretleyin.",
+ "Select all": "Tümünü seç",
+ "Deselect all": "Tüm seçimi kaldır",
+ "Token": "Belirteç",
+ "New": "Yeni",
+ "Apply selected": "Seçilenleri uygula",
+ "Applying…": "Uygulanıyor …",
+ "Token overrides applied.": "Belirteç geçersiz kılmaları uygulandı.",
+ "Failed to apply token set.": "Belirteç kümesi uygulanamadı.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/l10n/uk.js b/l10n/uk.js
new file mode 100644
index 000000000..2dfa01b0f
--- /dev/null
+++ b/l10n/uk.js
@@ -0,0 +1,215 @@
+OC.L10N.register(
+ "thematiq",
+ {
+ "Colour picker for {label}": "Вибір кольору для {label}",
+ "NL design system theme": "Тема NL Design System",
+ "Documentation": "Документація",
+ "Select a dutch government design token set as a base, or customize individual Nextcloud CSS tokens below.": "Виберіть набір дизайн-токенів уряду Нідерландів як основу або налаштуйте окремі CSS-токени Nextcloud нижче.",
+ "Design token set": "Набір дизайн-токенів",
+ "Hide Nextcloud slogan/payoff on login page": "Приховати слоган Nextcloud на сторінці входу",
+ "Show text labels in app menu (hide icons)": "Показувати текстові підписи в меню застосунків (приховати піктограми)",
+ "Preview": "Перегляд",
+ "Primary button": "Основна кнопка",
+ "Secondary button": "Додаткова кнопка",
+ "Loading token editor…": "Завантаження редактора токенів …",
+ "Learn more about NL design system": "Докладніше про NL Design System",
+ "Theme updated successfully. reload the page to see changes.": "Тему успішно оновлено. Перезавантажте сторінку, щоб побачити зміни.",
+ "Failed to update theme.": "Не вдалося оновити тему.",
+ "Primary color": "Основний колір",
+ "Background color": "Колір тла",
+ "Logo": "Логотип",
+ "(custom logo)": "(власний логотип)",
+ "(default)": "(типово)",
+ "Background image": "Зображення тла",
+ "(custom)": "(власне)",
+ "Update Nextcloud theming to match {name}?": "Оновити оформлення Nextcloud відповідно до {name}?",
+ "Current": "Поточне",
+ "Proposed": "Запропоноване",
+ "Setting": "Налаштування",
+ "Only values that differ are shown. items without a proposed value are left unchanged.": "Показано лише значення, які відрізняються. Елементи без запропонованого значення залишаються без змін.",
+ "Cancel": "Скасувати",
+ "Update theming": "Оновити оформлення",
+ "Updating...": "Оновлення ...",
+ "Nextcloud theming updated successfully. reloading page...": "Оформлення Nextcloud успішно оновлено. Перезавантаження сторінки ...",
+ "Failed to update Nextcloud theming:": "Не вдалося оновити оформлення Nextcloud: ",
+ "Failed to update Nextcloud theming.": "Не вдалося оновити оформлення Nextcloud.",
+ "Setting saved successfully. reload the login page to see changes.": "Налаштування успішно збережено. Перезавантажте сторінку входу, щоб побачити зміни.",
+ "Failed to save setting.": "Не вдалося зберегти налаштування.",
+ "Setting saved successfully. reload the page to see changes.": "Налаштування успішно збережено. Перезавантажте сторінку, щоб побачити зміни.",
+ "Could not load token editor.": "Не вдалося завантажити редактор токенів.",
+ "Custom token overrides": "Власні перевизначення токенів",
+ "Download": "Завантажити",
+ "Upload": "Вивантажити",
+ "Save overrides": "Зберегти перевизначення",
+ "Custom value": "Власне значення",
+ "Reset to default": "Скинути до типового",
+ "Unsaved changes": "Незбережені зміни",
+ "Token overrides saved.": "Перевизначення токенів збережено.",
+ "Failed to save overrides:": "Не вдалося зберегти перевизначення: ",
+ "Failed to save overrides.": "Не вдалося зберегти перевизначення.",
+ "{imported} tokens imported, {skipped} tokens skipped (not recognized)": "{imported} токенів імпортовано, {skipped} токенів пропущено (не розпізнано)",
+ "Import failed:": "Не вдалося імпортувати: ",
+ "Import failed.": "Не вдалося імпортувати.",
+ "Apply token set: {name}": "Застосувати набір токенів: {name}",
+ "These values would change. check which ones to apply to your custom overrides.": "Ці значення зміняться. Позначте, які з них застосувати до ваших власних перевизначень.",
+ "Select all": "Вибрати все",
+ "Deselect all": "Зняти все виділення",
+ "Token": "Токен",
+ "New": "Новий",
+ "Apply selected": "Застосувати вибране",
+ "Applying…": "Застосування …",
+ "Token overrides applied.": "Перевизначення токенів застосовано.",
+ "Failed to apply token set.": "Не вдалося застосувати набір токенів.",
+ "Theming per app": "Theming per app",
+ "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.": "Choose which apps the NL Design theme applies to. Unchecking an app makes its pages render with stock Nextcloud styling, including the header on those pages.",
+ "Loading apps…": "Loading apps…",
+ "Save app theming": "Save app theming",
+ "Failed to load apps.": "Failed to load apps.",
+ "No apps available.": "No apps available.",
+ "App theming saved. Reload an affected app to see changes.": "App theming saved. Reload an affected app to see changes.",
+ "Failed to save app theming.": "Failed to save app theming.",
+ "{count} WCAG AA contrast warning(s) — see the apply dialog.": "{count} WCAG AA contrast warning(s) — see the apply dialog.",
+ "{imported} tokens imported, {skipped} skipped.": "{imported} tokens imported, {skipped} skipped.",
+ "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.": "{pair}: contrast {ratio}:1 is below the WCAG 2.1 AA threshold of {threshold}:1.",
+ "{pair}: contrast could not be evaluated (non-literal colour).": "{pair}: contrast could not be evaluated (non-literal colour).",
+ "Contrast warning": "Contrast warning",
+ "Custom token set deleted. Reload the page to refresh the dropdown.": "Custom token set deleted. Reload the page to refresh the dropdown.",
+ "Delete": "Delete",
+ "Delete custom token set": "Delete custom token set",
+ "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.": "Delete the custom token set \"{name}\"? If it is currently active, the theme will fall back to Nextcloud.",
+ "Enter a token set name first.": "Enter a token set name first.",
+ "Failed to delete custom token set.": "Failed to delete custom token set.",
+ "Failed to load custom token sets.": "Failed to load custom token sets.",
+ "No custom token sets uploaded yet.": "No custom token sets uploaded yet.",
+ "Token set uploaded. Reload the page to apply it.": "Token set uploaded. Reload the page to apply it.",
+ "Upload failed:": "Upload failed:",
+ "Upload failed.": "Upload failed.",
+ "WCAG 2.1 AA contrast warning": "WCAG 2.1 AA contrast warning",
+ "WCAG AA OK": "WCAG AA OK",
+ "Custom token sets": "Custom token sets",
+ "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.": "Upload your own house style as a token set, either as an NL Design CSS file (--nldesign-* variables) or a W3C Design Tokens JSON file. Uploaded sets appear in the dropdown above.",
+ "Token set name": "Token set name",
+ "e.g. Gemeente Voorbeeld": "e.g. Gemeente Voorbeeld",
+ "Choose file and upload": "Choose file and upload",
+ "Loading custom token sets…": "Loading custom token sets…",
+ "{themed} of {total} apps themed": "{themed} of {total} apps themed",
+ "Search apps": "Search apps",
+ "Search apps…": "Search apps…",
+ "Reset {label} to default": "Reset {label} to default",
+ "Failed to load the audit log.": "Failed to load the audit log.",
+ "from {value}": "from {value}",
+ "No theming changes have been recorded yet.": "No theming changes have been recorded yet.",
+ "to {value}": "to {value}",
+ "Theming audit log": "Theming audit log",
+ "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.": "A record of theming configuration changes: who changed what, from what, to what, and when. Useful evidence for accessibility audits.",
+ "Timestamp": "Timestamp",
+ "User": "User",
+ "Action": "Action",
+ "Details": "Details",
+ "Loading audit log…": "Loading audit log…",
+ "Download full log": "Download full log",
+ "Group theming": "Group theming",
+ "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.": "Map Nextcloud groups to token sets so different gemeenten sharing one instance each see their own house style. Row order is priority order: for a user in multiple mapped groups, the first matching row wins.",
+ "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.": "Logo, mail templates, and other Nextcloud core branding always follow the instance default token set above — they are not per-group. Only this token-set stylesheet layer differs per group.",
+ "Loading group mappings…": "Loading group mappings…",
+ "Add mapping": "Add mapping",
+ "Save group theming": "Save group theming",
+ "Failed to load group mappings.": "Failed to load group mappings.",
+ "Group": "Group",
+ "Token set": "Token set",
+ "Move mapping up": "Move mapping up",
+ "Move mapping down": "Move mapping down",
+ "Remove mapping": "Remove mapping",
+ "No group mappings configured.": "No group mappings configured.",
+ "Group theming saved.": "Group theming saved.",
+ "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}": "Could not save mapping for group \"{group}\" → \"{tokenSet}\": {reason}",
+ "Failed to save group theming.": "Failed to save group theming.",
+ "Email template": "Email template",
+ "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.": "Brand password-reset, share-notification, and other system emails with the active token set's color and logo. If nldesign is later disabled, Nextcloud automatically falls back to the stock email template — mail is never blocked by this setting.",
+ "A different mail template class is already configured ({class}); nldesign will not overwrite it.": "A different mail template class is already configured ({class}); nldesign will not overwrite it.",
+ "Use NL Design email template": "Use NL Design email template",
+ "Organization name": "Organization name",
+ "Accessibility statement URL": "Accessibility statement URL",
+ "Privacy statement URL": "Privacy statement URL",
+ "Save email template settings": "Save email template settings",
+ "config.php is read-only. Run one of the following commands manually to enable or disable the email template:": "config.php is read-only. Run one of the following commands manually to enable or disable the email template:",
+ "Email template settings saved.": "Email template settings saved.",
+ "config.php is read-only; run the shown occ command manually.": "config.php is read-only; run the shown occ command manually.",
+ "A different mail template class is already configured.": "A different mail template class is already configured.",
+ "Invalid footer URL — use an http:// or https:// address.": "Invalid footer URL — use an http:// or https:// address.",
+ "Failed to save email template settings.": "Failed to save email template settings.",
+ "Accessibility statement": "Accessibility statement",
+ "Privacy statement": "Privacy statement",
+ "Alias chain too deep (more than 10 hops)": "Alias chain too deep (more than 10 hops)",
+ "Alias cycle detected": "Alias cycle detected",
+ "Alias target does not exist": "Alias target does not exist",
+ "Another token already maps to this target": "Another token already maps to this target",
+ "No $type could be resolved (never guessed)": "No $type could be resolved (never guessed)",
+ "Not part of the --nldesign-* vocabulary": "Not part of the --nldesign-* vocabulary",
+ "Package version: {version}": "Package version: {version}",
+ "Unsupported color space": "Unsupported color space",
+ "Unsupported value shape": "Unsupported value shape",
+ "v{version}": "v{version}",
+ "No font file uploaded.": "No font file uploaded.",
+ "Font file exceeds the 2 MB size limit.": "Font file exceeds the 2 MB size limit.",
+ "Could not read the uploaded file.": "Could not read the uploaded file.",
+ "Font not found.": "Font not found.",
+ "Custom fonts": "Custom fonts",
+ "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.": "Only upload fonts your organization holds a license to self-host. Licensing responsibility rests with the uploader.",
+ "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.": "Upload a WOFF2 font file (max 2 MB, 20 fonts max) and assign it to the body text or heading role. Uploaded fonts are self-hosted — no external requests.",
+ "Font display name": "Font display name",
+ "e.g. Rijks Sans": "e.g. Rijks Sans",
+ "Font role": "Font role",
+ "Body text": "Body text",
+ "Heading": "Heading",
+ "Choose font and upload": "Choose font and upload",
+ "Loading fonts…": "Loading fonts…",
+ "Enter a font display name first.": "Enter a font display name first.",
+ "Font uploaded. Reload the page to apply it.": "Font uploaded. Reload the page to apply it.",
+ "Failed to load fonts.": "Failed to load fonts.",
+ "No fonts uploaded yet.": "No fonts uploaded yet.",
+ "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.": "Delete the font \"{name}\"? Pages using it will fall back to Fira Sans.",
+ "Delete font": "Delete font",
+ "Font deleted. Reload the page to refresh the styling.": "Font deleted. Reload the page to refresh the styling.",
+ "Failed to delete font.": "Failed to delete font.",
+ "Upstream token updates": "Upstream token updates",
+ "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.": "Optionally check once a day whether the upstream NL Design System themes have new tokens. This is the only outbound network request this app makes; it contacts api.github.com and never applies anything automatically — you always review and apply updates yourself.",
+ "Check daily for upstream token updates (contacts api.github.com)": "Check daily for upstream token updates (contacts api.github.com)",
+ "Last checked: {when}": "Last checked: {when}",
+ "Not checked yet.": "Not checked yet.",
+ "Token set {name} has upstream update {version} — review & apply": "Token set {name} has upstream update {version} — review & apply",
+ "Upstream token sets have updates ({version}) — review & apply": "Upstream token sets have updates ({version}) — review & apply",
+ "Dismiss": "Dismiss",
+ "Upstream token update checks enabled.": "Upstream token update checks enabled.",
+ "Upstream token update checks disabled.": "Upstream token update checks disabled.",
+ "Discard": "Discard",
+ "Failed to discard theme preview.": "Failed to discard theme preview.",
+ "Failed to start theme preview.": "Failed to start theme preview.",
+ "Preview: {name} — this is only visible to you": "Preview: {name} — this is only visible to you",
+ "Publish": "Publish",
+ "Theme published instance-wide. Reload the page to see changes.": "Theme published instance-wide. Reload the page to see changes.",
+ "Preview in my session": "Preview in my session",
+ "Previewing \"{name}\" in your session only.": "Previewing \"{name}\" in your session only.",
+ "Configuration bundle (OTAP promotion)": "Configuration bundle (OTAP promotion)",
+ "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.": "Download or upload the complete NL Design configuration as one JSON file — the active token set, toggles, per-app exclusions, token overrides, custom token sets, email footer, and the upstream-update toggle. Use this to promote configuration between dev, test, acceptance, and production environments identically. This is different from the overrides-only download above.",
+ "Download configuration": "Download configuration",
+ "Upload configuration": "Upload configuration",
+ "Configuration imported successfully. Reloading…": "Configuration imported successfully. Reloading…",
+ "Configuration imported successfully.": "Configuration imported successfully.",
+ "Import failed — nothing was applied:": "Import failed — nothing was applied:",
+ "Configuration import failed.": "Configuration import failed.",
+ "Dark logo": "Dark logo",
+ "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.": "This token set also ships a dark-surface logo. Nextcloud core has no dark logo slot, so it is applied by nldesign's own dark-mode stylesheet, not synced to Nextcloud theming.",
+ "Enable dark mode variants for the active token set": "Enable dark mode variants for the active token set",
+ "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.": "When enabled, a generated dark-mode stylesheet follows whichever Nextcloud dark/light/system theme is already active — it never changes your Nextcloud theme choice itself.",
+ "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.": "Marianne is the official typeface of the French State and is reserved for French State administrations. Enable it only if your organisation is a French State agency. Otherwise Inter is used.",
+ "Our organisation is a French State agency (administration de l'État)": "Our organisation is a French State agency (administration de l'État)",
+ "Active icon pack": "Active icon pack",
+ "Nextcloud stock icons (no custom pack)": "Nextcloud stock icons (no custom pack)",
+ "Source: admin override (occ config:app:set nldesign icon_pack)": "Source: admin override (occ config:app:set nldesign icon_pack)",
+ "Source: the active design system": "Source: the active design system",
+ "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.": "This only switches the icon assets nldesign itself serves through imagePath. It does not replace Nextcloud's built-in core icons beyond what the active theme's CSS already restyles.",
+ "Saved. Reload to see the change.": "Saved. Reload to see the change."
+ },
+ "nplurals=2; plural=(n != 1);"
+)
diff --git a/package.json b/package.json
index 20e665807..40ea37447 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,9 @@
"check:manifest": "node tests/validate-manifest.js",
"format": "prettier --check \"**/*.{js,ts,vue,css,scss}\"",
"format:fix": "prettier --write \"**/*.{js,ts,vue,css,scss}\"",
- "prepare": "git config core.hooksPath .githooks || true"
+ "prepare": "git config core.hooksPath .githooks || true",
+ "l10n:build": "node scripts/build-l10n-js.js",
+ "check:l10n-js": "node scripts/build-l10n-js.js --check"
},
"dependencies": {
"@fontsource/fira-sans": "^5.0.0"
diff --git a/scripts/build-l10n-js.js b/scripts/build-l10n-js.js
new file mode 100644
index 000000000..176ef519c
--- /dev/null
+++ b/scripts/build-l10n-js.js
@@ -0,0 +1,172 @@
+#!/usr/bin/env node
+// SPDX-License-Identifier: EUPL-1.2
+// Copyright (C) 2026 Conduction B.V.
+//
+// build-l10n-js.js — regenerate l10n/.js from l10n/.json.
+//
+// WHY THIS EXISTS
+//
+// Nextcloud loads a locale catalogue in TWO formats and neither substitutes
+// for the other:
+//
+// l10n/.json — read server-side by PHP `$l->t()`.
+// l10n/.js — an `OC.L10N.register(, {…}, )`
+// call, the ONLY thing the browser ever sees. Raw
+// JSON is not served from an app directory at all:
+// `/custom_apps/humaniq/l10n/nl.json` is a 404.
+//
+// The pair was hand-maintained, which is exactly the shape of drift the
+// parity guard exists to catch: a key added to the .json and forgotten in
+// the .js renders in English for every browser while every server-rendered
+// string is Dutch, and nothing throws. Deriving the .js removes the chance
+// to forget.
+//
+// `npm run check:l10n` still asserts the two carry identical pairs — this
+// script makes that assertion cheap to satisfy rather than replacing it.
+//
+// EVERY locale in l10n/ is generated, not just en/nl. larpinq ships 37 locale
+// catalogues and had .js for none of them, so 35 languages' translations were
+// unreachable on top of the two this script was first written for.
+//
+// pluralForm: taken from the catalogue when it declares one. When it does not,
+// the fallback is the two-form rule `nplurals=2; plural=(n != 1);` — which is
+// what every generated catalogue in this fleet already carries, including for
+// languages that genuinely have more forms (cs, pl, ru). That is a known
+// simplification, not a verified per-language rule: a catalogue that starts
+// using plural strings in such a language needs its real rule declared in the
+// JSON, which this script will then honour.
+//
+// Usage:
+// node scripts/build-l10n-js.js (npm run l10n:build)
+// node scripts/build-l10n-js.js --check exit 1 if any .js is stale
+//
+// Exit codes:
+// 0 — every .js written (or already current, under --check)
+// 1 — a catalogue is malformed, or --check found a stale .js
+
+'use strict'
+
+const fs = require('fs')
+const path = require('path')
+
+const REPO_ROOT = path.resolve(__dirname, '..')
+
+/** Fallback when a catalogue declares no pluralForm — see the header note. */
+const DEFAULT_PLURAL_FORM = 'nplurals=2; plural=(n != 1);'
+const L10N_DIR = path.join(REPO_ROOT, 'l10n')
+
+/**
+ * The app id the browser catalogue must register under. Read from
+ * appinfo/info.xml rather than hard-coded: this app has already been renamed
+ * once (hrmq -> humaniq), and a catalogue registered under the old id is
+ * silently ignored by `t()` — every string falls back to its English key with
+ * no error anywhere.
+ *
+ * @return {string} the declared in appinfo/info.xml
+ */
+function appId() {
+ const xml = fs.readFileSync(path.join(REPO_ROOT, 'appinfo', 'info.xml'), 'utf8')
+ const match = xml.match(/([^<]+)<\/id>/)
+ if (match === null) {
+ console.error('appinfo/info.xml declares no ')
+ process.exit(1)
+ }
+ return match[1].trim()
+}
+
+/**
+ * Render one catalogue as the `OC.L10N.register` call the browser expects.
+ *
+ * @param {string} id - the app id to register under
+ * @param {object} translations - key -> translation
+ * @param {string} pluralForm - the catalogue's gettext plural rule
+ * @return {string} the .js file body
+ */
+function renderJs(id, translations, pluralForm) {
+ const body = Object.keys(translations)
+ .map(
+ (key) =>
+ ` ${JSON.stringify(key)}: ${JSON.stringify(translations[key])}`,
+ )
+ .join(',\n')
+ return [
+ 'OC.L10N.register(',
+ ` ${JSON.stringify(id)},`,
+ ' {',
+ body,
+ ' },',
+ ` ${JSON.stringify(pluralForm)}`,
+ ')',
+ '',
+ ].join('\n')
+}
+
+function main() {
+ const check = process.argv.includes('--check')
+ const id = appId()
+ const stale = []
+
+ const locales = fs
+ .readdirSync(L10N_DIR)
+ // Dotfiles are never locale catalogues. `l10n/.schema-l10n-baseline.json`
+ // sits here so prettier ignores it, and without this guard it was read as
+ // a locale named `.schema-l10n-baseline` and failed for having no
+ // `translations` key.
+ .filter((f) => f.endsWith('.json') && !f.startsWith('.'))
+ .map((f) => f.slice(0, -5))
+ .sort()
+ if (locales.length === 0) {
+ console.error('l10n/ holds no .json catalogue to generate from')
+ process.exit(1)
+ }
+
+ for (const locale of locales) {
+ const jsonFile = path.join(L10N_DIR, `${locale}.json`)
+ const jsFile = path.join(L10N_DIR, `${locale}.js`)
+
+ let doc
+ try {
+ doc = JSON.parse(fs.readFileSync(jsonFile, 'utf8'))
+ } catch (error) {
+ console.error(`l10n/${locale}.json does not parse: ${error.message}`)
+ process.exit(1)
+ }
+ if (doc.translations === undefined) {
+ console.error(`l10n/${locale}.json is missing "translations"`)
+ process.exit(1)
+ }
+
+ const rendered = renderJs(
+ id,
+ doc.translations,
+ doc.pluralForm || DEFAULT_PLURAL_FORM,
+ )
+ const current = fs.existsSync(jsFile)
+ ? fs.readFileSync(jsFile, 'utf8')
+ : null
+
+ if (current === rendered) {
+ console.log(
+ ` ✓ l10n/${locale}.js up to date (${Object.keys(doc.translations).length} keys)`,
+ )
+ continue
+ }
+ if (check) {
+ stale.push(`l10n/${locale}.js`)
+ continue
+ }
+ fs.writeFileSync(jsFile, rendered)
+ console.log(
+ ` ✎ l10n/${locale}.js written (${Object.keys(doc.translations).length} keys)`,
+ )
+ }
+
+ if (stale.length > 0) {
+ console.error('')
+ console.error(`Stale browser catalogue: ${stale.join(', ')}`)
+ console.error('Run `npm run l10n:build` and commit the result.')
+ process.exit(1)
+ }
+}
+
+main()