Big bang/webgune berria (#18)

* chore: netlify deployments plugina kentzen du

* chore: Strapi berria instalatzen du

* feat: astro instalatzen du

* chore: cypress instalatzen du

* feat: back eta front konektatzen ditu

* feat: server side rendering egiten du

* chore: Strapin enterprise edition flagak kentzen ditu

* feat: euskara sartzen du

* chore: Strapi bertsioa igotzen du

* feat: preview modua sortzen du ingurune bariableen bidez

* aurreko commitarekin doa

* fix: cypress konpontzen du

* chore: Strapi bertsioa igotzen du

* feat: ekintza back-ean sortzen du

* feat: zikloa eta erakundea sortzen ditu

* feat: erakundeen kudeaketa hobetzen du

* chore: pnpm erabiltzen du

* feat: Strapi bertsioa igotzen du

* ekintza sortzen du eta zerbitzuak eguneratzen ditu

* chore: graphql erabiltzen du populazioa ekiditeko

* chore: collection erabiltzen du ekintzetarako

* chore: bertsioak igotzen ditu

* chore: Astro bertsioa igotzen du

* chore: Strapi bertsioa igotzen du

* feat: home-a hasten du

* feat: zig zag separadorea sortzen du

* feat: zig zaga doitzen du

* feat: heroa doitzen du

* feat: agenda sortzen du

* feat: agenda eta izan labazkide atalak konektatzen ditu

* feat: home-aren edukia sortzen du

* chore: app.js sartzen du WTF

* feat: header-a sortzen du

* feat: card-a hobetzen du

* feat: footer-a sortzen du

* feat: ekintzen zerrenda erakusten du

* feat: zikloaren bista sortzen du

* fix: header-aren estekak konpontzen ditu

* chore: remove unused code

* chore: components directorioa kentzen du

* chore: typescript konfigurazioa hobetzen du

* chore: views path-a sortzen du

* feat: zikloaren deskribapena erakusten du

* feat: ekintzaren bista sortzen du

* feat: zig zag marra erakusten du

* ignore: comment

* feat: hitzordua erakusten du

* feat: zikloa erakusten du

* feat: Waveko erroreak errepasatzen ditu

* feat: Wave birpasatzen du

* feat: zerrendan irudia erakusten du

* feat: karga optimizatzen du

* feat: irudien formatuak kontuan hartzen ditu

* feat: zikloan ekintza irudiak erakusten ditu

* feat: ekintza zerrenda atontzen du

* feat: header-eko estekak markatzen ditu

* feat: irudi estela erakusten du

* feat: responsive-a hobetzen du

* feat: orri basikoa sortzen du

* feat: hasiera responsive egiten du

* feat: overflow konpontzen du

* feat: bug-a uzten du LOL

* feat: irudi estela mugikorrean aktibatzen du

* feat: orri basikoa eta ekintza mugikorrean jartzen ditu

* feat: mugikor menua sortzen du

* feat: mugikor menua amaitzen du

* feat: build estatikoa sortzen du

* feat: sitemap-a sortzen du

* feat: rss feed-a sortzen du

* chore: ingurune aldagaiak sortzen ditu

* chore: public-proxy komandoa sortzen du

* feat: irudiak webp formatuan jartzen ditu

* fix: irudiak erakusten ditu ekintzen zerrendan

* feat: ekintza zerrendaren irudia animatzen du

* refactor: extract functions

* fix: animazioa konpontzen du

* feat: irudi estela hobetzen du

* chore: prerender aldagaiak kentzen ditu

* chore: SASS warning-ak kentzen ditu

* feat: ziklo eta ekintzetan H1 ezartzen du

* feat: slideshow-a sortzen du

* feat: ekintzak hitzorduan oinarrituta filtratzen ditu

* feat: hitzorduen arabera filtratzen du eta moment kentzen du

* feat: titulua aldatzen du

* feat: menua eguneratzen du

* feat: parte hartun deskribapena sortzen du

* feat: Cloudinary konfiguratzen du

* fix: cloudinary konfigurazioa konpontzen du

* feat: erositako fonteak jartzen ditu
This commit is contained in:
Aitor Urrutia
2025-08-29 19:43:56 +02:00
committed by GitHub
parent 67110a4821
commit 93fb0c9b40
325 changed files with 23452 additions and 26547 deletions

View File

@@ -1,16 +0,0 @@
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[{package.json,*.yml}]
indent_style = space
indent_size = 2
[*.md]
trim_trailing_whitespace = false

View File

@@ -1,4 +1,14 @@
HOST=0.0.0.0
PORT=1337
DATABASE_FILENAME=database/migrations/development.db
NETLIFY_DEPLOYMENTS_PLUGIN_ACCESS_TOKEN="<netlify access token>"
APP_KEYS="toBeModified1,toBeModified2"
API_TOKEN_SALT=tobemodified
ADMIN_JWT_SECRET=tobemodified
TRANSFER_TOKEN_SALT=tobemodified
JWT_SECRET=tobemodified
FLAG_PROMOTE_EE=false
FLAG_NPS=false
CLOUDINARY_NAME=your_cloud_name
CLOUDINARY_KEY=your_api_key
CLOUDINARY_SECRET=your_api_secret

View File

@@ -1,3 +0,0 @@
.cache
build
**/node_modules/**

View File

@@ -1,27 +0,0 @@
{
"parser": "babel-eslint",
"extends": "eslint:recommended",
"env": {
"commonjs": true,
"es6": true,
"node": true,
"browser": false
},
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": false
},
"sourceType": "module"
},
"globals": {
"strapi": true
},
"rules": {
"indent": ["error", 2, { "SwitchCase": 1 }],
"linebreak-style": ["error", "unix"],
"no-console": 0,
"quotes": ["error", "single"],
"semi": ["error", "always"]
}
}

21
back/.gitignore vendored
View File

@@ -82,6 +82,8 @@ ssl
nbproject
public/uploads/*
!public/uploads/.gitkeep
.tsbuildinfo
.eslintcache
############################
# Node.js
@@ -95,11 +97,24 @@ results
node_modules
.node_history
############################
# Package managers
############################
.yarn/*
!.yarn/cache
!.yarn/unplugged
!.yarn/patches
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
yarn-error.log
############################
# Tests
############################
testApp
coverage
############################
@@ -109,6 +124,8 @@ coverage
.env
license.txt
exports
*.cache
.strapi
dist
build
.strapi-updater.json
.strapi-cloud.json

View File

@@ -2,21 +2,21 @@
* This file was automatically generated by Strapi.
* Any modifications made will be discarded.
*/
import strapiCloud from "@strapi/plugin-cloud/strapi-admin";
import graphql from "@strapi/plugin-graphql/strapi-admin";
import i18N from "@strapi/plugin-i18n/strapi-admin";
import usersPermissions from "@strapi/plugin-users-permissions/strapi-admin";
import netlifyDeployments from "strapi-plugin-netlify-deployments/strapi-admin";
import iconsField from "strapi-plugin-icons-field/strapi-admin";
import { renderAdmin } from "@strapi/strapi/admin";
import customisations from "../../src/admin/app.js";
import customisations from "../../src/admin/app.ts";
renderAdmin(document.getElementById("strapi"), {
customisations,
plugins: {
"strapi-cloud": strapiCloud,
graphql: graphql,
i18n: i18N,
"users-permissions": usersPermissions,
"netlify-deployments": netlifyDeployments,
"icons-field": iconsField,
},
});

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<!--
This file was automatically generated by Strapi.
@@ -58,5 +58,6 @@ Any modifications made will be discarded.
</div>
</div></noscript
>
<script type="module" src="/.strapi/client/app.js"></script>
</body>
</html>

61
back/README.md Normal file
View File

@@ -0,0 +1,61 @@
# 🚀 Getting started with Strapi
Strapi comes with a full featured [Command Line Interface](https://docs.strapi.io/dev-docs/cli) (CLI) which lets you scaffold and manage your project in seconds.
### `develop`
Start your Strapi application with autoReload enabled. [Learn more](https://docs.strapi.io/dev-docs/cli#strapi-develop)
```
npm run develop
# or
yarn develop
```
### `start`
Start your Strapi application with autoReload disabled. [Learn more](https://docs.strapi.io/dev-docs/cli#strapi-start)
```
npm run start
# or
yarn start
```
### `build`
Build your admin panel. [Learn more](https://docs.strapi.io/dev-docs/cli#strapi-build)
```
npm run build
# or
yarn build
```
## ⚙️ Deployment
Strapi gives you many possible deployment options for your project including [Strapi Cloud](https://cloud.strapi.io). Browse the [deployment section of the documentation](https://docs.strapi.io/dev-docs/deployment) to find the best solution for your use case.
```
yarn strapi deploy
```
## 📚 Learn more
- [Resource center](https://strapi.io/resource-center) - Strapi resource center.
- [Strapi documentation](https://docs.strapi.io) - Official Strapi documentation.
- [Strapi tutorials](https://strapi.io/tutorials) - List of tutorials made by the core team and the community.
- [Strapi blog](https://strapi.io/blog) - Official Strapi blog containing articles made by the Strapi team and the community.
- [Changelog](https://strapi.io/changelog) - Find out about the Strapi product updates, new features and general improvements.
Feel free to check out the [Strapi GitHub repository](https://github.com/strapi/strapi). Your feedback and contributions are welcome!
## ✨ Community
- [Discord](https://discord.strapi.io) - Come chat with the Strapi community including the core team.
- [Forum](https://forum.strapi.io/) - Place to discuss, ask questions and find answers, show your Strapi project and get feedback or just talk with other Community members.
- [Awesome Strapi](https://github.com/strapi/awesome-strapi) - A curated list of awesome things related to Strapi.
---
<sub>🤫 Psst! [Strapi is hiring](https://strapi.io/careers).</sub>

View File

@@ -1,14 +0,0 @@
module.exports = ({ env }) => ({
auth: {
secret: env("ADMIN_JWT_SECRET", "7ac8d91e1521dcac33d2a5105d9f828f"),
},
apiToken: {
salt: env("API_TOKEN_SALT", "4444a34644486306e97051f610dfdae4"),
},
transfer: {
token: {
salt: env("TRANSFER_SALT", "NDDFL8BZi0QK5oYDbRgNow=="),
},
},
url: "/kudeatu",
});

17
back/config/admin.ts Normal file
View File

@@ -0,0 +1,17 @@
export default ({ env }) => ({
auth: {
secret: env('ADMIN_JWT_SECRET'),
},
apiToken: {
salt: env('API_TOKEN_SALT'),
},
transfer: {
token: {
salt: env('TRANSFER_TOKEN_SALT'),
},
},
flags: {
nps: env.bool('FLAG_NPS', true),
promoteEE: env.bool('FLAG_PROMOTE_EE', true),
},
});

View File

@@ -1,4 +1,4 @@
module.exports = {
export default {
rest: {
defaultLimit: 25,
maxLimit: 100,

View File

@@ -1,11 +0,0 @@
const path = require('path');
module.exports = ({ env }) => ({
connection: {
client: 'sqlite',
connection: {
filename: path.join(__dirname, '..', env('DATABASE_FILENAME', '.tmp/data.db')),
},
useNullAsDefault: true,
},
});

60
back/config/database.ts Normal file
View File

@@ -0,0 +1,60 @@
import path from 'path';
export default ({ env }) => {
const client = env('DATABASE_CLIENT', 'sqlite');
const connections = {
mysql: {
connection: {
host: env('DATABASE_HOST', 'localhost'),
port: env.int('DATABASE_PORT', 3306),
database: env('DATABASE_NAME', 'strapi'),
user: env('DATABASE_USERNAME', 'strapi'),
password: env('DATABASE_PASSWORD', 'strapi'),
ssl: env.bool('DATABASE_SSL', false) && {
key: env('DATABASE_SSL_KEY', undefined),
cert: env('DATABASE_SSL_CERT', undefined),
ca: env('DATABASE_SSL_CA', undefined),
capath: env('DATABASE_SSL_CAPATH', undefined),
cipher: env('DATABASE_SSL_CIPHER', undefined),
rejectUnauthorized: env.bool('DATABASE_SSL_REJECT_UNAUTHORIZED', true),
},
},
pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) },
},
postgres: {
connection: {
connectionString: env('DATABASE_URL'),
host: env('DATABASE_HOST', 'localhost'),
port: env.int('DATABASE_PORT', 5432),
database: env('DATABASE_NAME', 'strapi'),
user: env('DATABASE_USERNAME', 'strapi'),
password: env('DATABASE_PASSWORD', 'strapi'),
ssl: env.bool('DATABASE_SSL', false) && {
key: env('DATABASE_SSL_KEY', undefined),
cert: env('DATABASE_SSL_CERT', undefined),
ca: env('DATABASE_SSL_CA', undefined),
capath: env('DATABASE_SSL_CAPATH', undefined),
cipher: env('DATABASE_SSL_CIPHER', undefined),
rejectUnauthorized: env.bool('DATABASE_SSL_REJECT_UNAUTHORIZED', true),
},
schema: env('DATABASE_SCHEMA', 'public'),
},
pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) },
},
sqlite: {
connection: {
filename: path.join(__dirname, '..', '..', env('DATABASE_FILENAME', '.tmp/data.db')),
},
useNullAsDefault: true,
},
};
return {
connection: {
client,
...connections[client],
acquireConnectionTimeout: env.int('DATABASE_CONNECTION_TIMEOUT', 60000),
},
};
};

View File

@@ -1,15 +0,0 @@
const path = require("path");
module.exports = ({ env }) => ({
connection: {
client: "sqlite",
connection: {
filename: path.join(
__dirname,
"..",
env("DATABASE_FILENAME", "./data.db")
),
},
useNullAsDefault: true,
},
});

View File

@@ -1,16 +0,0 @@
module.exports = ({ env }) => ({
upload: {
config: {
provider: "cloudinary",
providerOptions: {
cloud_name: env("CLOUDINARY_NAME"),
api_key: env("CLOUDINARY_KEY"),
api_secret: env("CLOUDINARY_SECRET"),
},
actionOptions: {
upload: {},
delete: {},
},
},
},
});

View File

@@ -1,5 +0,0 @@
module.exports = ({ env }) => ({
url: env("PUBLIC_URL", "https://vervet-big-dassie.ngrok-free.app"),
host: env("HOST", "0.0.0.0"),
port: env.int("PORT", 1337),
});

View File

@@ -1,4 +1,5 @@
module.exports = [
export default [
"strapi::logger",
"strapi::errors",
{
name: "strapi::security",
@@ -28,9 +29,9 @@ module.exports = [
},
"strapi::cors",
"strapi::poweredBy",
"strapi::logger",
"strapi::query",
"strapi::body",
"strapi::session",
"strapi::favicon",
"strapi::public",
];

View File

@@ -1,43 +0,0 @@
module.exports = ({ env }) => ({
upload: {
config: {
provider: "cloudinary",
providerOptions: {
cloud_name: env("CLOUDINARY_NAME"),
api_key: env("CLOUDINARY_KEY"),
api_secret: env("CLOUDINARY_SECRET"),
},
actionOptions: {
upload: {},
delete: {},
},
},
},
graphql: {
config: {
endpoint: "/graphql",
shadowCRUD: true,
playgroundAlways: false,
depthLimit: 7,
amountLimit: 100,
apolloServer: {
introspection: true,
},
},
},
"netlify-deployments": {
enabled: true,
config: {
accessToken: process.env.NETLIFY_DEPLOYMENTS_PLUGIN_ACCESS_TOKEN,
sites: [
{
name: "laba-webgunea",
id: "3e9ed70d-2f4b-4152-9aaf-1129570d01b4",
buildHook:
"https://api.netlify.com/build_hooks/61e338c09f4ef3bf644f86db",
branch: "main", // optional
},
],
},
},
});

51
back/config/plugins.ts Normal file
View File

@@ -0,0 +1,51 @@
export default () => ({
upload: {
config: {
provider: "cloudinary",
providerOptions: {
cloud_name: process.env.CLOUDINARY_NAME,
api_key: process.env.CLOUDINARY_KEY,
api_secret: process.env.CLOUDINARY_SECRET,
},
actionOptions: {
upload: {},
delete: {},
},
},
},
"icons-field": {
enabled: true,
config: {
icons: [
{
name: "bonbilla",
svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2m-3-3h6c.55 0 1-.45 1-1s-.45-1-1-1H9c-.55 0-1 .45-1 1s.45 1 1 1m3-17C7.86 2 4.5 5.36 4.5 9.5c0 3.82 2.66 5.86 3.77 6.5h7.46c1.11-.64 3.77-2.68 3.77-6.5C19.5 5.36 16.14 2 12 2"/></svg>',
},
{
name: "arkatza",
svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM5.92 19H5v-.92l9.06-9.06l.92.92zM20.71 5.63l-2.34-2.34c-.2-.2-.45-.29-.71-.29s-.51.1-.7.29l-1.83 1.83l3.75 3.75l1.83-1.83a.996.996 0 0 0 0-1.41"/></svg>',
},
{
name: "sobrea",
svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m-.4 4.25l-6.54 4.09c-.65.41-1.47.41-2.12 0L4.4 8.25a.85.85 0 1 1 .9-1.44L12 11l6.7-4.19a.85.85 0 1 1 .9 1.44"/></svg>',
},
],
},
},
"webp-converter": {
enabled: true,
config: {
// mimeTypes that converts to WebP. Default is ['image/png', 'image/jpeg', 'image/jpg']
mimeTypes: undefined,
options: {
// WebP options: https://sharp.pixelplumbing.com/api-output#webp
},
},
},
});

View File

@@ -1,4 +0,0 @@
module.exports = ({ env }) => ({
host: env("HOST", "0.0.0.0"),
port: env.int("PORT", 1337),
});

7
back/config/server.ts Normal file
View File

@@ -0,0 +1,7 @@
export default ({ env }) => ({
host: env("HOST", "0.0.0.0"),
port: env.int("PORT", 1337),
app: {
keys: env.array("APP_KEYS"),
},
});

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

BIN
back/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

View File

@@ -2,34 +2,44 @@
"name": "back",
"version": "0.1.0",
"private": true,
"description": "Laba webgunerako kudeaketa",
"license": "MIT",
"author": {
"name": "Laba Sarea"
},
"description": "A Strapi application",
"scripts": {
"build": "strapi build",
"console": "strapi console",
"deploy": "strapi deploy",
"dev": "strapi develop",
"develop": "strapi develop",
"public-proxy": "ngrok http --domain=vervet-big-dassie.ngrok-free.app 1337",
"start": "strapi start",
"strapi": "strapi"
"strapi": "strapi",
"upgrade": "pnpm dlx @strapi/upgrade latest",
"upgrade:dry": "pnpm dlx @strapi/upgrade latest --dry",
"public-proxy": "ngrok http --domain=vervet-big-dassie.ngrok-free.app 1337"
},
"dependencies": {
"@strapi/plugin-graphql": "^4.25.17",
"@strapi/plugin-i18n": "^4.25.13",
"@strapi/plugin-users-permissions": "^4.25.17",
"@strapi/provider-upload-cloudinary": "^4.25.17",
"@strapi/strapi": "^4.25.17",
"pg": "^8.13.1",
"pg-connection-string": "^2.7.0",
"@strapi/plugin-cloud": "5.23.0",
"@strapi/plugin-graphql": "^5.18.1",
"@strapi/plugin-users-permissions": "5.23.0",
"@strapi/provider-upload-cloudinary": "^5.23.0",
"@strapi/strapi": "5.23.0",
"better-sqlite3": "11.3.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^5.3.4",
"sqlite3": "5.1.7",
"strapi-plugin-netlify-deployments": "^2.0.2",
"styled-components": "^5.3.11"
"react-router-dom": "^6.30.1",
"strapi-plugin-icons-field": "^0.1.3",
"strapi-plugin-webp-converter": "^1.0.4",
"styled-components": "^6.1.19"
},
"devDependencies": {
"@types/node": "^20.19.9",
"@types/react": "^18.3.23",
"@types/react-dom": "^18.3.7",
"typescript": "^5.8.3"
},
"engines": {
"node": ">=18.0.0 <=22.x.x",
"npm": ">=6.0.0"
},
"strapi": {
"uuid": "b0fa2552-2961-4886-8673-c2d7fe07b8a1"
"uuid": "80b4f18d-c205-4488-9fc1-abea26dc35dd"
}
}

View File

@@ -1,3 +1,5 @@
import type { StrapiApp } from '@strapi/strapi/admin';
export default {
config: {
locales: [
@@ -29,7 +31,7 @@ export default {
// 'zh',
],
},
bootstrap(app) {
bootstrap(app: StrapiApp) {
console.log(app);
},
};

View File

@@ -1,16 +0,0 @@
module.exports = {
// Custom webpack config
webpack: (config, webpack) => {
// Note: we provide webpack above so you should not `require` it
// Perform customizations to webpack config
// Important: return the mutated config
return config;
},
// App customizations
app: (config) => {
config.locales = ["es"];
return config;
},
};

10
back/src/admin/app.ts Normal file
View File

@@ -0,0 +1,10 @@
import eu from "./translations/eu.json";
export default {
config: {
locales: ["eu", "es"],
translations: {
eu,
},
},
};

View File

@@ -0,0 +1,779 @@
{
"Analytics": "Analytics",
"Auth.components.Oops.text": "Your account has been suspended.",
"Auth.components.Oops.text.admin": "If this is a mistake, please contact your administrator.",
"Auth.components.Oops.title": "Oops...",
"Auth.form.active.label": "Active",
"Auth.form.button.forgot-password": "Send Email",
"Auth.form.button.go-home": "GO BACK HOME",
"Auth.form.button.login": "Login",
"Auth.form.button.login.providers.error": "We cannot connect you through the selected provider.",
"Auth.form.button.login.strapi": "Log in via Strapi",
"Auth.form.button.password-recovery": "Pasahitzaren Berreskuratzea",
"Auth.form.button.register": "Let's start",
"Auth.form.confirmPassword.label": "Confirm Password",
"Auth.form.currentPassword.label": "Current Password",
"Auth.form.email.label": "Email",
"Auth.form.email.placeholder": "e.g. kai@doe.com",
"Auth.form.error.blocked": "Your account has been blocked by the administrator.",
"Auth.form.error.code.provide": "Incorrect code provided.",
"Auth.form.error.confirmed": "Your account email is not confirmed.",
"Auth.form.error.email.invalid": "This email is invalid.",
"Auth.form.error.email.provide": "Please provide your username or your email.",
"Auth.form.error.email.taken": "Email is already taken.",
"Auth.form.error.invalid": "Identifier or password invalid.",
"Auth.form.error.params.provide": "Incorrect params provided.",
"Auth.form.error.password.format": "Your password cannot contain the symbol `$` more than three times.",
"Auth.form.error.password.local": "This user never set a local password, please login via the provider used during account creation.",
"Auth.form.error.password.matching": "Passwords do not match.",
"Auth.form.error.password.provide": "Please provide your password.",
"Auth.form.error.ratelimit": "Too many attempts, please try again in a minute.",
"Auth.form.error.user.not-exist": "This email does not exist.",
"Auth.form.error.username.taken": "Username is already taken.",
"Auth.form.firstname.label": "First name",
"Auth.form.firstname.placeholder": "e.g. Kai",
"Auth.form.forgot-password.email.label": "Enter your email",
"Auth.form.forgot-password.email.label.success": "Email successfully sent to",
"Auth.form.lastname.label": "Last name",
"Auth.form.lastname.placeholder": "e.g. Doe",
"Auth.form.password.hide-password": "Hide password",
"Auth.form.password.hint": "Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number",
"Auth.form.password.show-password": "Show password",
"Auth.form.register.news.label": "Keep me updated about new features & upcoming improvements (by doing this you accept the {terms} and the {policy}).",
"Auth.form.register.subtitle": "Credentials are only used to authenticate in Strapi. All saved data will be stored in your database.",
"Auth.form.rememberMe.label": "Remember me",
"Auth.form.username.label": "Username",
"Auth.form.username.placeholder": "e.g. Kai_Doe",
"Auth.form.welcome.subtitle": "Log in to your Strapi account",
"Auth.form.welcome.title": "Welcome to Strapi!",
"Auth.link.forgot-password": "Forgot your password?",
"Auth.link.ready": "Ready to sign in?",
"Auth.link.signin": "Sign in",
"Auth.link.signin.account": "Already have an account?",
"Auth.login.sso.divider": "Or login with",
"Auth.login.sso.loading": "Loading providers...",
"Auth.login.sso.subtitle": "Login to your account via SSO",
"Auth.privacy-policy-agreement.policy": "privacy policy",
"Auth.privacy-policy-agreement.terms": "terms",
"Auth.reset-password.title": "Reset password",
"Content Manager": "Content Manager",
"Content Type Builder": "Content-Types Builder",
"Documentation": "Documentation",
"Email": "Email",
"Files Upload": "Files Upload",
"HomePage.head.title": "Homepage",
"HomePage.header.title": "Kaixo, {name}",
"HomePage.header.subtitle": "Ongi etorri zure kudeaketa panelera",
"HomePage.widget.loading": "Loading widget content",
"HomePage.widget.error": "Couldn't load widget content.",
"HomePage.widget.no-data": "No content found.",
"Media Library": "Media Library",
"New entry": "New entry",
"Password": "Password",
"Provider": "Provider",
"ResetPasswordToken": "Reset Password Token",
"Role": "Role",
"Roles & Permissions": "Roles & Permissions",
"Roles.ListPage.notification.delete-all-not-allowed": "Some roles could not be deleted since they are associated with users",
"Roles.ListPage.notification.delete-not-allowed": "A role cannot be deleted if associated with users",
"Roles.RoleRow.select-all": "Select {name} for bulk actions",
"Roles.RoleRow.user-count": "{number, plural, =0 {# user} one {# user} other {# users}}",
"Roles.components.List.empty.withSearch": "There is no role corresponding to the search ({search})...",
"Settings.PageTitle": "Settings — {name}",
"Settings.apiTokens.ListView.headers.createdAt": "Created at",
"Settings.apiTokens.ListView.headers.description": "Description",
"Settings.apiTokens.ListView.headers.lastUsedAt": "Last used",
"Settings.apiTokens.ListView.headers.name": "Name",
"Settings.apiTokens.ListView.headers.type": "Token type",
"Settings.apiTokens.addFirstToken": "Add your first API Token",
"Settings.apiTokens.addNewToken": "Add new API Token",
"Settings.apiTokens.create": "Create new API Token",
"Settings.apiTokens.createPage.BoundRoute.title": "Bound route to",
"Settings.apiTokens.createPage.permissions.description": "Only actions bound by a route are listed below.",
"Settings.apiTokens.createPage.permissions.header.hint": "Select the application's actions or the plugin's actions and click on the cog icon to display the bound route",
"Settings.apiTokens.createPage.permissions.header.title": "Advanced settings",
"Settings.apiTokens.createPage.permissions.title": "Permissions",
"Settings.apiTokens.createPage.title": "Create API Token",
"Settings.apiTokens.description": "List of generated tokens to consume the API",
"Settings.apiTokens.emptyStateLayout": "You dont have any content yet...",
"Settings.apiTokens.regenerate": "Regenerate",
"Settings.apiTokens.title": "API Tokens",
"Settings.apiTokens.lastHour": "last hour",
"Settings.application.customization": "Customization",
"Settings.application.customization.auth-logo.carousel-hint": "Replace the logo in the authentication pages",
"Settings.application.customization.carousel-hint": "Change the admin panel logo (Max dimension: {dimension}x{dimension}, Max file size: {size}KB)",
"Settings.application.customization.carousel-slide.label": "Logo slide",
"Settings.application.customization.carousel.auth-logo.title": "Auth logo",
"Settings.application.customization.carousel.change-action": "Change logo",
"Settings.application.customization.carousel.menu-logo.title": "Menu logo",
"Settings.application.customization.carousel.reset-action": "Reset logo",
"Settings.application.customization.carousel.title": "Logo",
"Settings.application.customization.menu-logo.carousel-hint": "Replace the logo in the main navigation",
"Settings.application.customization.modal.cancel": "Cancel",
"Settings.application.customization.modal.pending": "Pending logo",
"Settings.application.customization.modal.pending.card-badge": "image",
"Settings.application.customization.modal.pending.choose-another": "Choose another logo",
"Settings.application.customization.modal.pending.subtitle": "Manage the chosen logo before uploading it",
"Settings.application.customization.modal.pending.title": "Logo ready to upload",
"Settings.application.customization.modal.pending.upload": "Upload logo",
"Settings.application.customization.modal.tab.label": "How do you want to upload your assets?",
"Settings.application.customization.modal.upload": "Upload logo",
"Settings.application.customization.modal.upload.cta.browse": "Browse files",
"Settings.application.customization.modal.upload.drag-drop": "Drag and Drop here or",
"Settings.application.customization.modal.upload.error-format": "Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg).",
"Settings.application.customization.modal.upload.error-network": "Network error",
"Settings.application.customization.modal.upload.error-size": "The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)",
"Settings.application.customization.modal.upload.file-validation": "Max dimension: {dimension}x{dimension}, Max size: {size}KB",
"Settings.application.customization.modal.upload.from-computer": "From computer",
"Settings.application.customization.modal.upload.from-url": "From URL",
"Settings.application.customization.modal.upload.from-url.input-label": "URL",
"Settings.application.customization.modal.upload.next": "Next",
"Settings.application.customization.size-details": "Max dimension: {dimension}×{dimension}, Max file size: {size}KB",
"Settings.application.description": "Administration panels global information",
"Settings.application.edition-title": "current edition",
"Settings.application.ee-or-ce": "{communityEdition, select, true {Community Edition} other {Enterprise Edition}}",
"Settings.application.ee.admin-seats.add-seats": "Manage seats",
"Settings.application.ee.admin-seats.support": "Contact sales",
"Settings.application.ee.admin-seats.at-limit-tooltip": "At limit: add seats to invite more users",
"Settings.application.ee.admin-seats.count": "<text>{enforcementUserCount}</text>/{permittedSeats}",
"Settings.application.get-help": "Get help",
"Settings.application.link-pricing": "See all pricing plans",
"Settings.application.link-upgrade": "Upgrade your admin panel",
"Settings.application.node-version": "node version",
"Settings.application.strapi-version": "Strapi version",
"Settings.application.strapiVersion": "Strapi version",
"Settings.application.title": "Overview",
"Settings.error": "Error",
"Settings.global": "Doikuntza orokorrak",
"Settings.permissions": "Kudeaketa panela",
"Settings.permissions.auditLogs.action": "Action",
"Settings.permissions.auditLogs.admin.auth.success": "Admin login",
"Settings.permissions.auditLogs.admin.logout": "Admin logout",
"Settings.permissions.auditLogs.component.create": "Konponentea sortu",
"Settings.permissions.auditLogs.component.delete": "Konponentea ezabatu",
"Settings.permissions.auditLogs.component.update": "Konponentea eguneratu",
"Settings.permissions.auditLogs.content-type.create": "Create content type",
"Settings.permissions.auditLogs.content-type.delete": "Delete content type",
"Settings.permissions.auditLogs.content-type.update": "Update content type",
"Settings.permissions.auditLogs.date": "Data",
"Settings.permissions.auditLogs.details": "Log Details",
"Settings.permissions.auditLogs.entry.create": "Create entry{model, select, undefined {} other { ({model})}}",
"Settings.permissions.auditLogs.entry.delete": "Delete entry{model, select, undefined {} other { ({model})}}",
"Settings.permissions.auditLogs.entry.publish": "Publish entry {model, select, undefined {} other {({model})}}",
"Settings.permissions.auditLogs.entry.unpublish": "Unpublish entry{model, select, undefined {} other { ({model})}}",
"Settings.permissions.auditLogs.entry.update": "Update entry{model, select, undefined {} other { ({model})}}",
"Settings.permissions.auditLogs.filters.combobox.aria-label": "Search and select an option to filter",
"Settings.permissions.auditLogs.listview.header.subtitle": "Logs of all the activities that happened in your environment",
"Settings.permissions.auditLogs.not-available": "Audit Logs is only available as part of a paid plan. Upgrade to get a searchable and filterable display of all activities.",
"Settings.permissions.auditLogs.media.create": "Create media",
"Settings.permissions.auditLogs.media.delete": "Delete media",
"Settings.permissions.auditLogs.media.update": "Update media",
"Settings.permissions.auditLogs.payload": "Payload",
"Settings.permissions.auditLogs.permission.create": "Create permission",
"Settings.permissions.auditLogs.permission.delete": "Delete permission",
"Settings.permissions.auditLogs.permission.update": "Update permission",
"Settings.permissions.auditLogs.role.create": "Create role",
"Settings.permissions.auditLogs.role.delete": "Delete role",
"Settings.permissions.auditLogs.role.update": "Update role",
"Settings.permissions.auditLogs.user": "User",
"Settings.permissions.auditLogs.user.create": "Create user",
"Settings.permissions.auditLogs.user.delete": "Delete user",
"Settings.permissions.auditLogs.user.fullname": "{firstname} {lastname}",
"Settings.permissions.auditLogs.user.update": "Update user",
"Settings.permissions.auditLogs.userId": "User ID",
"Settings.permissions.category": "Permissions settings for the {category}",
"Settings.permissions.category.plugins": "Permissions settings for the {category} plugin",
"Settings.permissions.conditions.anytime": "Anytime",
"Settings.permissions.conditions.apply": "Apply",
"Settings.permissions.conditions.can": "Can",
"Settings.permissions.conditions.conditions": "Conditions",
"Settings.permissions.conditions.define-conditions": "Define conditions",
"Settings.permissions.conditions.links": "Links",
"Settings.permissions.conditions.no-actions": "You first need to select actions (create, read, update, ...) before defining conditions on them.",
"Settings.permissions.conditions.none-selected": "Anytime",
"Settings.permissions.conditions.or": "OR",
"Settings.permissions.conditions.when": "When",
"Settings.permissions.select-all-by-permission": "Select all {label} permissions",
"Settings.permissions.select-by-permission": "Select {label} permission",
"Settings.permissions.users.active": "Active",
"Settings.permissions.users.create": "Invite new user",
"Settings.permissions.users.email": "Email",
"Settings.permissions.users.firstname": "Firstname",
"Settings.permissions.users.form.sso": "Connect with SSO",
"Settings.permissions.users.sso.provider.error": "An error occurred while requesting the SSO settings",
"Settings.permissions.users.form.sso.description": "When enabled (ON), users can login via SSO",
"Settings.permissions.users.inactive": "Inactive",
"Settings.permissions.users.lastname": "Lastname",
"Settings.permissions.users.listview.header.subtitle": "All the users who have access to the Strapi admin panel",
"Settings.permissions.users.roles": "Roles",
"Settings.permissions.users.strapi-author": "Author",
"Settings.permissions.users.strapi-editor": "Editor",
"Settings.permissions.users.strapi-super-admin": "Super Admin",
"Settings.permissions.users.tabs.label": "Tabs Permissions",
"Settings.permissions.users.user-status": "User status",
"Settings.permissions.users.username": "Username",
"Settings.profile.form.notify.data.loaded": "Your profile data has been loaded",
"Settings.profile.form.section.experience.clear.select": "Clear the interface language selected",
"Settings.profile.form.section.experience.here": "here",
"Settings.profile.form.section.experience.interfaceLanguage": "Interface language",
"Settings.profile.form.section.experience.interfaceLanguage.hint": "This will only display your own interface in the chosen language.",
"Settings.profile.form.section.experience.interfaceLanguageHelp": "Preference changes will apply only to you. More information is available {here}.",
"Settings.profile.form.section.experience.mode.hint": "Displays your interface in the chosen mode.",
"Settings.profile.form.section.experience.mode.label": "Interface mode",
"Settings.profile.form.section.experience.mode.option-label": "{name} mode",
"Settings.profile.form.section.experience.mode.option-system-label": "Use system settings",
"Settings.profile.form.section.experience.title": "Experience",
"Settings.profile.form.section.head.title": "User profile",
"Settings.profile.form.section.profile.page.title": "Profile page",
"Settings.roles.create.description": "Define the rights given to the role",
"Settings.roles.create.title": "Create a role",
"Settings.roles.created": "Role created",
"Settings.roles.edit.title": "Edit a role",
"Settings.roles.form.button.users-with-role": "{number, plural, =0 {# users} one {# user} other {# users}} with this role",
"Settings.roles.form.created": "Created",
"Settings.roles.form.description": "Name and description of the role",
"Settings.roles.form.permission.property-label": "{label} permissions",
"Settings.roles.form.permissions.attributesPermissions": "Fields permissions",
"Settings.roles.form.permissions.create": "Create",
"Settings.roles.form.permissions.delete": "Delete",
"Settings.roles.form.permissions.publish": "Publish",
"Settings.roles.form.permissions.read": "Read",
"Settings.roles.form.permissions.update": "Update",
"Settings.roles.list.button.add": "Add new role",
"Settings.roles.list.description": "List of roles",
"Settings.roles.title.singular": "role",
"Settings.sso.description": "Ezarri zure SSO ezarpenak.",
"Settings.sso.form.defaultRole.description": "It will attach the new authenticated user to the selected role",
"Settings.sso.form.defaultRole.description-not-allowed": "You need to have the permission to read the admin roles",
"Settings.sso.form.defaultRole.label": "Default role",
"Settings.sso.form.localAuthenticationLock.label": "Local authentication lock-out",
"Settings.sso.form.localAuthenticationLock.description": "Select the roles for which you want to disable the local authentication",
"Settings.sso.form.registration.description": "Create new user on SSO login if no account exists",
"Settings.sso.form.registration.label": "Auto-registration",
"Settings.sso.title": "Single Sign-On",
"Settings.sso.not-available": "SSO is only available as part of a paid plan. Upgrade to configure additional sign-in & sign-up methods for your administration panel.",
"Settings.content-history.title": "Content History",
"Settings.content-history.description": "Get more control over every step of your contents lifecycle.",
"Settings.content-history.not-available": "Content History is only available as part of a paid plan. Upgrade to get full control over your content's lifecycle.",
"Settings.tokens.Button.cancel": "Cancel",
"Settings.tokens.Button.regenerate": "Regenerate",
"Settings.tokens.ListView.headers.createdAt": "Created at",
"Settings.tokens.ListView.headers.description": "Description",
"Settings.tokens.ListView.headers.lastUsedAt": "Last used",
"Settings.tokens.ListView.headers.name": "Name",
"Settings.tokens.RegenerateDialog.title": "Regenerate token",
"Settings.tokens.copy.editMessage": "For security reasons, you can only see your token once.",
"Settings.tokens.copy.editTitle": "This token isnt accessible anymore.",
"Settings.tokens.copy.lastWarning": "Make sure to copy this token, you wont be able to see it again!",
"Settings.tokens.duration.30-days": "30 days",
"Settings.tokens.duration.7-days": "7 days",
"Settings.tokens.duration.90-days": "90 days",
"Settings.tokens.duration.expiration-date": "Expiration date",
"Settings.tokens.duration.unlimited": "Unlimited",
"Settings.tokens.form.description": "Description",
"Settings.tokens.form.duration": "Token duration",
"Settings.tokens.form.name": "Name",
"Settings.tokens.form.type": "Token type",
"Settings.tokens.notification.copied": "Token copied to clipboard.",
"Settings.tokens.popUpWarning.message": "Are you sure you want to regenerate this token?",
"Settings.tokens.regenerate": "Regenerate",
"Settings.tokens.types.custom": "Custom",
"Settings.tokens.types.full-access": "Full access",
"Settings.tokens.types.read-only": "Read-only",
"Settings.transferTokens.ListView.headers.type": "Token type",
"Settings.transferTokens.addFirstToken": "Add your first Transfer Token",
"Settings.transferTokens.addNewToken": "Add new Transfer Token",
"Settings.transferTokens.create": "Create new Transfer Token",
"Settings.transferTokens.createPage.title": "Create Transfer Token",
"Settings.transferTokens.description": "List of generated transfer tokens",
"Settings.transferTokens.emptyStateLayout": "You dont have any content yet...",
"Settings.transferTokens.title": "Transfer Tokens",
"Settings.webhooks.create": "Create a webhook",
"Settings.webhooks.create.header": "Create new header",
"Settings.webhooks.created": "Webhook created",
"Settings.webhooks.event.publish-tooltip": "This event only exists for contents with Draft/Publish system enabled",
"Settings.webhooks.event.select": "Select event",
"Settings.webhooks.events.isLoading": "Events loading",
"Settings.webhooks.events.create": "Create",
"Settings.webhooks.events.update": "Update",
"Settings.webhooks.events.delete": "Delete webhook",
"Settings.webhooks.form.events": "Events",
"Settings.webhooks.form.headers": "Headers",
"Settings.webhooks.form.url": "URL",
"Settings.webhooks.headers.remove": "Remove header row {number}",
"Settings.webhooks.key": "Key",
"Settings.webhooks.list.button.add": "Create new webhook",
"Settings.webhooks.list.description": "Get POST changes notifications",
"Settings.webhooks.list.empty.description": "No webhooks found",
"Settings.webhooks.list.empty.link": "See our documentation",
"Settings.webhooks.list.empty.title": "There are no webhooks yet",
"Settings.webhooks.list.th.actions": "actions",
"Settings.webhooks.list.th.status": "status",
"Settings.webhooks.list.loading.success": "Webhooks have been loaded",
"Settings.webhooks.singular": "webhook",
"Settings.webhooks.title": "Webhooks",
"Settings.webhooks.to.delete": "{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected",
"Settings.webhooks.trigger": "Trigger",
"Settings.webhooks.trigger.cancel": "Cancel trigger",
"Settings.webhooks.trigger.pending": "Pending…",
"Settings.webhooks.trigger.save": "Please save to trigger",
"Settings.webhooks.trigger.success": "Success!",
"Settings.webhooks.trigger.success.label": "Trigger succeeded",
"Settings.webhooks.trigger.test": "Test-trigger",
"Settings.webhooks.trigger.title": "Save before Trigger",
"Settings.webhooks.value": "Value",
"Settings.webhooks.validation.name.required": "Name is required",
"Settings.webhooks.validation.name.regex": "The name must start with a letter and only contain letters, numbers, spaces and underscores",
"Settings.webhooks.validation.url.required": "Url is required",
"Settings.webhooks.validation.url.regex": "The value must be a valid Url",
"Settings.webhooks.validation.key": "Key is required",
"Settings.webhooks.validation.value": "Value is required",
"Settings.page.PurchaseAudit-logs.description": "Track and review changes with your team",
"Settings.page.PurchaseAudit-logs.perks1": "Easily track changes",
"Settings.page.PurchaseAudit-logs.perks2": "Review changes with ease",
"Settings.page.PurchaseAudit-logs.perks3": "Maintain security and compliance",
"Settings.page.PurchaseContent-history.description": "Instantly revert content changes",
"Settings.page.PurchaseContent-history.perks1": "Browse your content history",
"Settings.page.PurchaseContent-history.perks2": "Revert changes in one click",
"Settings.page.PurchaseContent-history.perks3": "Track changes across locales",
"Settings.page.PurchaseSSO.description": "Simplify authentication for your team",
"Settings.page.PurchaseSSO.perks1": "Unified authentication",
"Settings.page.PurchaseSSO.perks2": "Enhanced security",
"Settings.page.PurchaseSSO.perks3": "Support for webhooks",
"Settings.page.purchase.upgrade.cta": "Upgrade",
"Settings.page.purchase.learn-more.cta": "Learn more",
"Usecase.back-end": "Back-end developer",
"Usecase.button.skip": "Skip this question",
"Usecase.content-creator": "Content Creator",
"Usecase.front-end": "Front-end developer",
"Usecase.full-stack": "Full-stack developer",
"Usecase.input.work-type": "What type of work do you do?",
"Usecase.notification.success.project-created": "Project has been successfully created",
"Usecase.other": "Other",
"Usecase.title": "Tell us a bit more about yourself",
"Username": "Username",
"Users & Permissions": "Users & Permissions",
"Users": "Users",
"Users.components.List.empty": "There is no users...",
"Users.components.List.empty.withFilters": "There is no users with the applied filters...",
"Users.components.List.empty.withSearch": "There is no users corresponding to the search ({search})...",
"admin.pages.MarketPlacePage.sort.label": "Sort by",
"admin.pages.MarketPlacePage.filters.categories": "Categories",
"admin.pages.MarketPlacePage.filters.categoriesSelected": "{count, plural, =0 {No categories} one {# category} other {# categories}} selected",
"admin.pages.MarketPlacePage.filters.collections": "Collections",
"admin.pages.MarketPlacePage.filters.collectionsSelected": "{count, plural, =0 {No Collections} one {# Collection} other {# Collections}} selected",
"admin.pages.MarketPlacePage.head": "Marketplace — Plugins",
"admin.pages.MarketPlacePage.missingPlugin.description": "Tell us what plugin you are looking for and we'll let our community plugin developers know in case they are in search for inspiration!",
"admin.pages.MarketPlacePage.missingPlugin.title": "Missing a plugin?",
"admin.pages.MarketPlacePage.offline.subtitle": "You need to be connected to the Internet to access Strapi Market.",
"admin.pages.MarketPlacePage.offline.title": "You are offline",
"admin.pages.MarketPlacePage.plugin.copy": "Copy install command",
"admin.pages.MarketPlacePage.plugin.copy.success": "Install command ready to be pasted in your terminal",
"admin.pages.MarketPlacePage.plugin.downloads": "This plugin has {downloadsCount} weekly downloads",
"admin.pages.MarketPlacePage.plugin.githubStars": "This plugin was starred {starsCount} on GitHub",
"admin.pages.MarketPlacePage.plugin.info": "Learn more",
"admin.pages.MarketPlacePage.plugin.info.label": "Learn more about {pluginName}",
"admin.pages.MarketPlacePage.plugin.info.text": "More",
"admin.pages.MarketPlacePage.plugin.installed": "Installed",
"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi": "Made by Strapi",
"admin.pages.MarketPlacePage.plugin.tooltip.verified": "Plugin verified by Strapi",
"admin.pages.MarketPlacePage.plugin.version": "Update your Strapi version: \"{strapiAppVersion}\" to: \"{versionRange}\"",
"admin.pages.MarketPlacePage.plugin.version.null": "Unable to verify compatibility with your Strapi version: \"{strapiAppVersion}\"",
"admin.pages.MarketPlacePage.plugins": "Plugins",
"admin.pages.MarketPlacePage.provider.downloads": "This provider has {downloadsCount} weekly downloads",
"admin.pages.MarketPlacePage.provider.githubStars": "This provider was starred {starsCount} on GitHub",
"admin.pages.MarketPlacePage.providers": "Providers",
"admin.pages.MarketPlacePage.search.clear": "Clear the search",
"admin.pages.MarketPlacePage.search.empty": "No result for \"{target}\"",
"admin.pages.MarketPlacePage.search.placeholder": "Search",
"admin.pages.MarketPlacePage.sort.alphabetical": "Alphabetical order",
"admin.pages.MarketPlacePage.sort.alphabetical.selected": "Sort by alphabetical order",
"admin.pages.MarketPlacePage.sort.githubStars": "Number of GitHub stars",
"admin.pages.MarketPlacePage.sort.githubStars.selected": "Sort by GitHub stars",
"admin.pages.MarketPlacePage.sort.newest": "Newest",
"admin.pages.MarketPlacePage.sort.newest.selected": "Sort by newest",
"admin.pages.MarketPlacePage.sort.npmDownloads": "Number of downloads",
"admin.pages.MarketPlacePage.sort.npmDownloads.selected": "Sort by npm downloads",
"admin.pages.MarketPlacePage.submit.plugin.link": "Submit plugin",
"admin.pages.MarketPlacePage.submit.provider.link": "Submit provider",
"admin.pages.MarketPlacePage.subtitle": "Get more out of Strapi",
"admin.pages.MarketPlacePage.tab-group.label": "Plugins and Providers for Strapi",
"anErrorOccurred": "Whoops! Something went wrong. Please, try again.",
"noPreview": "No preview available",
"app.component.CopyToClipboard.label": "Copy to clipboard",
"app.component.search.label": "Search for {target}",
"app.component.table.duplicate": "Duplicate {target}",
"app.component.table.edit": "Edit {target}",
"app.component.table.read": "Read {target}",
"app.component.table.select.one-entry": "Select {target}",
"app.component.table.view": "{target} details",
"app.components.BlockLink.blog": "Blog",
"app.components.BlockLink.blog.content": "Read the latest news about Strapi and the ecosystem.",
"app.components.BlockLink.cloud": "Strapi Cloud",
"app.components.BlockLink.cloud.content": "Fully-managed cloud hosting for your Strapi project.",
"app.components.BlockLink.code": "Code examples",
"app.components.BlockLink.code.content": "Learn by testing real projects developed the community.",
"app.components.BlockLink.documentation.content": "Discover the essential concepts, guides and instructions.",
"app.components.BlockLink.tutorial": "Tutorials",
"app.components.BlockLink.tutorial.content": "Follow step-by-step instructions to use and customize Strapi.",
"app.components.Button.cancel": "Cancel",
"app.components.Button.confirm": "Confirm",
"app.components.Button.reset": "Reset",
"app.components.ComingSoonPage.comingSoon": "Coming soon",
"app.components.ConfirmDialog.title": "Confirmation",
"app.components.DownloadInfo.download": "Download in progress...",
"app.components.DownloadInfo.text": "This could take a minute. Thanks for your patience.",
"app.components.EmptyAttributes.title": "There are no fields yet",
"app.components.EmptyStateLayout.content-document": "No content found",
"app.components.EmptyStateLayout.content-permissions": "You don't have the permissions to access that content",
"app.components.GuidedTour.CM.create.content": "<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>💡 Quick tip — Don't forget to hit publish on the content you create.</p>",
"app.components.GuidedTour.CM.create.title": "⚡️ Create content",
"app.components.GuidedTour.CM.success.content": "<p>Awesome, one last step to go!</p><b>🚀 See content in action</b>",
"app.components.GuidedTour.CM.success.cta.title": "Test the API",
"app.components.GuidedTour.CM.success.title": "Step 2: Completed ✅",
"app.components.GuidedTour.CTB.create.content": "<p>Collection Types help you manage several entries, Single Types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection Type whereas a Homepage would be a Single Type.</p>",
"app.components.GuidedTour.CTB.create.cta.title": "Build a Collection Type",
"app.components.GuidedTour.CTB.create.title": "🧠 Create a first Collection Type",
"app.components.GuidedTour.CTB.success.content": "<p>Good going!</p><b>⚡️ What would you like to share with the world?</b>",
"app.components.GuidedTour.CTB.success.title": "Step 1: Completed ✅",
"app.components.GuidedTour.apiTokens.create.content": "<p>Generate an authentication token here and retrieve the content you just created.</p>",
"app.components.GuidedTour.apiTokens.create.cta.title": "Generate an API Token",
"app.components.GuidedTour.apiTokens.create.title": "🚀 See content in action",
"app.components.GuidedTour.apiTokens.success.content": "<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>",
"app.components.GuidedTour.apiTokens.success.cta.title": "Go back to homepage",
"app.components.GuidedTour.apiTokens.success.title": "Step 3: Completed ✅",
"app.components.GuidedTour.create-content": "Create content",
"app.components.GuidedTour.home.CM.title": "⚡️ What would you like to share with the world?",
"app.components.GuidedTour.home.CTB.cta.title": "Go to the Content type Builder",
"app.components.GuidedTour.home.CTB.title": "🧠 Build the content structure",
"app.components.GuidedTour.home.apiTokens.cta.title": "Test the API",
"app.components.GuidedTour.skip": "Skip the tour",
"app.components.GuidedTour.title": "3 steps to get started",
"app.components.ImgPreview.hint": "Drag & drop your file into this area or {browse} for a file to upload",
"app.components.ImgPreview.hint.browse": "browse",
"app.components.InputFile.newFile": "Add new file",
"app.components.InputFileDetails.open": "Open in a new tab",
"app.components.InputFileDetails.originalName": "Original name:",
"app.components.InputFileDetails.remove": "Remove this file",
"app.components.InputFileDetails.size": "Size:",
"app.components.InstallPluginPage.Download.description": "It might take a few seconds to download and install the plugin.",
"app.components.InstallPluginPage.Download.title": "Downloading...",
"app.components.InstallPluginPage.description": "Extend your app effortlessly.",
"app.components.LeftMenu.collapse": "Collapse the navbar",
"app.components.LeftMenu.expand": "Expand the navbar",
"app.components.LeftMenu.general": "General",
"app.components.LeftMenu.logo.alt": "Application logo",
"app.components.LeftMenu.logout": "Log out",
"app.components.LeftMenu.navbrand.title": "Strapi Dashboard",
"app.components.LeftMenu.navbrand.workplace": "Workplace",
"app.components.LeftMenu.plugins": "Plugins",
"app.components.LeftMenuFooter.help": "Help",
"app.components.LeftMenuFooter.poweredBy": "Powered by ",
"app.components.LeftMenuLinkContainer.collectionTypes": "Collection Types",
"app.components.LeftMenuLinkContainer.configuration": "Configurations",
"app.components.LeftMenuLinkContainer.general": "General",
"app.components.LeftMenuLinkContainer.noPluginsInstalled": "No plugins installed yet",
"app.components.LeftMenuLinkContainer.plugins": "Plugins",
"app.components.LeftMenuLinkContainer.singleTypes": "Single Types",
"app.components.ListPluginsPage.deletePlugin.description": "It might take a few seconds to uninstall the plugin.",
"app.components.ListPluginsPage.deletePlugin.title": "Uninstalling",
"app.components.ListPluginsPage.description": "List of the installed plugins in the project.",
"app.components.ListPluginsPage.head.title": "List plugins",
"app.components.Logout.logout": "Logout",
"app.components.Logout.profile": "Profile",
"app.components.MarketplaceBanner": "Discover plugins built by the community, and many more awesome things to kickstart your project, on Strapi Marketplace.",
"app.components.MarketplaceBanner.image.alt": "A Strapi rocket logo",
"app.components.MarketplaceBanner.link": "Check it out now",
"app.components.NotFoundPage.back": "Back to homepage",
"app.components.NotFoundPage.description": "Not Found",
"app.components.NpsSurvey.banner-title": "How likely are you to recommend Strapi to a friend or colleague?",
"app.components.NpsSurvey.feedback-response": "Thank you very much for your feedback!",
"app.components.NpsSurvey.feedback-question": "Do you have any suggestion for improvements?",
"app.components.NpsSurvey.submit-feedback": "Submit Feedback",
"app.components.NpsSurvey.dismiss-survey-label": "Dismiss survey",
"app.components.NpsSurvey.no-recommendation": "Not at all likely",
"app.components.NpsSurvey.happy-to-recommend": "Extremely likely",
"app.components.Official": "Official",
"app.components.Onboarding.help.button": "Help button",
"app.components.Onboarding.label.completed": "% completed",
"app.components.Onboarding.link.build-content": "Build a content architecture",
"app.components.Onboarding.link.manage-content": "Add & manage content",
"app.components.Onboarding.link.manage-media": "Manage media",
"app.components.Onboarding.link.more-videos": "Watch more videos",
"app.components.Onboarding.title": "Get Started Videos",
"app.components.PluginCard.Button.label.download": "Download",
"app.components.PluginCard.Button.label.install": "Already installed",
"app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed": "The autoReload feature needs to be enabled. Please start your app with `yarn develop`.",
"app.components.PluginCard.PopUpWarning.install.impossible.confirm": "I understand!",
"app.components.PluginCard.PopUpWarning.install.impossible.environment": "For security reasons, a plugin can only be downloaded in a development environment.",
"app.components.PluginCard.PopUpWarning.install.impossible.title": "Downloading is impossible",
"app.components.PluginCard.compatible": "Compatible with your app",
"app.components.PluginCard.compatibleCommunity": "Compatible with the community",
"app.components.PluginCard.more-details": "More details",
"app.components.ToggleCheckbox.off-label": "False",
"app.components.ToggleCheckbox.on-label": "True",
"app.components.Users.MagicLink.connect": "Copy and share this link to give access to this user",
"app.components.Users.MagicLink.connect.sso": "Send this link to the user, the first login can be made via a SSO provider",
"app.components.Users.ModalCreateBody.block-title.details": "User details",
"app.components.Users.ModalCreateBody.block-title.roles": "User's roles",
"app.components.Users.ModalCreateBody.block-title.roles.description": "A user can have one or several roles",
"app.components.Users.SortPicker.button-label": "Sort by",
"app.components.Users.SortPicker.sortby.email_asc": "Email (A to Z)",
"app.components.Users.SortPicker.sortby.email_desc": "Email (Z to A)",
"app.components.Users.SortPicker.sortby.firstname_asc": "First name (A to Z)",
"app.components.Users.SortPicker.sortby.firstname_desc": "First name (Z to A)",
"app.components.Users.SortPicker.sortby.lastname_asc": "Last name (A to Z)",
"app.components.Users.SortPicker.sortby.lastname_desc": "Last name (Z to A)",
"app.components.Users.SortPicker.sortby.username_asc": "Username (A to Z)",
"app.components.Users.SortPicker.sortby.username_desc": "Username (Z to A)",
"app.components.listPlugins.button": "Add New Plugin",
"app.components.listPlugins.title.none": "No plugins installed",
"app.components.listPluginsPage.deletePlugin.error": "An error occurred while uninstalling the plugin",
"app.containers.App.notification.error.init": "An error occurred while requesting the API",
"app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin": "If you do not receive this link, please contact your administrator.",
"app.containers.AuthPage.ForgotPasswordSuccess.text.email": "It can take a few minutes to receive your password recovery link.",
"app.containers.AuthPage.ForgotPasswordSuccess.title": "Email sent",
"app.containers.Users.EditPage.form.active.label": "Active",
"app.containers.Users.EditPage.header.label": "Edit {name}",
"app.containers.Users.EditPage.header.label-loading": "Edit user",
"app.containers.Users.EditPage.roles-bloc-title": "Attributed roles",
"app.containers.Users.ModalForm.footer.button-success": "Invite user",
"app.links.configure-view": "Configure the view",
"app.page.not.found": "Oops! We can't seem to find the page you're looking for...",
"app.static.links.cheatsheet": "CheatSheet",
"app.utils.SelectOption.defaultMessage": " ",
"app.utils.add-filter": "Add filter",
"app.utils.close-label": "Close",
"app.utils.defaultMessage": " ",
"app.utils.delete": "Delete",
"app.utils.duplicate": "Duplicate",
"app.utils.edit": "Edit",
"app.utils.errors.file-too-big.message": "The file is too big",
"app.utils.filter-value": "Filter value",
"app.utils.filters": "Filters",
"app.utils.notify.data-loaded": "The {target} has loaded",
"app.utils.placeholder.defaultMessage": " ",
"app.utils.publish": "Publish",
"app.utils.refresh": "Refresh",
"app.utils.select-all": "Select all",
"app.utils.select-field": "Select field",
"app.utils.select-filter": "Select filter",
"app.utils.unpublish": "Unpublish",
"app.utils.published": "Published",
"app.utils.ready-to-publish": "Ready to publish",
"app.utils.already-published": "Already published",
"app.utils.ready-to-publish-changes": "Ready to publish changes",
"app.utils.ready-to-unpublish-changes": "Ready to unpublish",
"app.confirm.body": "Are you sure?",
"clearLabel": "Clear",
"coming.soon": "This content is currently under construction and will be back in a few weeks!",
"component.Input.error.validation.integer": "The value must be an integer",
"components.AutoReloadBlocker.description": "Run Strapi with one of the following commands:",
"components.AutoReloadBlocker.header": "Reload feature is required for this plugin.",
"components.ErrorBoundary.title": "Something went wrong...",
"components.FilterOptions.FILTER_TYPES.$contains": "contains",
"components.FilterOptions.FILTER_TYPES.$containsi": "contains (case insensitive)",
"components.FilterOptions.FILTER_TYPES.$endsWith": "ends with",
"components.FilterOptions.FILTER_TYPES.$endsWithi": "ends with (case insensitive)",
"components.FilterOptions.FILTER_TYPES.$eq": "is",
"components.FilterOptions.FILTER_TYPES.$eqi": "is (case insensitive)",
"components.FilterOptions.FILTER_TYPES.$gt": "is greater than",
"components.FilterOptions.FILTER_TYPES.$gte": "is greater than or equal to",
"components.FilterOptions.FILTER_TYPES.$lt": "is lower than",
"components.FilterOptions.FILTER_TYPES.$lte": "is lower than or equal to",
"components.FilterOptions.FILTER_TYPES.$ne": "is not",
"components.FilterOptions.FILTER_TYPES.$nei": "is not (case insensitive)",
"components.FilterOptions.FILTER_TYPES.$notContains": "does not contain",
"components.FilterOptions.FILTER_TYPES.$notContainsi": "does not contain (case insensitive)",
"components.FilterOptions.FILTER_TYPES.$notNull": "is not null",
"components.FilterOptions.FILTER_TYPES.$null": "is null",
"components.FilterOptions.FILTER_TYPES.$startsWith": "starts with",
"components.FilterOptions.FILTER_TYPES.$startsWithi": "starts with (case insensitive)",
"components.Input.error.attribute.key.taken": "This value already exists",
"components.Input.error.attribute.sameKeyAndName": "Can't be equal",
"components.Input.error.attribute.taken": "This field name already exists",
"components.Input.error.contain.lowercase": "Password must contain at least one lowercase character",
"components.Input.error.contain.number": "Password must contain at least one number",
"components.Input.error.contain.maxBytes": "Password must be less than 73 bytes",
"components.Input.error.contain.uppercase": "Password must contain at least one uppercase character",
"components.Input.error.contentTypeName.taken": "This name already exists",
"components.Input.error.custom-error": "{errorMessage} ",
"components.Input.error.password.noMatch": "Passwords do not match",
"components.Input.error.validation.email": "This is not a valid email",
"components.Input.error.validation.json": "This doesn't match the JSON format",
"components.Input.error.validation.lowercase": "The value must be a lowercase string",
"components.Input.error.validation.max": "The value is too high (max: {max}).",
"components.Input.error.validation.maxLength": "The value is too long (max: {max}).",
"components.Input.error.validation.min": "The value is too low (min: {min}).",
"components.Input.error.validation.minLength": "The value is too short (min: {min}).",
"components.Input.error.validation.minSupMax": "Can't be superior",
"components.Input.error.validation.regex": "The value does not match the regex.",
"components.Input.error.validation.string": "This is not a valid string.",
"components.Input.error.validation.required": "This value is required.",
"components.Input.error.validation.unique": "This value is already used.",
"components.Input.error.validation.email.withField": "{field} is an invalid email",
"components.Input.error.validation.json.withField": "{field} doesn't match the JSON format",
"components.Input.error.validation.lowercase.withField": "{field} must be a lowercase string",
"components.Input.error.validation.max.withField": "{field} is too high.",
"components.Input.error.validation.maxLength.withField": "{field} is too long.",
"components.Input.error.validation.min.withField": "{field} is too low.",
"components.Input.error.validation.minLength.withField": "{field} is too short.",
"components.Input.error.validation.minSupMax.withField": "{field} can't be superior",
"components.Input.error.validation.regex.withField": "{field} does not match the regex.",
"components.Input.error.validation.required.withField": "{field} is required.",
"components.Input.error.validation.unique.withField": "{field} is already used.",
"components.InputSelect.option.placeholder": "Choose here",
"components.ListRow.empty": "There is no data to be shown.",
"components.NotAllowedInput.text": "No permissions to see this field",
"components.OverlayBlocker.description": "You're using a feature that needs the server to restart. The page will reload automatically.",
"components.OverlayBlocker.description.serverError": "The server should have restarted, please check your logs in the terminal.",
"components.OverlayBlocker.title": "Waiting for restart...",
"components.OverlayBlocker.title.serverError": "The restart is taking longer than expected",
"components.PageFooter.select": "Entries per page",
"components.ProductionBlocker.description": "For safety purposes we have to disable this plugin in other environments.",
"components.ProductionBlocker.header": "This plugin is only available in development.",
"components.ViewSettings.tooltip": "View settings",
"components.TableHeader.sort": "Sort on {label}",
"components.Blocks.modifiers.bold": "Bold",
"components.Blocks.modifiers.italic": "Italic",
"components.Blocks.modifiers.underline": "Underline",
"components.Blocks.modifiers.strikethrough": "Strikethrough",
"components.Blocks.modifiers.code": "Inline code",
"components.Blocks.link": "Link",
"components.Blocks.expand": "Expand",
"components.Blocks.collapse": "Collapse",
"components.Blocks.popover.text": "Text",
"components.Blocks.popover.text.placeholder": "Enter link text",
"components.Blocks.popover.link": "Link",
"components.Blocks.popover.link.placeholder": "Paste link",
"components.Blocks.popover.link.error": "Please enter valid link",
"components.Blocks.popover.remove": "Remove",
"components.Blocks.popover.edit": "Edit",
"components.Blocks.blocks.selectBlock": "Select a block",
"components.Blocks.blocks.text": "Text",
"components.Blocks.blocks.heading1": "Heading 1",
"components.Blocks.blocks.heading2": "Heading 2",
"components.Blocks.blocks.heading3": "Heading 3",
"components.Blocks.blocks.heading4": "Heading 4",
"components.Blocks.blocks.heading5": "Heading 5",
"components.Blocks.blocks.heading6": "Heading 6",
"components.Blocks.blocks.code": "Code block",
"components.Blocks.blocks.quote": "Quote",
"components.Blocks.blocks.image": "Image",
"components.Blocks.blocks.unorderedList": "Bulleted list",
"components.Blocks.blocks.orderedList": "Numbered list",
"components.Blocks.blocks.code.languageLabel": "Select a language",
"components.Blocks.dnd.instruction": "To reorder blocks, press Command or Control along with Shift and the Up or Down arrow keys",
"components.Blocks.dnd.reorder": "{item}, moved. New position in the editor: {position}.",
"components.Wysiwyg.ToggleMode.markdown-mode": "Markdown mode",
"components.Wysiwyg.ToggleMode.preview-mode": "Preview mode",
"components.Wysiwyg.collapse": "Collapse",
"components.Wysiwyg.blocks.code": "Code",
"components.Wysiwyg.selectOptions.H1": "Heading 1",
"components.Wysiwyg.selectOptions.H2": "Heading 2",
"components.Wysiwyg.selectOptions.H3": "Heading 3",
"components.Wysiwyg.selectOptions.H4": "Heading 4",
"components.Wysiwyg.selectOptions.H5": "Heading 5",
"components.Wysiwyg.selectOptions.H6": "Heading 6",
"components.Wysiwyg.selectOptions.title": "Headings",
"components.WysiwygBottomControls.charactersIndicators": "characters",
"components.WysiwygBottomControls.fullscreen": "Expand",
"components.WysiwygBottomControls.uploadFiles": "Drag & drop files, paste from the clipboard or {browse}.",
"components.WysiwygBottomControls.uploadFiles.browse": "select them",
"components.pagination.go-to": "Go to page {page}",
"components.pagination.go-to-next": "Go to next page",
"components.pagination.go-to-previous": "Go to previous page",
"components.pagination.remaining-links": "And {number} other links",
"components.popUpWarning.button.cancel": "No, cancel",
"components.popUpWarning.button.confirm": "Yes, confirm",
"components.popUpWarning.message": "Are you sure you want to delete this?",
"components.popUpWarning.title": "Please confirm",
"dark": "Dark",
"form.button.continue": "Continue",
"form.button.done": "Done",
"global.actions": "Actions",
"global.auditLogs": "Audit Logs",
"global.back": "Back",
"global.cancel": "Cancel",
"global.change-password": "Change password",
"global.close": "Close",
"global.content-manager": "Content Manager",
"global.home": "Home",
"global.continue": "Continue",
"global.delete": "Delete",
"global.delete-target": "Delete {target}",
"global.description": "Description",
"global.details": "Details",
"global.disabled": "Disabled",
"global.documentation": "Documentation",
"global.enabled": "Enabled",
"global.error": "Something went wrong",
"global.finish": "Finish",
"global.marketplace": "Marketplace",
"global.more": "More",
"global.name": "Name",
"global.new": "New",
"global.none": "None",
"global.password": "Password",
"global.plugins": "Plugins",
"global.plugins.content-manager": "Content Manager",
"global.plugins.content-manager.description": "Quick way to see, edit and delete the data in your database.",
"global.plugins.content-type-builder": "Content Type Builder",
"global.plugins.content-type-builder.description": "Modelize the data structure of your API. Create new fields and relations in just a minute. The files are automatically created and updated in your project.",
"global.plugins.documentation": "Documentation",
"global.plugins.documentation.description": "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
"global.plugins.email": "Email",
"global.plugins.email.description": "Configure your application to send emails.",
"global.plugins.graphql": "GraphQL",
"global.plugins.graphql.description": "Adds GraphQL endpoint with default API methods.",
"global.plugins.i18n": "Internationalization",
"global.plugins.i18n.description": "This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API.",
"global.plugins.sentry": "Sentry",
"global.plugins.sentry.description": "Send Strapi error events to Sentry.",
"global.plugins.upload": "Media Library",
"global.plugins.upload.description": "Media file management.",
"global.plugins.users-permissions": "Roles & Permissions",
"global.plugins.users-permissions.description": "Protect your API with a full authentication process based on JWT. This plugin comes also with an ACL strategy that allows you to manage the permissions between the groups of users.",
"global.profile": "Profile settings",
"global.prompt.unsaved": "Are you sure you want to leave this page? All your modifications will be lost",
"global.reset-password": "Reset password",
"global.roles": "Roles",
"global.save": "Gorde",
"global.search": "Search",
"global.see-more": "See more",
"global.select": "Select",
"global.select-all-entries": "Select all entries",
"global.settings": "Settings",
"global.type": "Type",
"global.users": "Users",
"global.fullname": "{firstname} {lastname}",
"global.learn-more": "Learn more",
"light": "Light",
"notification.contentType.relations.conflict": "Content type has conflicting relations",
"notification.default.title": "Information:",
"notification.ee.warning.at-seat-limit.title": "{licenseLimitStatus, select, OVER_LIMIT {Over} AT_LIMIT {At}} seat limit ({currentUserCount}/{permittedSeats})",
"notification.ee.warning.over-.message": "Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} AT_LIMIT {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.",
"notification.error": "An error occurred",
"notification.error.invalid.configuration": "You have an invalid configuration, check your server log for more information.",
"notification.error.layout": "Couldn't retrieve the layout",
"notification.error.tokennamenotunique": "Name already assigned to another token",
"notification.form.error.fields": "The form contains some errors",
"notification.form.success.fields": "Changes saved",
"notification.link-copied": "Link copied into the clipboard",
"notification.permission.not-allowed-read": "You are not allowed to see this document",
"notification.success.apitokencreated": "API Token successfully created",
"notification.success.apitokenedited": "API Token successfully edited",
"notification.success.delete": "The item has been deleted",
"notification.success.saved": "Saved",
"notification.success.title": "Success:",
"notification.success.transfertokencreated": "Transfer Token successfully created",
"notification.success.transfertokenedited": "Transfer Token successfully edited",
"notification.version.update.message": "A new version of Strapi is available!",
"notification.warning.404": "404 - Not found",
"notification.warning.title": "Warning:",
"or": "OR",
"request.error.model.unknown": "This model doesn't exist",
"selectButtonTitle": "Select",
"skipToContent": "Skip to content",
"submit": "Submit"
}

View File

@@ -0,0 +1,20 @@
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Bundler",
"useDefineForClassFields": true,
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": false,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": ["../plugins/**/admin/src/**/*", "./"],
"exclude": ["node_modules/", "build/", "dist/", "**/*.test.ts"]
}

View File

@@ -0,0 +1,12 @@
import { mergeConfig, type UserConfig } from 'vite';
export default (config: UserConfig) => {
// Important: always return the modified config
return mergeConfig(config, {
resolve: {
alias: {
'@': '/src',
},
},
});
};

View File

@@ -0,0 +1,10 @@
import { mergeConfig, type UserConfig } from "vite";
export default (config: UserConfig) => {
// Important: always return the modified config
return mergeConfig(config, {
server: {
allowedHosts: true,
},
});
};

View File

@@ -1,9 +0,0 @@
'use strict';
/* eslint-disable no-unused-vars */
module.exports = (config, webpack) => {
// Note: we provide webpack above so you should not `require` it
// Perform customizations to webpack config
// Important: return the modified config
return config;
};

View File

@@ -1,22 +0,0 @@
{
"kind": "singleType",
"collectionName": "bizis",
"info": {
"singularName": "bizi",
"pluralName": "bizis",
"displayName": "Bizi"
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"izenburua": {
"type": "string",
"required": true
},
"deskribapena": {
"type": "text"
}
}
}

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* bizi controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::bizi.bizi');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* bizi router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::bizi.bizi');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* bizi service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::bizi.bizi');

View File

@@ -16,34 +16,44 @@
"type": "string",
"required": true
},
"slug": {
"type": "uid",
"targetField": "izenburua",
"required": true
"titularra": {
"type": "text"
},
"deskribapena": {
"type": "richtext"
},
"hitzordua": {
"type": "datetime",
"required": true
},
"titularra": {
"type": "text"
},
"elkarlana": {
"type": "component",
"repeatable": true,
"component": "bizi.elkarlana"
},
"labakoUzta": {
"type": "boolean",
"default": false,
"required": true
"type": "boolean"
},
"kartela": {
"mainMedia": {
"type": "media",
"multiple": false,
"required": false,
"allowedTypes": [
"images"
"images",
"files"
]
},
"slug": {
"type": "uid",
"targetField": "izenburua",
"required": true
},
"sarrera": {
"type": "component",
"component": "ekintza.sarrera",
"repeatable": false
},
"edukiLibrea": {
"type": "dynamiczone",
"components": [
"paragraph.youtube",
"paragraph.testua",
"paragraph.irudia"
]
},
"zikloa": {
@@ -52,8 +62,10 @@
"target": "api::zikloa.zikloa",
"inversedBy": "ekintzak"
},
"deskribapena": {
"type": "richtext"
"elkarlana": {
"type": "component",
"component": "ekintza.elkarlana",
"repeatable": false
}
}
}

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* ekintza controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::ekintza.ekintza');

View File

@@ -0,0 +1,7 @@
/**
* ekintza controller
*/
import { factories } from '@strapi/strapi'
export default factories.createCoreController('api::ekintza.ekintza');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* ekintza router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::ekintza.ekintza');

View File

@@ -0,0 +1,7 @@
/**
* ekintza router
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::ekintza.ekintza');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* ekintza service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::ekintza.ekintza');

View File

@@ -0,0 +1,7 @@
/**
* ekintza service
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::ekintza.ekintza');

View File

@@ -10,22 +10,23 @@
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"izena": {
"type": "string",
"required": true
},
"esteka": {
"type": "string",
"regex": "[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)"
"type": "string"
},
"logoa": {
"logo": {
"type": "media",
"multiple": false,
"required": false,
"allowedTypes": [
"images"
"images",
"files",
"videos",
"audios"
]
}
}

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* erakundea controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::erakundea.erakundea');

View File

@@ -0,0 +1,7 @@
/**
* erakundea controller
*/
import { factories } from '@strapi/strapi'
export default factories.createCoreController('api::erakundea.erakundea');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* erakundea router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::erakundea.erakundea');

View File

@@ -0,0 +1,7 @@
/**
* erakundea router
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::erakundea.erakundea');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* erakundea service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::erakundea.erakundea');

View File

@@ -0,0 +1,7 @@
/**
* erakundea service
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::erakundea.erakundea');

View File

@@ -12,15 +12,27 @@
},
"pluginOptions": {},
"attributes": {
"deskribapena": {
"type": "text"
},
"izenburua": {
"type": "string"
},
"edukia": {
"type": "richtext",
"required": false
"izanLabazkide": {
"type": "component",
"component": "hasiera.izan-labazkide",
"repeatable": false,
"required": true
},
"parteHartu": {
"type": "component",
"component": "hasiera.parte-hartu",
"repeatable": false
},
"mosaikoa": {
"type": "media",
"multiple": true,
"required": true,
"allowedTypes": [
"images"
]
}
}
}

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* hasiera controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::hasiera.hasiera');

View File

@@ -0,0 +1,7 @@
/**
* hasiera controller
*/
import { factories } from '@strapi/strapi'
export default factories.createCoreController('api::hasiera.hasiera');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* hasiera router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::hasiera.hasiera');

View File

@@ -0,0 +1,7 @@
/**
* hasiera router
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::hasiera.hasiera');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* hasiera service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::hasiera.hasiera');

View File

@@ -0,0 +1,7 @@
/**
* hasiera service
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::hasiera.hasiera');

View File

@@ -1,31 +0,0 @@
{
"kind": "singleType",
"collectionName": "kafetegiak",
"info": {
"singularName": "kafetegia",
"pluralName": "kafetegiak",
"displayName": "Kafetegia",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"izenburua": {
"type": "string",
"required": true
},
"deskribapena": {
"type": "text",
"required": true
},
"menua": {
"type": "dynamiczone",
"components": [
"kafetegia.produktu-taldea",
"kafetegia.izenburua"
]
}
}
}

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* kafetegia controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::kafetegia.kafetegia');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* kafetegia router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::kafetegia.kafetegia');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* kafetegia service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::kafetegia.kafetegia');

View File

@@ -1,24 +0,0 @@
{
"kind": "singleType",
"collectionName": "lege_oharrak",
"info": {
"singularName": "lege-oharra",
"pluralName": "lege-oharrak",
"displayName": "Lege Oharra",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"izenburua": {
"type": "string",
"required": true
},
"edukia": {
"type": "richtext",
"required": true
}
}
}

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* lege-oharra controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::lege-oharra.lege-oharra');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* lege-oharra router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::lege-oharra.lege-oharra');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* lege-oharra service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::lege-oharra.lege-oharra');

View File

@@ -0,0 +1,35 @@
{
"kind": "collectionType",
"collectionName": "orri_basikoak",
"info": {
"singularName": "orri-basikoa",
"pluralName": "orri-basikoak",
"displayName": "Orri Basikoa"
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"izenburua": {
"type": "string",
"required": true
},
"deskribapena": {
"type": "text"
},
"slug": {
"type": "uid",
"targetField": "izenburua",
"required": true
},
"edukiLibrea": {
"type": "dynamiczone",
"components": [
"paragraph.testua",
"paragraph.youtube",
"paragraph.irudia"
]
}
}
}

View File

@@ -0,0 +1,7 @@
/**
* orri-basikoa controller
*/
import { factories } from '@strapi/strapi'
export default factories.createCoreController('api::orri-basikoa.orri-basikoa');

View File

@@ -0,0 +1,7 @@
/**
* orri-basikoa router
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::orri-basikoa.orri-basikoa');

View File

@@ -0,0 +1,7 @@
/**
* orri-basikoa service
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::orri-basikoa.orri-basikoa');

View File

@@ -1,21 +0,0 @@
{
"kind": "singleType",
"collectionName": "pribatutasun_politikak",
"info": {
"singularName": "pribatutasun-politika",
"pluralName": "pribatutasun-politikak",
"displayName": "Pribatutasun politika"
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"izenburua": {
"type": "string"
},
"edukia": {
"type": "richtext"
}
}
}

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* pribatutasun-politika controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::pribatutasun-politika.pribatutasun-politika');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* pribatutasun-politika router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::pribatutasun-politika.pribatutasun-politika');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* pribatutasun-politika service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::pribatutasun-politika.pribatutasun-politika');

View File

@@ -1,9 +1,9 @@
{
"kind": "collectionType",
"collectionName": "zikloas",
"collectionName": "zikloak",
"info": {
"singularName": "zikloa",
"pluralName": "zikloas",
"pluralName": "zikloak",
"displayName": "Zikloa",
"description": ""
},
@@ -16,13 +16,13 @@
"type": "string",
"required": true
},
"deskribapena": {
"type": "richtext"
},
"slug": {
"type": "uid",
"required": true,
"targetField": "izena"
"targetField": "izena",
"required": true
},
"deskribapena": {
"type": "text"
},
"ekintzak": {
"type": "relation",

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* zikloa controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::zikloa.zikloa');

View File

@@ -0,0 +1,7 @@
/**
* zikloa controller
*/
import { factories } from '@strapi/strapi'
export default factories.createCoreController('api::zikloa.zikloa');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* zikloa router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::zikloa.zikloa');

View File

@@ -0,0 +1,7 @@
/**
* zikloa router
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::zikloa.zikloa');

View File

@@ -1,9 +0,0 @@
'use strict';
/**
* zikloa service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::zikloa.zikloa');

View File

@@ -0,0 +1,7 @@
/**
* zikloa service
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::zikloa.zikloa');

View File

@@ -1,14 +1,14 @@
{
"collectionName": "components_bizi_elkarlanas",
"collectionName": "components_ekintza_elkarlanas",
"info": {
"displayName": "elkarlana",
"icon": "handHeart",
"description": ""
"icon": "handHeart"
},
"options": {},
"attributes": {
"harremana": {
"type": "string"
"label": {
"type": "string",
"required": true
},
"erakundeak": {
"type": "relation",

View File

@@ -0,0 +1,22 @@
{
"collectionName": "components_ekintza_sarreras",
"info": {
"displayName": "Sarrera",
"icon": "priceTag",
"description": ""
},
"options": {},
"attributes": {
"label": {
"type": "string",
"required": true
},
"deskribapena": {
"type": "text"
},
"url": {
"type": "string",
"regex": "^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})(:[0-9]+)?([\\/\\w \\.-]*)*\\/?$"
}
}
}

View File

@@ -0,0 +1,24 @@
{
"collectionName": "components_hasiera_izan_labazkides",
"info": {
"displayName": "Izan labazkide",
"icon": "pencil"
},
"options": {},
"attributes": {
"izenburua": {
"type": "string",
"required": true
},
"deskribapena": {
"type": "richtext"
},
"url": {
"type": "component",
"component": "hasiera.url",
"repeatable": false,
"required": true
}
},
"config": {}
}

View File

@@ -0,0 +1,23 @@
{
"collectionName": "components_hasiera_parte_hartus",
"info": {
"displayName": "Parte hartu",
"icon": "handHeart"
},
"options": {},
"attributes": {
"izenburua": {
"type": "string",
"required": true
},
"deskribapena": {
"type": "richtext"
},
"parteHartzea": {
"type": "component",
"component": "hasiera.parte-hartzea",
"repeatable": true
}
},
"config": {}
}

View File

@@ -0,0 +1,27 @@
{
"collectionName": "components_hasiera_parte_hartzeas",
"info": {
"displayName": "Parte hartzea",
"icon": "handHeart"
},
"options": {},
"attributes": {
"izenburua": {
"type": "string"
},
"deskribapena": {
"type": "text"
},
"email": {
"type": "string"
},
"ikonoa": {
"type": "customField",
"customField": "plugin::icons-field.icon",
"options": {
"output": "svg"
}
}
},
"config": {}
}

View File

@@ -0,0 +1,26 @@
{
"collectionName": "components_hasiera_urls",
"info": {
"displayName": "url",
"icon": "link"
},
"options": {},
"attributes": {
"label": {
"type": "string",
"required": true
},
"url": {
"type": "string",
"required": true
},
"target": {
"type": "enumeration",
"enum": [
"self",
"blank"
]
}
},
"config": {}
}

View File

@@ -1,81 +0,0 @@
{
"collectionName": "components_kafetegia_alergenoas",
"info": {
"displayName": "alergenoa",
"icon": "cat",
"description": ""
},
"options": {},
"attributes": {
"esnekiak": {
"type": "boolean",
"required": true,
"default": false
},
"arrautzak": {
"type": "boolean",
"default": false,
"required": true
},
"glutena": {
"type": "boolean",
"default": false,
"required": true
},
"moluskuak": {
"type": "boolean",
"default": false,
"required": true
},
"krustazeoak": {
"type": "boolean",
"default": false,
"required": true
},
"arraina": {
"type": "boolean",
"default": false,
"required": true
},
"lupinuak": {
"type": "boolean",
"default": false,
"required": true
},
"fruituLehorrak": {
"type": "boolean",
"default": false,
"required": true
},
"kakahueteak": {
"type": "boolean",
"default": false,
"required": true
},
"sesamoa": {
"type": "boolean",
"default": false,
"required": true
},
"soja": {
"type": "boolean",
"default": false,
"required": true
},
"sulfitoak": {
"type": "boolean",
"default": false,
"required": true
},
"apioa": {
"type": "boolean",
"default": false,
"required": true
},
"ziapea": {
"type": "boolean",
"required": true,
"default": false
}
}
}

View File

@@ -1,37 +0,0 @@
{
"collectionName": "components_kafetegia_edarias",
"info": {
"displayName": "produktua",
"icon": "coffee",
"description": ""
},
"options": {},
"attributes": {
"beganoa": {
"type": "boolean",
"default": false,
"required": true
},
"ekologikoa": {
"type": "boolean",
"default": false,
"required": true
},
"prezioa": {
"type": "decimal",
"default": 0,
"required": true
},
"izena": {
"type": "string",
"required": true
},
"alergenoak": {
"displayName": "alergenoa",
"type": "component",
"repeatable": false,
"component": "kafetegia.alergenoa",
"required": true
}
}
}

View File

@@ -1,15 +0,0 @@
{
"collectionName": "components_kafetegia_izenburuas",
"info": {
"displayName": "Izenburua",
"icon": "strikeThrough",
"description": ""
},
"options": {},
"attributes": {
"izenburuBalioa": {
"type": "string",
"required": true
}
}
}

View File

@@ -1,19 +0,0 @@
{
"collectionName": "components_kafetegia_produktu_taldeas",
"info": {
"displayName": "Produktu taldea"
},
"options": {},
"attributes": {
"izenburua": {
"type": "string"
},
"produktuak": {
"displayName": "produktuak",
"type": "component",
"repeatable": true,
"component": "kafetegia.edaria",
"required": true
}
}
}

View File

@@ -1,16 +0,0 @@
{
"collectionName": "components_orokorra_datu_orokorraks",
"info": {
"displayName": "Datu orokorrak",
"icon": "house"
},
"options": {},
"attributes": {
"izenburua": {
"type": "string"
},
"deskribapena": {
"type": "text"
}
}
}

View File

@@ -1,17 +0,0 @@
{
"collectionName": "components_helbidea_helbideas",
"info": {
"displayName": "helbidea",
"icon": "home",
"description": ""
},
"options": {},
"attributes": {
"lehenLerroa": {
"type": "string"
},
"bigarrenLerroa": {
"type": "string"
}
}
}

View File

@@ -0,0 +1,20 @@
{
"collectionName": "components_paragraph_irudias",
"info": {
"displayName": "irudia",
"icon": "picture",
"description": ""
},
"options": {},
"attributes": {
"media": {
"type": "media",
"multiple": false,
"required": true,
"allowedTypes": [
"images",
"files"
]
}
}
}

View File

@@ -0,0 +1,15 @@
{
"collectionName": "components_paragraph_testuas",
"info": {
"displayName": "testua",
"icon": "pencil",
"description": ""
},
"options": {},
"attributes": {
"testua": {
"type": "richtext",
"required": true
}
}
}

View File

@@ -0,0 +1,15 @@
{
"collectionName": "components_paragraph_youtubes",
"info": {
"displayName": "youtube",
"icon": "play",
"description": ""
},
"options": {},
"attributes": {
"url": {
"type": "string",
"required": true
}
}
}

View File

@@ -1,13 +1,13 @@
'use strict';
// import type { Core } from '@strapi/strapi';
module.exports = {
export default {
/**
* An asynchronous register function that runs before
* your application is initialized.
*
* This gives you an opportunity to extend code.
*/
register(/*{ strapi }*/) {},
register(/* { strapi }: { strapi: Core.Strapi } */) {},
/**
* An asynchronous bootstrap function that runs before
@@ -16,5 +16,5 @@ module.exports = {
* This gives you an opportunity to set up your data model,
* run jobs, or perform some special logic.
*/
bootstrap(/*{ strapi }*/) {},
bootstrap(/* { strapi }: { strapi: Core.Strapi } */) {},
};

43
back/tsconfig.json Normal file
View File

@@ -0,0 +1,43 @@
{
"compilerOptions": {
"module": "CommonJS",
"moduleResolution": "Node",
"lib": ["ES2020"],
"target": "ES2019",
"strict": false,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"incremental": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"noEmitOnError": true,
"noImplicitThis": true,
"outDir": "dist",
"rootDir": "."
},
"include": [
// Include root files
"./",
// Include all ts files
"./**/*.ts",
// Include all js files
"./**/*.js",
// Force the JSON files in the src folder to be included
"src/**/*.json"
],
"exclude": [
"node_modules/",
"build/",
"dist/",
".cache/",
".tmp/",
// Do not include admin files in the server compilation
"src/admin/",
// Do not include test files
"**/*.test.*",
// Do not include plugins in the server compilation
"src/plugins/**"
]
}

View File

@@ -1,148 +1,143 @@
import type { Schema, Attribute } from '@strapi/strapi';
import type { Schema, Struct } from '@strapi/strapi';
export interface BiziElkarlana extends Schema.Component {
collectionName: 'components_bizi_elkarlanas';
export interface EkintzaElkarlana extends Struct.ComponentSchema {
collectionName: 'components_ekintza_elkarlanas';
info: {
displayName: 'elkarlana';
icon: 'handHeart';
description: '';
};
attributes: {
harremana: Attribute.String;
erakundeak: Attribute.Relation<
'bizi.elkarlana',
erakundeak: Schema.Attribute.Relation<
'oneToMany',
'api::erakundea.erakundea'
>;
label: Schema.Attribute.String & Schema.Attribute.Required;
};
}
export interface KafetegiaAlergenoa extends Schema.Component {
collectionName: 'components_kafetegia_alergenoas';
export interface EkintzaSarrera extends Struct.ComponentSchema {
collectionName: 'components_ekintza_sarreras';
info: {
displayName: 'alergenoa';
icon: 'cat';
description: '';
displayName: 'Sarrera';
icon: 'priceTag';
};
attributes: {
esnekiak: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
arrautzak: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
glutena: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
moluskuak: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
krustazeoak: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
arraina: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
lupinuak: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
fruituLehorrak: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
kakahueteak: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
sesamoa: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
soja: Attribute.Boolean & Attribute.Required & Attribute.DefaultTo<false>;
sulfitoak: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
apioa: Attribute.Boolean & Attribute.Required & Attribute.DefaultTo<false>;
ziapea: Attribute.Boolean & Attribute.Required & Attribute.DefaultTo<false>;
deskribapena: Schema.Attribute.Text;
label: Schema.Attribute.String & Schema.Attribute.Required;
url: Schema.Attribute.String;
};
}
export interface KafetegiaEdaria extends Schema.Component {
collectionName: 'components_kafetegia_edarias';
export interface HasieraIzanLabazkide extends Struct.ComponentSchema {
collectionName: 'components_hasiera_izan_labazkides';
info: {
displayName: 'Izan labazkide';
icon: 'pencil';
};
attributes: {
deskribapena: Schema.Attribute.RichText;
izenburua: Schema.Attribute.String & Schema.Attribute.Required;
url: Schema.Attribute.Component<'hasiera.url', false> &
Schema.Attribute.Required;
};
}
export interface HasieraParteHartu extends Struct.ComponentSchema {
collectionName: 'components_hasiera_parte_hartus';
info: {
displayName: 'Parte hartu';
icon: 'handHeart';
};
attributes: {
deskribapena: Schema.Attribute.RichText;
izenburua: Schema.Attribute.String & Schema.Attribute.Required;
parteHartzea: Schema.Attribute.Component<'hasiera.parte-hartzea', true>;
};
}
export interface HasieraParteHartzea extends Struct.ComponentSchema {
collectionName: 'components_hasiera_parte_hartzeas';
info: {
displayName: 'Parte hartzea';
icon: 'handHeart';
};
attributes: {
deskribapena: Schema.Attribute.Text;
email: Schema.Attribute.String;
ikonoa: Schema.Attribute.Text &
Schema.Attribute.CustomField<
'plugin::icons-field.icon',
{
output: 'svg';
}
>;
izenburua: Schema.Attribute.String;
};
}
export interface HasieraUrl extends Struct.ComponentSchema {
collectionName: 'components_hasiera_urls';
info: {
displayName: 'url';
icon: 'link';
};
attributes: {
label: Schema.Attribute.String & Schema.Attribute.Required;
target: Schema.Attribute.Enumeration<['self', 'blank']>;
url: Schema.Attribute.String & Schema.Attribute.Required;
};
}
export interface ParagraphIrudia extends Struct.ComponentSchema {
collectionName: 'components_paragraph_irudias';
info: {
displayName: 'produktua';
icon: 'coffee';
description: '';
displayName: 'irudia';
icon: 'picture';
};
attributes: {
beganoa: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
ekologikoa: Attribute.Boolean &
Attribute.Required &
Attribute.DefaultTo<false>;
prezioa: Attribute.Decimal & Attribute.Required & Attribute.DefaultTo<0>;
izena: Attribute.String & Attribute.Required;
alergenoak: Attribute.Component<'kafetegia.alergenoa'> & Attribute.Required;
media: Schema.Attribute.Media<'images' | 'files'> &
Schema.Attribute.Required;
};
}
export interface KafetegiaIzenburua extends Schema.Component {
collectionName: 'components_kafetegia_izenburuas';
export interface ParagraphTestua extends Struct.ComponentSchema {
collectionName: 'components_paragraph_testuas';
info: {
displayName: 'Izenburua';
icon: 'strikeThrough';
description: '';
displayName: 'testua';
icon: 'pencil';
};
attributes: {
izenburuBalioa: Attribute.String & Attribute.Required;
testua: Schema.Attribute.RichText & Schema.Attribute.Required;
};
}
export interface KafetegiaProduktuTaldea extends Schema.Component {
collectionName: 'components_kafetegia_produktu_taldeas';
export interface ParagraphYoutube extends Struct.ComponentSchema {
collectionName: 'components_paragraph_youtubes';
info: {
displayName: 'Produktu taldea';
};
attributes: {
izenburua: Attribute.String;
produktuak: Attribute.Component<'kafetegia.edaria', true> &
Attribute.Required;
};
}
export interface OrokorraDatuOrokorrak extends Schema.Component {
collectionName: 'components_orokorra_datu_orokorraks';
info: {
displayName: 'Datu orokorrak';
icon: 'house';
};
attributes: {
izenburua: Attribute.String;
deskribapena: Attribute.Text;
};
}
export interface OrokorraHelbidea extends Schema.Component {
collectionName: 'components_helbidea_helbideas';
info: {
displayName: 'helbidea';
icon: 'home';
description: '';
displayName: 'youtube';
icon: 'play';
};
attributes: {
lehenLerroa: Attribute.String;
bigarrenLerroa: Attribute.String;
url: Schema.Attribute.String & Schema.Attribute.Required;
};
}
declare module '@strapi/types' {
export module Shared {
export interface Components {
'bizi.elkarlana': BiziElkarlana;
'kafetegia.alergenoa': KafetegiaAlergenoa;
'kafetegia.edaria': KafetegiaEdaria;
'kafetegia.izenburua': KafetegiaIzenburua;
'kafetegia.produktu-taldea': KafetegiaProduktuTaldea;
'orokorra.datu-orokorrak': OrokorraDatuOrokorrak;
'orokorra.helbidea': OrokorraHelbidea;
declare module '@strapi/strapi' {
export module Public {
export interface ComponentSchemas {
'ekintza.elkarlana': EkintzaElkarlana;
'ekintza.sarrera': EkintzaSarrera;
'hasiera.izan-labazkide': HasieraIzanLabazkide;
'hasiera.parte-hartu': HasieraParteHartu;
'hasiera.parte-hartzea': HasieraParteHartzea;
'hasiera.url': HasieraUrl;
'paragraph.irudia': ParagraphIrudia;
'paragraph.testua': ParagraphTestua;
'paragraph.youtube': ParagraphYoutube;
}
}
}

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