Merge branch 'master' into api-token-v2/engine-abstraction

This commit is contained in:
Convly 2022-07-27 15:46:54 +02:00
commit 3fa282be30
724 changed files with 34154 additions and 7826 deletions

View File

@ -1,6 +1,6 @@
{
"name": "check-pr-status",
"version": "4.2.2",
"version": "4.3.0",
"main": "dist/index.js",
"license": "MIT",
"private": true,

3
.github/jest.config.js vendored Normal file
View File

@ -0,0 +1,3 @@
module.exports = {
displayName: '.github',
};

View File

@ -0,0 +1,61 @@
{
"sourceType": "unambiguous",
"presets": [
[
"@babel/preset-env",
{
"shippedProposals": true,
"loose": true
}
],
"@babel/preset-typescript"
],
"plugins": [
"@babel/plugin-transform-shorthand-properties",
"@babel/plugin-transform-block-scoping",
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
],
[
"@babel/plugin-proposal-class-properties",
{
"loose": true
}
],
[
"@babel/plugin-proposal-private-methods",
{
"loose": true
}
],
"@babel/plugin-proposal-export-default-from",
"@babel/plugin-syntax-dynamic-import",
[
"@babel/plugin-proposal-object-rest-spread",
{
"loose": true,
"useBuiltIns": true
}
],
"@babel/plugin-transform-classes",
"@babel/plugin-transform-arrow-functions",
"@babel/plugin-transform-parameters",
"@babel/plugin-transform-destructuring",
"@babel/plugin-transform-spread",
"@babel/plugin-transform-for-of",
"babel-plugin-macros",
"@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator",
[
"babel-plugin-polyfill-corejs3",
{
"method": "usage-global",
"absoluteImports": "core-js",
"version": "3.21.1"
}
]
]
}

View File

@ -0,0 +1,15 @@
module.exports = {
stories: [
'../*.stories.mdx',
'../../../packages/core/**/admin/src/**/*.stories.mdx',
'../../../packages/core/**/admin/src/**/*.stories.@(js|jsx|ts|tsx)',
'../../../packages/plugins/**/admin/src/**/*.stories.mdx',
'../../../packages/plugins/**/admin/src/**/*.stories.@(js|jsx|ts|tsx)',
],
addons: [
'@storybook/addon-links',
'@storybook/addon-essentials',
'@storybook/addon-interactions',
],
framework: '@storybook/react',
};

View File

@ -0,0 +1,27 @@
import { ThemeProvider, lightTheme } from '@strapi/design-system';
import { IntlProvider } from 'react-intl';
import { MemoryRouter } from 'react-router-dom';
export const parameters = {
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
};
export const decorators = [
Story => (
<MemoryRouter>
<ThemeProvider theme={lightTheme}>
<IntlProvider messages={{}} textComponent="span" locale="en">
<main>
<Story />
</main>
</IntlProvider>
</ThemeProvider>
</MemoryRouter>
),
];

View File

@ -0,0 +1,9 @@
import { Meta } from '@storybook/addon-docs';
<Meta title="Introduction" />
# Welcome to the documentation
Use this app to develop local components in plugins.
To do so just create a story in your plugins `./admin/src` folder

View File

@ -0,0 +1,41 @@
{
"name": "admin-development",
"version": "4.3.0",
"main": "index.js",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.16.7",
"@babel/plugin-proposal-class-properties": "7.16.7",
"@babel/plugin-proposal-decorators": "7.16.7",
"@babel/plugin-proposal-export-default-from": "7.16.7",
"@babel/plugin-proposal-nullish-coalescing-operator": "7.16.7",
"@babel/plugin-proposal-object-rest-spread": "7.16.7",
"@babel/plugin-proposal-optional-chaining": "7.16.7",
"@babel/plugin-proposal-private-methods": "7.16.7",
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/plugin-transform-arrow-functions": "7.16.7",
"@babel/plugin-transform-block-scoping": "7.16.7",
"@babel/plugin-transform-classes": "7.16.7",
"@babel/plugin-transform-destructuring": "7.17.7",
"@babel/plugin-transform-for-of": "7.16.7",
"@babel/plugin-transform-parameters": "7.16.7",
"@babel/plugin-transform-shorthand-properties": "7.16.7",
"@babel/plugin-transform-spread": "7.16.7",
"@babel/preset-env": "7.16.11",
"@babel/preset-typescript": "7.16.7",
"@storybook/addon-actions": "6.4.10",
"@storybook/addon-essentials": "6.4.10",
"@storybook/addon-interactions": "6.4.10",
"@storybook/addon-links": "6.4.10",
"@storybook/react": "^6.3.7",
"@storybook/testing-library": "^0.0.9",
"babel-loader": "^8.2.4",
"babel-plugin-macros": "3.1.0",
"babel-plugin-polyfill-corejs3": "0.5.2",
"core-js": "3.21.1"
},
"scripts": {
"storybook": "start-storybook -p 6007",
"build-storybook": "build-storybook"
}
}

View File

@ -17,7 +17,7 @@ module.exports = {
*/
// '0 0 1 * * 1': async function({ strapi }) {
// // Add your own logic here (e.g. send a queue of email, create a database backup, etc.).
// }
// },
// 'myJob': {
// task: ({ strapi }) => { /* Add your own logic here */ },
// options: {

View File

@ -1,11 +0,0 @@
interface Restaurant {
name: string;
}
declare global {
interface AllTypes {
restaurant: Restaurant;
}
}
export {};

View File

@ -1,7 +1,7 @@
{
"name": "getstarted",
"private": true,
"version": "4.2.2",
"version": "4.3.0",
"description": "A Strapi application.",
"scripts": {
"develop": "strapi develop",
@ -12,17 +12,17 @@
"strapi": "strapi"
},
"dependencies": {
"@strapi/admin": "4.2.2",
"@strapi/plugin-documentation": "4.2.2",
"@strapi/plugin-graphql": "4.2.2",
"@strapi/plugin-i18n": "4.2.2",
"@strapi/plugin-sentry": "4.2.2",
"@strapi/plugin-users-permissions": "4.2.2",
"@strapi/provider-email-mailgun": "4.2.2",
"@strapi/provider-upload-aws-s3": "4.2.2",
"@strapi/provider-upload-cloudinary": "4.2.2",
"@strapi/strapi": "4.2.2",
"@strapi/utils": "4.2.2",
"@strapi/admin": "4.3.0",
"@strapi/plugin-documentation": "4.3.0",
"@strapi/plugin-graphql": "4.3.0",
"@strapi/plugin-i18n": "4.3.0",
"@strapi/plugin-sentry": "4.3.0",
"@strapi/plugin-users-permissions": "4.3.0",
"@strapi/provider-email-mailgun": "4.3.0",
"@strapi/provider-upload-aws-s3": "4.3.0",
"@strapi/provider-upload-cloudinary": "4.3.0",
"@strapi/strapi": "4.3.0",
"@strapi/utils": "4.3.0",
"@vscode/sqlite3": "5.0.8",
"better-sqlite3": "7.4.6",
"lodash": "4.17.21",

View File

@ -0,0 +1,9 @@
const config = {
locales: ['fr'],
};
const bootstrap = () => {};
export default {
config,
bootstrap,
};

View File

@ -1,6 +0,0 @@
export default {
config: {
locales: ['fr'],
},
bootstrap() {},
};

View File

@ -38,23 +38,6 @@
"localized": true
}
}
},
"description": {
"pluginOptions": {
"i18n": {
"localized": true
}
},
"type": "string",
"maxLength": 3
},
"time": {
"pluginOptions": {
"i18n": {
"localized": true
}
},
"type": "time"
}
}
}

View File

@ -0,0 +1,8 @@
export default ({ env }) => ({
auth: {
secret: env('ADMIN_JWT_SECRET', 'example-token'),
},
apiToken: {
salt: env('API_TOKEN_SALT', 'example-salt'),
},
});

View File

@ -0,0 +1,7 @@
export default {
rest: {
defaultLimit: 25,
maxLimit: 100,
withCount: true,
},
};

View File

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

View File

@ -0,0 +1,12 @@
export default [
'strapi::errors',
'strapi::security',
'strapi::cors',
'strapi::poweredBy',
'strapi::logger',
'strapi::query',
'strapi::body',
'strapi::session',
'strapi::favicon',
'strapi::public',
];

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

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,29 @@
{
"name": "kitchensink-ts",
"private": true,
"version": "4.3.0",
"description": "A Strapi application",
"scripts": {
"develop": "strapi develop",
"start": "strapi start",
"build": "strapi build",
"strapi": "strapi"
},
"dependencies": {
"@strapi/plugin-i18n": "4.1.12",
"@strapi/plugin-users-permissions": "4.1.12",
"@strapi/strapi": "4.2.2",
"better-sqlite3": "7.4.6"
},
"author": {
"name": "A Strapi developer"
},
"strapi": {
"uuid": "getstarted"
},
"engines": {
"node": ">=14.19.1 <=16.x.x",
"npm": ">=6.0.0"
},
"license": "MIT"
}

View File

@ -0,0 +1,5 @@
{
"extends": "@strapi/typescript-utils/tsconfigs/admin",
"include": ["../plugins/**/admin/src/**/*", "./"],
"exclude": ["node_modules/", "build/", "dist/", "**/*.test.ts"]
}

View File

@ -0,0 +1,6 @@
export default (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

@ -0,0 +1,20 @@
import '@strapi/strapi';
export default {
/**
* An asynchronous register function that runs before
* your application is initialized.
*
* This gives you an opportunity to extend code.
*/
register(/*{ strapi }*/) {},
/**
* An asynchronous bootstrap function that runs before
* your application gets started.
*
* This gives you an opportunity to set up your data model,
* run jobs, or perform some special logic.
*/
bootstrap(/*{ strapi }*/) {},
};

View File

@ -0,0 +1,18 @@
{
"extends": "@strapi/typescript-utils/tsconfigs/server",
"compilerOptions": {
"outDir": "dist",
"rootDir": "."
},
"include": ["./", "src/**/*.json"],
"exclude": [
"node_modules/",
"build/",
"dist/",
".cache/",
".tmp/",
"src/admin/",
"**/*.test.ts",
"src/plugins/**"
]
}

View File

@ -0,0 +1,4 @@
module.exports = {
// ...
// ...
};

View File

@ -1,7 +1,7 @@
{
"name": "kitchensink",
"private": true,
"version": "4.2.2",
"version": "4.3.0",
"description": "A Strapi application.",
"scripts": {
"develop": "strapi develop",
@ -12,12 +12,12 @@
"strapi": "strapi"
},
"dependencies": {
"@strapi/admin": "4.2.2",
"@strapi/provider-email-mailgun": "4.2.2",
"@strapi/provider-upload-aws-s3": "4.2.2",
"@strapi/provider-upload-cloudinary": "4.2.2",
"@strapi/strapi": "4.2.2",
"@strapi/utils": "4.2.2",
"@strapi/admin": "4.3.0",
"@strapi/provider-email-mailgun": "4.3.0",
"@strapi/provider-upload-aws-s3": "4.3.0",
"@strapi/provider-upload-cloudinary": "4.3.0",
"@strapi/strapi": "4.3.0",
"@strapi/utils": "4.3.0",
"lodash": "4.17.21",
"mysql": "2.18.1",
"passport-google-oauth2": "0.2.0",

View File

@ -1,33 +1,39 @@
import theme from './extensions/theme';
export default {
config: {
auth: {
logo:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
},
head: {
favicon:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
title: 'Strapi test',
},
locales: ['fr', 'de'],
menu: {
logo:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
},
theme,
translations: {
fr: {
'Auth.form.email.label': 'test',
Users: 'Utilisateurs',
City: 'CITY FRENCH',
// Customize the label of the CM table..
Id: 'ID french',
},
},
tutorials: false,
notifications: { release: false },
const config = {
auth: {
logo:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
},
bootstrap() {},
head: {
favicon:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
title: 'Strapi test',
},
locales: ['fr', 'de'],
menu: {
logo:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
},
theme,
translations: {
fr: {
'Auth.form.email.label': 'test',
Users: 'Utilisateurs',
City: 'CITY FRENCH',
// Customize the label of the CM table..
Id: 'ID french',
},
},
tutorials: false,
notifications: { release: false },
};
const bootstrap = app => {
console.log(app);
};
export default {
config,
bootstrap,
};

View File

@ -0,0 +1,39 @@
import theme from './extensions/theme';
const config = {
auth: {
logo:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
},
head: {
favicon:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
title: 'Strapi tesrrt',
},
locales: ['fr', 'de'],
menu: {
logo:
'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80',
},
theme,
translations: {
fr: {
'Auth.form.email.label': 'test',
Users: 'Utilisateurs',
City: 'CITY FRENCH',
// Customize the label of the CM table..
Id: 'ID french',
},
},
tutorials: false,
notifications: { release: false },
};
const bootstrap = app => {
console.log(app);
};
export default {
config,
bootstrap,
};

View File

@ -52,13 +52,15 @@ module.exports = {
'<rootDir>/packages/admin-test-utils/lib/setup/strapi.js',
],
transform: {
'^.+\\.js$': ['@swc-node/jest', { jsx: true, dynamicImport: true }],
'^.+\\.js$': ['@swc/jest', { jsc: { parser: { jsx: true, dynamicImport: true } } }],
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
'<rootDir>/fileTransformer.js',
},
transformIgnorePatterns: ['node_modules/(?!(react-dnd|dnd-core|react-dnd-html5-backend)/)'],
testMatch: ['/**/tests/**/?(*.)+(spec|test).[jt]s?(x)'],
testURL: 'http://localhost:1337/admin',
testEnvironmentOptions: {
url: 'http://localhost:1337/admin',
},
// Use `jest-watch-typeahead` version 0.6.5. Newest version 1.0.0 does not support jest@26
// Reference: https://github.com/jest-community/jest-watch-typeahead/releases/tag/v1.0.0
watchPlugins: ['jest-watch-typeahead/filename', 'jest-watch-typeahead/testname'],

View File

@ -1,5 +1,5 @@
module.exports = {
name: 'API integration tests',
displayName: 'API integration tests',
testMatch: ['**/?(*.)+(spec|test).e2e.js'],
testEnvironment: 'node',
setupFilesAfterEnv: ['<rootDir>/test/jest2e2.setup.js'],

View File

@ -2,5 +2,8 @@ const baseConfig = require('./jest.base-config.front');
module.exports = {
...baseConfig,
projects: ['<rootDir>/packages/**/jest.config.front.js'],
projects: [
'<rootDir>/packages/**/jest.config.front.js',
'<rootDir>/scripts/**/jest.config.front.js',
],
};

View File

@ -1,8 +1,5 @@
'use strict';
const baseConfig = require('./jest.base-config');
module.exports = {
...baseConfig,
projects: ['<rootDir>/.github', '<rootDir>/packages/**/jest.config.js'],
projects: ['<rootDir>/packages/**/jest.config.js', '<rootDir>/.github'],
};

View File

@ -1,6 +1,9 @@
{
"version": "4.2.2",
"packages": ["packages/*", "examples/*"],
"version": "4.3.0",
"packages": [
"packages/*",
"examples/*"
],
"npmClient": "yarn",
"useWorkspaces": true,
"useNx": true

View File

@ -71,7 +71,8 @@
"@babel/polyfill": "7.12.1"
},
"devDependencies": {
"@swc-node/jest": "1.5.0",
"@swc/core": "1.2.218",
"@swc/jest": "0.2.22",
"@testing-library/react": "11.2.7",
"@testing-library/react-hooks": "3.7.0",
"@testing-library/user-event": "13.5.0",
@ -107,7 +108,7 @@
"lodash": "4.17.21",
"msw": "0.42.3",
"npm-run-all": "4.1.5",
"nx": "14.3.6",
"nx": "14.4.2",
"plop": "2.7.6",
"prettier": "1.19.1",
"qs": "6.11.0",
@ -119,7 +120,7 @@
"stylelint-config-recommended": "3.0.0",
"stylelint-config-styled-components": "0.1.1",
"stylelint-processor-styled-components": "1.10.0",
"supertest": "5.0.0",
"supertest": "6.2.4",
"yargs": "13.3.2"
},
"engines": {

View File

@ -4,6 +4,7 @@
const { combineReducers, createStore } = require('redux');
const reducers = {
admin_app: jest.fn(() => ({ status: 'init' })),
'content-manager_app': jest.fn(() => ({
components: [],
status: 'loading',

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/admin-test-utils",
"version": "4.2.2",
"version": "4.3.0",
"private": true,
"description": "Test utilities for the Strapi administration panel",
"license": "MIT",

View File

@ -37,6 +37,7 @@ program
.option('--dbfile <dbfile>', 'Database file path for sqlite')
.option('--dbforce', 'Overwrite database content if any')
.option('--template <templateurl>', 'Specify a Strapi template')
.option('--ts, --typescript', 'Use TypeScript to generate the project')
.description('create a new application')
.action(directory => {
initProject(directory, program);

View File

@ -1,6 +1,6 @@
{
"name": "create-strapi-app",
"version": "4.2.2",
"version": "4.3.0",
"description": "Generate a new Strapi application.",
"keywords": [
"create-strapi-app",
@ -38,7 +38,7 @@
"test": "echo \"no tests yet\""
},
"dependencies": {
"@strapi/generate-new": "4.2.2",
"@strapi/generate-new": "4.3.0",
"commander": "6.1.0",
"inquirer": "8.2.4"
},

View File

@ -1,6 +1,6 @@
{
"name": "create-strapi-starter",
"version": "4.2.2",
"version": "4.3.0",
"description": "Generate a new Strapi application.",
"keywords": [
"create-strapi-starter",
@ -38,7 +38,7 @@
"test": "echo \"no tests yet\""
},
"dependencies": {
"@strapi/generate-new": "4.2.2",
"@strapi/generate-new": "4.3.0",
"chalk": "4.1.1",
"ci-info": "3.1.1",
"commander": "7.1.0",

View File

@ -1,6 +1,9 @@
export default {
config: {
locales: ['fr'],
},
bootstrap() {},
const config = {
locales: ['fr'],
};
const bootstrap = () => {};
export default {
config,
bootstrap,
};

View File

@ -3,7 +3,7 @@ import { render, screen } from '@testing-library/react';
import { Router } from 'react-router-dom';
import { createMemoryHistory } from 'history';
import { IntlProvider } from 'react-intl';
import { useGuidedTour } from '@strapi/helper-plugin';
import { useGuidedTour, TrackingContext } from '@strapi/helper-plugin';
import { ThemeProvider, lightTheme } from '@strapi/design-system';
import GuidedTourHomepage from '../index';
@ -31,13 +31,15 @@ jest.mock('@strapi/helper-plugin', () => ({
const history = createMemoryHistory();
const App = (
<ThemeProvider theme={lightTheme}>
<IntlProvider locale="en" messages={{}} textComponent="span">
<Router history={history}>
<GuidedTourHomepage />
</Router>
</IntlProvider>
</ThemeProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<ThemeProvider theme={lightTheme}>
<IntlProvider locale="en" messages={{}} textComponent="span">
<Router history={history}>
<GuidedTourHomepage />
</Router>
</IntlProvider>
</ThemeProvider>
</TrackingContext.Provider>
);
describe('GuidedTour Homepage', () => {

View File

@ -1,7 +1,7 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import { IntlProvider } from 'react-intl';
import { useGuidedTour } from '@strapi/helper-plugin';
import { useGuidedTour, TrackingContext } from '@strapi/helper-plugin';
import { lightTheme, darkTheme } from '@strapi/design-system';
import Theme from '../../../Theme';
import ThemeToggleProvider from '../../../ThemeToggleProvider';
@ -30,13 +30,15 @@ jest.mock('@strapi/helper-plugin', () => ({
}));
const App = (
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<IntlProvider locale="en" messages={{}} defaultLocale="en" textComponent="span">
<GuidedTourModal />
</IntlProvider>
</Theme>
</ThemeToggleProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<IntlProvider locale="en" messages={{}} defaultLocale="en" textComponent="span">
<GuidedTourModal />
</IntlProvider>
</Theme>
</ThemeToggleProvider>
</TrackingContext.Provider>
);
describe('<GuidedTourModal />', () => {

View File

@ -115,7 +115,12 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }) => {
</NavLink>
{pluginsSectionLinks.length > 0 ? (
<NavSection label="Plugins">
<NavSection
label={formatMessage({
id: 'app.components.LeftMenu.plugins',
defaultMessage: 'Plugins',
})}
>
{pluginsSectionLinks.map(link => {
const Icon = link.icon;
@ -129,7 +134,12 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }) => {
) : null}
{generalSectionLinks.length > 0 ? (
<NavSection label="General">
<NavSection
label={formatMessage({
id: 'app.components.LeftMenu.general',
defaultMessage: 'General',
})}
>
{generalSectionLinks.map(link => {
const LinkIcon = link.icon;

View File

@ -15,12 +15,12 @@ import {
useOverlayBlocker,
useTracking,
getYupInnerErrors,
getAPIInnerErrors,
} from '@strapi/helper-plugin';
import { getTrad, removeKeyInObject } from '../../utils';
import reducer, { initialState } from './reducer';
import { cleanData, createYupSchema } from './utils';
import { getAPIInnerError } from './utils/getAPIInnerError';
const EditViewDataManagerProvider = ({
allLayoutData,
@ -238,7 +238,8 @@ const EditViewDataManagerProvider = ({
['text', 'textarea', 'string', 'email', 'uid', 'select', 'select-one', 'number'].includes(
type
) &&
!value
!value &&
value !== 0
) {
inputValue = null;
}
@ -310,7 +311,7 @@ const EditViewDataManagerProvider = ({
} catch (err) {
errors = {
...errors,
...getAPIInnerError(err),
...getAPIInnerErrors(err, { getTrad }),
};
}
@ -346,7 +347,7 @@ const EditViewDataManagerProvider = ({
} catch (err) {
errors = {
...errors,
...getAPIInnerError(err),
...getAPIInnerErrors(err, { getTrad }),
};
}

View File

@ -20,14 +20,6 @@ const cleanData = (retrievedData, currentSchema, componentsSchema) => {
case 'json':
cleanedData = JSON.parse(value);
break;
// TODO
// case 'date':
// cleanedData =
// value && value._isAMomentObject === true ? value.format('YYYY-MM-DD') : value;
// break;
// case 'datetime':
// cleanedData = value && value._isAMomentObject === true ? value.toISOString() : value;
// break;
case 'time': {
cleanedData = value;

View File

@ -70,29 +70,23 @@ const Wrapper = styled.div`
}
table {
font-size: 13px;
thead {
background: rgb(243, 243, 243);
tr {
height: 43px;
background: ${({ theme }) => theme.colors.neutral150};
th {
padding: ${({ theme }) => theme.spaces[4]};
}
}
tr {
border: 1px solid #c6cbd1;
border: 1px solid ${({ theme }) => theme.colors.neutral200};
}
th,
td {
padding: 0 25px;
border: 1px solid #c6cbd1;
padding: ${({ theme }) => theme.spaces[4]};
border: 1px solid ${({ theme }) => theme.colors.neutral200};
border-bottom: 0;
border-top: 0;
}
tbody {
tr {
height: 54px;
}
}
}
pre,

View File

@ -2,7 +2,8 @@ import React, { memo } from 'react';
import PropTypes from 'prop-types';
import { useIntl } from 'react-intl';
import isEmpty from 'lodash/isEmpty';
import Select, { createFilter } from 'react-select';
import { createFilter } from 'react-select';
import { ReactSelect as Select } from '@strapi/helper-plugin';
import { Box } from '@strapi/design-system/Box';
import { Stack } from '@strapi/design-system/Stack';
import { Typography } from '@strapi/design-system/Typography';
@ -24,7 +25,6 @@ function SelectMany({
options,
placeholder,
searchToPersist,
styles,
targetModel,
value,
description,
@ -72,7 +72,6 @@ function SelectMany({
placeholder={formatMessage(
placeholder || { id: 'global.select', defaultMessage: 'Select...' }
)}
styles={styles}
value={[]}
/>
<Box paddingTop={3} style={{ overflow: 'auto' }}>
@ -138,7 +137,6 @@ SelectMany.propTypes = {
defaultMessage: PropTypes.string.isRequired,
}),
searchToPersist: PropTypes.string,
styles: PropTypes.object.isRequired,
targetModel: PropTypes.string.isRequired,
value: PropTypes.array,
description: PropTypes.string,

View File

@ -2,7 +2,7 @@ import React, { useCallback, useState, useEffect, useMemo, memo } from 'react';
import PropTypes from 'prop-types';
import { useIntl } from 'react-intl';
import { useLocation } from 'react-router-dom';
import { useTheme } from 'styled-components';
import { Stack } from '@strapi/design-system/Stack';
import findIndex from 'lodash/findIndex';
import get from 'lodash/get';
import isArray from 'lodash/isArray';
@ -16,18 +16,13 @@ import {
} from '@strapi/helper-plugin';
import { stringify } from 'qs';
import axios from 'axios';
import { Stack } from '@strapi/design-system/Stack';
import { axiosInstance } from '../../../core/utils';
import { getTrad } from '../../utils';
import Label from './Label';
import SelectOne from '../SelectOne';
import SelectMany from '../SelectMany';
import ClearIndicator from './ClearIndicator';
import DropdownIndicator from './DropdownIndicator';
import IndicatorSeparator from './IndicatorSeparator';
import Option from './Option';
import { connect, select } from './utils';
import getSelectStyles from './utils/getSelectStyles';
const initialPaginationState = {
contains: '',
@ -77,7 +72,6 @@ function SelectWrapper({
onRemoveRelation,
} = useCMEditViewDataManager();
const { pathname } = useLocation();
const theme = useTheme();
const value = get(modifiedData, name, null);
const [state, setState] = useState(initialPaginationState);
@ -278,8 +272,6 @@ function SelectWrapper({
return <NotAllowedInput intlLabel={intlLabel} labelAction={labelAction} />;
}
const styles = getSelectStyles(theme);
return (
<Stack spacing={1}>
<Label
@ -293,9 +285,6 @@ function SelectWrapper({
<Component
addRelation={handleAddRelation}
components={{
ClearIndicator,
DropdownIndicator,
IndicatorSeparator,
Option,
}}
displayNavigationLink={shouldDisplayRelationLink}
@ -315,7 +304,6 @@ function SelectWrapper({
onRemove={onRemoveRelation}
placeholder={placeholder}
searchToPersist={searchToPersist}
styles={styles}
targetModel={targetModel}
value={value}
description={description}

View File

@ -68,10 +68,10 @@ const useFetchContentTypeLayout = contentTypeUID => {
}, [contentTypeUID, getData]);
const updateLayout = useCallback(
newLayout => {
data => {
dispatch({
type: 'UPDATE_LAYOUT',
newLayout: formatLayouts({ contentType: newLayout, components: {} }, schemas),
newLayout: formatLayouts(data, schemas),
});
},
[schemas]

View File

@ -59,8 +59,8 @@ const ModalForm = ({ onMetaChange, onSizeChange }) => {
const formType = get(attributes, [selectedField, 'type']);
if (
formType === 'dynamiczone' ||
(formType === 'component' && !['label', 'description'].includes(meta))
['component', 'dynamiczone'].includes(formType) &&
!['label', 'description'].includes(meta)
) {
return null;
}

View File

@ -8,6 +8,7 @@ import { useTracking } from '@strapi/helper-plugin';
import { onChangeListHeaders } from '../actions';
import { selectDisplayedHeaders } from '../selectors';
import getAllAllowedHeaders from './utils/getAllAllowedHeader';
import getTrad from '../../../utils/getTrad';
const FieldPicker = ({ layout }) => {
const dispatch = useDispatch();
@ -50,7 +51,14 @@ const FieldPicker = ({ layout }) => {
aria-label="change displayed fields"
value={values}
onChange={handleChange}
customizeContent={values => `${values.length} currently selected`}
customizeContent={values =>
formatMessage(
{
id: getTrad('select.currently.selected'),
defaultMessage: '{count} currently selected',
},
{ count: values.length }
)}
multi
size="S"
>

View File

@ -21,10 +21,6 @@ const removeKeyInObject = (obj, keyToRemove) => {
}
if (typeof value === 'object') {
if (value._isAMomentObject === true) {
return { ...acc, [current]: value };
}
if (Array.isArray(acc)) {
acc[current] = removeKeyInObject(value, keyToRemove);

View File

@ -1,4 +1,3 @@
import moment from 'moment';
import removeKeyInObject from '../removeKeyInObject';
const testGeoJson = {
@ -171,24 +170,4 @@ describe('CONTENT MANAGER | utils | removeKeyInObject', () => {
expect(removeKeyInObject(data, '__temp_key__')).toEqual(expected);
});
it('should not corrupt moment objects', () => {
const momentObject = moment();
const data = {
id: 1,
comment_date_time: momentObject,
__temp_key__: 0,
};
const expected = {
id: 1,
comment_date_time: momentObject,
};
const result = removeKeyInObject(data, '__temp_key__');
expect(result).toEqual(expected);
expect(result.comment_date_time instanceof moment).toBeTruthy();
});
});

View File

@ -2,7 +2,7 @@ import { useQuery } from 'react-query';
import { useNotification } from '@strapi/helper-plugin';
import { fetchMarketplacePlugins } from './utils/api';
const useFetchMarketplaceProviders = (notifyLoad) => {
const useFetchMarketplaceProviders = notifyLoad => {
const toggleNotification = useNotification();
return useQuery('list-marketplace-providers', () => fetchMarketplacePlugins(), {

View File

@ -48,7 +48,7 @@ const run = async () => {
// We need to make sure to fetch the project type before importing the StrapiApp
// otherwise the strapi-babel-plugin does not work correctly
const StrapiApp = await import('./StrapiApp');
const StrapiApp = await import(/* webpackChunkName: "admin-app" */ './StrapiApp');
const app = StrapiApp.default({
appPlugins: plugins,

View File

@ -6,16 +6,17 @@
import React, { Suspense, useEffect, useMemo, lazy } from 'react';
import { Switch, Route } from 'react-router-dom';
// Components from @strapi/helper-plugin
import { useTracking, LoadingIndicatorPage, useStrapiApp } from '@strapi/helper-plugin';
import { useDispatch, useSelector } from 'react-redux';
import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import GuidedTourModal from '../../components/GuidedTour/Modal';
import LeftMenu from '../../components/LeftMenu';
import AppLayout from '../../layouts/AppLayout';
import { useMenu } from '../../hooks';
import Onboarding from './Onboarding';
import { createRoute } from '../../utils';
import GuidedTourModal from '../../components/GuidedTour/Modal';
import { SET_APP_RUNTIME_STATUS } from '../App/constants';
import Onboarding from './Onboarding';
const CM = lazy(() =>
import(/* webpackChunkName: "content-manager" */ '../../content-manager/pages/App')
@ -27,8 +28,12 @@ const InstalledPluginsPage = lazy(() =>
const MarketplacePage = lazy(() =>
import(/* webpackChunkName: "Admin_marketplace" */ '../MarketplacePage')
);
const NotFoundPage = lazy(() => import('../NotFoundPage'));
const InternalErrorPage = lazy(() => import('../InternalErrorPage'));
const NotFoundPage = lazy(() =>
import(/* webpackChunkName: "Admin_NotFoundPage" */ '../NotFoundPage')
);
const InternalErrorPage = lazy(() =>
import(/* webpackChunkName: "Admin_InternalErrorPage" */ '../InternalErrorPage')
);
const ProfilePage = lazy(() =>
import(/* webpackChunkName: "Admin_profilePage" */ '../ProfilePage')
@ -40,11 +45,20 @@ const SettingsPage = lazy(() =>
// Simple hook easier for testing
const useTrackUsage = () => {
const { trackUsage } = useTracking();
const dispatch = useDispatch();
const appStatus = useSelector(state => state.admin_app.status);
useEffect(() => {
trackUsage('didAccessAuthenticatedAdministration');
// Make sure the event is only send once after accessing the admin panel
// and not at runtime for example when regenerating the permissions with the ctb
// or with i18n
if (appStatus === 'init') {
trackUsage('didAccessAuthenticatedAdministration');
dispatch({ type: SET_APP_RUNTIME_STATUS });
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
}, [appStatus]);
};
const Admin = () => {

View File

@ -8,6 +8,12 @@ import { useStrapiApp } from '@strapi/helper-plugin';
import { useMenu } from '../../../hooks';
import Admin from '../index';
jest.mock('react-redux', () => ({
...jest.requireActual('react-redux'),
useDispatch: jest.fn(() => jest.fn()),
useSelector: jest.fn(() => 'init'),
}));
jest.mock('@strapi/helper-plugin', () => ({
LoadingIndicatorPage: () => <div>Loading</div>,
useStrapiApp: jest.fn(() => ({ menu: [] })),

View File

@ -3,6 +3,12 @@ import { useTrackUsage } from '..';
const trackUsageMock = jest.fn();
jest.mock('react-redux', () => ({
...jest.requireActual('react-redux'),
useDispatch: jest.fn(() => jest.fn()),
useSelector: jest.fn(() => 'init'),
}));
jest.mock('@strapi/helper-plugin', () => ({
useTracking: jest.fn(() => ({ trackUsage: trackUsageMock })),
}));

View File

@ -0,0 +1 @@
export const SET_APP_RUNTIME_STATUS = 'StrapiAdmin/APP/SET_APP_RUNTIME_STATUS';

View File

@ -13,7 +13,9 @@ import {
useNotification,
TrackingContext,
prefixFileUrlWithBackendUrl,
useAppInfos,
} from '@strapi/helper-plugin';
import axios from 'axios';
import { SkipToContent } from '@strapi/design-system/Main';
import { useIntl } from 'react-intl';
import PrivateRoute from '../../components/PrivateRoute';
@ -34,6 +36,7 @@ function App() {
const { updateProjectSettings } = useConfigurations();
const { formatMessage } = useIntl();
const [{ isLoading, hasAdmin, uuid }, setState] = useState({ isLoading: true, hasAdmin: false });
const appInfo = useAppInfos();
const authRoutes = useMemo(() => {
return makeUniqueRoutes(
@ -41,6 +44,8 @@ function App() {
);
}, []);
const [telemetryProperties, setTelemetryProperties] = useState(null);
useEffect(() => {
const currentToken = auth.getToken();
@ -69,12 +74,20 @@ function App() {
const getData = async () => {
try {
const {
data: { hasAdmin, uuid, menuLogo },
} = await request('/admin/init', { method: 'GET' });
data: {
data: { hasAdmin, uuid, menuLogo },
},
} = await axios.get(`${strapi.backendURL}/admin/init`);
updateProjectSettings({ menuLogo: prefixFileUrlWithBackendUrl(menuLogo) });
if (uuid) {
const {
data: { data: properties },
} = await axios.get(`${strapi.backendURL}/admin/telemetry-properties`);
setTelemetryProperties(properties);
try {
const deviceId = await getUID();
@ -84,6 +97,10 @@ function App() {
event: 'didInitializeAdministration',
uuid,
deviceId,
properties: {
...properties,
environment: appInfo.currentEnvironment,
},
}),
headers: {
'Content-Type': 'application/json',
@ -104,6 +121,7 @@ function App() {
};
getData();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [toggleNotification, updateProjectSettings]);
const setHasAdmin = hasAdmin => setState(prev => ({ ...prev, hasAdmin }));
@ -115,7 +133,7 @@ function App() {
return (
<Suspense fallback={<LoadingIndicatorPage />}>
<SkipToContent>{formatMessage({ id: 'skipToContent' })}</SkipToContent>
<TrackingContext.Provider value={uuid}>
<TrackingContext.Provider value={{ uuid, telemetryProperties }}>
<Switch>
{authRoutes}
<Route

View File

@ -0,0 +1,22 @@
import produce from 'immer';
import { SET_APP_RUNTIME_STATUS } from './constants';
const initialState = {
status: 'init',
};
const reducer = (state = initialState, action) =>
/* eslint-disable-next-line consistent-return */
produce(state, draftState => {
switch (action.type) {
case SET_APP_RUNTIME_STATUS: {
draftState.status = 'runtime';
break;
}
default:
return draftState;
}
});
export { initialState };
export default reducer;

View File

@ -3,6 +3,7 @@ import { render } from '@testing-library/react';
import { ThemeProvider } from '@strapi/design-system/ThemeProvider';
import { lightTheme } from '@strapi/design-system/themes';
import { Router } from 'react-router-dom';
import { TrackingContext } from '@strapi/helper-plugin';
import { createMemoryHistory } from 'history';
import * as yup from 'yup';
import { IntlProvider } from 'react-intl';
@ -28,17 +29,19 @@ describe('ADMIN | PAGES | AUTH | Register', () => {
const history = createMemoryHistory();
const { container } = render(
<IntlProvider locale="en" messages={{}} textComponent="span">
<ThemeProvider theme={lightTheme}>
<Router history={history}>
<Register
authType="register-admin"
fieldsToDisable={[]}
noSignin
onSubmit={() => {}}
schema={yup.object()}
/>
</Router>
</ThemeProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<ThemeProvider theme={lightTheme}>
<Router history={history}>
<Register
authType="register-admin"
fieldsToDisable={[]}
noSignin
onSubmit={() => {}}
schema={yup.object()}
/>
</Router>
</ThemeProvider>
</TrackingContext.Provider>
</IntlProvider>
);

View File

@ -9,6 +9,7 @@ import { useModels } from '../../../hooks';
jest.mock('@strapi/helper-plugin', () => ({
...jest.requireActual('@strapi/helper-plugin'),
useTracking: jest.fn(() => ({ trackUsage: jest.fn() })),
useGuidedTour: jest.fn(() => ({
isGuidedTourVisible: false,
guidedTourState: {

View File

@ -82,11 +82,19 @@ const Plugins = () => {
<Tr key={name}>
<Td>
<Typography textColor="neutral800" variant="omega" fontWeight="bold">
{displayName}
{formatMessage({
id: `global.plugins.${name}`,
defaultMessage: displayName,
})}
</Typography>
</Td>
<Td>
<Typography textColor="neutral800">{description}</Typography>
<Typography textColor="neutral800">
{formatMessage({
id: `global.plugins.${name}.description`,
defaultMessage: description,
})}
</Typography>
</Td>
</Tr>
);

View File

@ -357,6 +357,7 @@ const ProfilePage = () => {
})}
name="password"
type={passwordShown ? 'text' : 'password'}
autoComplete="new-password"
endAction={
<FieldActionWrapper
onClick={e => {
@ -398,6 +399,7 @@ const ProfilePage = () => {
})}
name="confirmPassword"
type={passwordConfirmShown ? 'text' : 'password'}
autoComplete="new-password"
endAction={
<FieldActionWrapper
onClick={e => {
@ -531,24 +533,23 @@ const ProfilePage = () => {
});
}}
>
{themesToDisplay.map(theme => {
const label = formatMessage(
{
id:
'Settings.profile.form.section.experience.mode.option-label',
defaultMessage: '{name} mode',
},
{
name: upperFirst(theme),
}
);
return (
<Option value={theme} key={theme}>
{label}
</Option>
);
})}
{themesToDisplay.map(theme => (
<Option value={theme} key={theme}>
{formatMessage(
{
id:
'Settings.profile.form.section.experience.mode.option-label',
defaultMessage: '{name} mode',
},
{
name: formatMessage({
id: theme,
defaultMessage: upperFirst(theme),
}),
}
)}
</Option>
))}
</Select>
</GridItem>
</Grid>

View File

@ -3,7 +3,7 @@ import { render, waitFor } from '@testing-library/react';
import { IntlProvider } from 'react-intl';
import { Router, Route } from 'react-router-dom';
import { createMemoryHistory } from 'history';
import { useRBAC } from '@strapi/helper-plugin';
import { useRBAC, TrackingContext } from '@strapi/helper-plugin';
import { QueryClient, QueryClientProvider } from 'react-query';
import { lightTheme, darkTheme } from '@strapi/design-system';
import { axiosInstance } from '../../../../../../core/utils';
@ -50,17 +50,19 @@ const client = new QueryClient({
const makeApp = history => {
return (
<QueryClientProvider client={client}>
<IntlProvider messages={{}} defaultLocale="en" textComponent="span" locale="en">
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<Route path="/settings/api-tokens">
<ListView />
</Route>
</Router>
</Theme>
</ThemeToggleProvider>
</IntlProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<IntlProvider messages={{}} defaultLocale="en" textComponent="span" locale="en">
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<Route path="/settings/api-tokens">
<ListView />
</Route>
</Router>
</Theme>
</ThemeToggleProvider>
</IntlProvider>
</TrackingContext.Provider>
</QueryClientProvider>
);
};

View File

@ -18,8 +18,7 @@ const FromUrlForm = ({ goTo, next, onClose, setLocalImage }) => {
setLogoUrl(e.target.value);
};
const handleSubmit = async e => {
e.preventDefault();
const handleSubmit = async () => {
try {
const file = await urlToFile(logoUrl);
const asset = await parseFileMetadatas(file);
@ -36,7 +35,12 @@ const FromUrlForm = ({ goTo, next, onClose, setLocalImage }) => {
};
return (
<form onSubmit={handleSubmit}>
<form
onSubmit={e => {
e.preventDefault();
handleSubmit();
}}
>
<Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>
<TextInput
label={formatMessage({

View File

@ -3,7 +3,7 @@ import { render, screen, waitFor } from '@testing-library/react';
import { QueryClientProvider, QueryClient } from 'react-query';
import { IntlProvider } from 'react-intl';
import { ThemeProvider, lightTheme } from '@strapi/design-system';
import { useAppInfos } from '@strapi/helper-plugin';
import { useAppInfos, TrackingContext } from '@strapi/helper-plugin';
import ApplicationInfosPage from '../index';
import server from './server';
@ -24,11 +24,13 @@ const client = new QueryClient();
const App = (
<QueryClientProvider client={client}>
<ThemeProvider theme={lightTheme}>
<IntlProvider locale="en" messages={{}} textComponent="span">
<ApplicationInfosPage />
</IntlProvider>
</ThemeProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<ThemeProvider theme={lightTheme}>
<IntlProvider locale="en" messages={{}} textComponent="span">
<ApplicationInfosPage />
</IntlProvider>
</ThemeProvider>
</TrackingContext.Provider>
</QueryClientProvider>
);

View File

@ -9,22 +9,12 @@ import { render } from '@testing-library/react';
import { IntlProvider } from 'react-intl';
import { Router, Switch, Route } from 'react-router-dom';
import { createMemoryHistory } from 'history';
import moment from 'moment';
import { lightTheme, darkTheme } from '@strapi/design-system';
import Theme from '../../../../../../components/Theme';
import ThemeToggleProvider from '../../../../../../components/ThemeToggleProvider';
import EditPage from '../index';
jest.mock('moment', () => {
const mMoment = {
format: jest.fn().mockReturnThis(),
valueOf: jest.fn(),
};
return jest.fn(() => mMoment);
});
jest.mock('@strapi/helper-plugin', () => ({
...jest.requireActual('@strapi/helper-plugin'),
useNotification: jest.fn(() => jest.fn()),
@ -55,9 +45,6 @@ const makeApp = history => (
describe('<EditPage />', () => {
it('renders and matches the snapshot', () => {
moment()
.format.mockReturnValueOnce('20210130T12:34:56+00:00')
.mockReturnValueOnce('0130-2021');
const history = createMemoryHistory();
const App = makeApp(history);
const { container } = render(App);

View File

@ -9,7 +9,7 @@ import { render, screen } from '@testing-library/react';
import { createMemoryHistory } from 'history';
import { Router } from 'react-router-dom';
import { IntlProvider } from 'react-intl';
import { useRBAC } from '@strapi/helper-plugin';
import { useRBAC, TrackingContext } from '@strapi/helper-plugin';
import { lightTheme, darkTheme } from '@strapi/design-system';
import { useRolesList } from '../../../../../../hooks';
@ -33,13 +33,15 @@ jest.mock('../../../../../../hooks', () => ({
const makeApp = history => (
<IntlProvider messages={{}} defaultLocale="en" textComponent="span" locale="en">
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<ListPage />
</Router>
</Theme>
</ThemeToggleProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<ListPage />
</Router>
</Theme>
</ThemeToggleProvider>
</TrackingContext.Provider>
</IntlProvider>
);

View File

@ -62,7 +62,7 @@ const layout = [
id: 'Auth.form.username.placeholder',
defaultMessage: 'e.g. Kai_Doe',
},
type: 'email',
type: 'text',
size: {
col: 6,
xs: 12,
@ -81,6 +81,7 @@ const layout = [
col: 6,
xs: 12,
},
autoComplete: 'new-password',
},
{
intlLabel: {
@ -93,6 +94,7 @@ const layout = [
col: 6,
xs: 12,
},
autoComplete: 'new-password',
},
],
[

View File

@ -63,7 +63,7 @@ const TableRows = ({
return (
<Td key={key}>
{typeof cellFormatter === 'function' ? (
cellFormatter(data, { key, name, ...rest })
cellFormatter(data, { key, name, formatMessage, ...rest })
) : (
<Typography textColor="neutral800">{data[name] || '-'}</Typography>
)}

View File

@ -1,18 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`DynamicTable renders and matches the snapshot 1`] = `
.c29 {
border: 0;
-webkit-clip: rect(0 0 0 0);
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.c0 {
padding-top: 16px;
}
@ -380,6 +368,18 @@ exports[`DynamicTable renders and matches the snapshot 1`] = `
line-height: 1.43;
}
.c29 {
border: 0;
-webkit-clip: rect(0 0 0 0);
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
<div>
<div
class="c0"
@ -466,7 +466,7 @@ exports[`DynamicTable renders and matches the snapshot 1`] = `
</div>
<nav
aria-label="pagination"
class="sc-icMgfS"
class="sc-czWrlN"
>
<ul
class="c17 c18"

View File

@ -4,23 +4,26 @@ import { IntlProvider } from 'react-intl';
import { createMemoryHistory } from 'history';
import { Router, Route } from 'react-router-dom';
import { lightTheme, darkTheme } from '@strapi/design-system';
import { TrackingContext } from '@strapi/helper-plugin';
import Theme from '../../../../../../../components/Theme';
import ThemeToggleProvider from '../../../../../../../components/ThemeToggleProvider';
import PaginationFooter from '../index';
const makeApp = (history, pagination) => {
return (
<IntlProvider messages={{}} textComponent="span" locale="en" defaultLocale="en">
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<Route path="/settings/user">
<PaginationFooter pagination={pagination} />
</Route>
</Router>
</Theme>
</ThemeToggleProvider>
</IntlProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<IntlProvider messages={{}} textComponent="span" locale="en" defaultLocale="en">
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<Route path="/settings/user">
<PaginationFooter pagination={pagination} />
</Route>
</Router>
</Theme>
</ThemeToggleProvider>
</IntlProvider>
</TrackingContext.Provider>
);
};

View File

@ -4,7 +4,7 @@ import { IntlProvider } from 'react-intl';
import { Router, Route } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from 'react-query';
import { createMemoryHistory } from 'history';
import { useRBAC } from '@strapi/helper-plugin';
import { useRBAC, TrackingContext } from '@strapi/helper-plugin';
import { lightTheme, darkTheme } from '@strapi/design-system';
import Theme from '../../../../../../components/Theme';
import ThemeToggleProvider from '../../../../../../components/ThemeToggleProvider';
@ -31,17 +31,19 @@ const client = new QueryClient({
const makeApp = history => {
return (
<QueryClientProvider client={client}>
<IntlProvider messages={{}} defaultLocale="en" textComponent="span" locale="en">
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<Route path="/settings/user">
<ListPage />
</Route>
</Router>
</Theme>
</ThemeToggleProvider>
</IntlProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<IntlProvider messages={{}} defaultLocale="en" textComponent="span" locale="en">
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<Route path="/settings/user">
<ListPage />
</Route>
</Router>
</Theme>
</ThemeToggleProvider>
</IntlProvider>
</TrackingContext.Provider>
</QueryClientProvider>
);
};

View File

@ -24,9 +24,18 @@ const tableHeaders = [
name: 'roles',
metadatas: { label: 'Roles', sortable: false },
/* eslint-disable react/prop-types */
cellFormatter: ({ roles }) => {
cellFormatter: ({ roles }, { formatMessage }) => {
return (
<Typography textColor="neutral800">{roles.map(role => role.name).join(',\n')}</Typography>
<Typography textColor="neutral800">
{roles
.map(role =>
formatMessage({
id: `global.${role.code}`,
defaultMessage: role.name,
})
)
.join(',\n')}
</Typography>
);
},
/* eslint-enable react/prop-types */
@ -41,11 +50,16 @@ const tableHeaders = [
name: 'isActive',
metadatas: { label: 'User status', sortable: false },
// eslint-disable-next-line react/prop-types
cellFormatter: ({ isActive }) => {
cellFormatter: ({ isActive }, { formatMessage }) => {
return (
<Flex>
<Status isActive={isActive} variant={isActive ? 'success' : 'danger'} />
<Typography textColor="neutral800">{isActive ? 'Active' : 'Inactive'}</Typography>
<Typography textColor="neutral800">
{formatMessage({
id: isActive ? 'global.active' : 'global.inactive',
defaultMessage: isActive ? 'Active' : 'Inactive',
})}
</Typography>
</Flex>
);
},

View File

@ -73,7 +73,10 @@ const SelectRoles = ({ disabled, error, onChange, value }) => {
{(data || []).map(role => {
return (
<Option key={role.id} value={role.id}>
{role.name}
{formatMessage({
id: `global.${role.code}`,
defaultMessage: role.name,
})}
</Option>
);
})}

View File

@ -1,6 +1,6 @@
import React from 'react';
import { Router, Route } from 'react-router-dom';
import { StrapiAppProvider, AppInfosContext } from '@strapi/helper-plugin';
import { StrapiAppProvider, AppInfosContext, TrackingContext } from '@strapi/helper-plugin';
import { render, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { createMemoryHistory } from 'history';
@ -28,24 +28,26 @@ jest.mock('../pages/ApplicationInfosPage', () => () => <h1>App infos</h1>);
const makeApp = (history, settings) => (
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<AppInfosContext.Provider value={{ shouldUpdateStrapi: false }}>
<StrapiAppProvider
settings={settings}
plugins={{}}
getPlugin={jest.fn()}
runHookParallel={jest.fn()}
runHookWaterfall={jest.fn()}
runHookSeries={jest.fn()}
menu={[]}
>
<Router history={history}>
<Route path="/settings/:settingId" component={SettingsPage} />
<Route path="/settings" component={SettingsPage} />
</Router>
</StrapiAppProvider>
</AppInfosContext.Provider>
</Theme>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<Theme>
<AppInfosContext.Provider value={{ shouldUpdateStrapi: false }}>
<StrapiAppProvider
settings={settings}
plugins={{}}
getPlugin={jest.fn()}
runHookParallel={jest.fn()}
runHookWaterfall={jest.fn()}
runHookSeries={jest.fn()}
menu={[]}
>
<Router history={history}>
<Route path="/settings/:settingId" component={SettingsPage} />
<Route path="/settings" component={SettingsPage} />
</Router>
</StrapiAppProvider>
</AppInfosContext.Provider>
</Theme>
</TrackingContext.Provider>
</ThemeToggleProvider>
);

View File

@ -1,12 +1,13 @@
import appReducer from './pages/App/reducer';
import rbacProviderReducer from './components/RBACProvider/reducer';
import appReducer from './content-manager/pages/App/reducer';
import cmAppReducer from './content-manager/pages/App/reducer';
import editViewLayoutManagerReducer from './content-manager/pages/EditViewLayoutManager/reducer';
import listViewReducer from './content-manager/pages/ListView/reducer';
import rbacManagerReducer from './content-manager/hooks/useSyncRbac/reducer';
import editViewCrudReducer from './content-manager/sharedReducers/crudReducer/reducer';
const contentManagerReducers = {
'content-manager_app': appReducer,
'content-manager_app': cmAppReducer,
'content-manager_listView': listViewReducer,
'content-manager_rbacManager': rbacManagerReducer,
'content-manager_editViewLayoutManager': editViewLayoutManagerReducer,
@ -14,6 +15,7 @@ const contentManagerReducers = {
};
const reducers = {
admin_app: appReducer,
rbacProvider: rbacProviderReducer,
...contentManagerReducers,
};

View File

@ -3,6 +3,7 @@
"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",
@ -157,6 +158,8 @@
"Settings.profile.form.section.experience.mode.label": "Interface mode",
"Settings.profile.form.section.experience.mode.hint": "Displays your interface in the chosen mode.",
"Settings.profile.form.section.experience.mode.option-label": "{name} mode",
"light": "Light",
"dark": "Dark",
"Settings.profile.form.section.experience.title": "Experience",
"Settings.profile.form.section.helmet.title": "User profile",
"Settings.profile.form.section.profile.page.title": "Profile page",
@ -320,8 +323,10 @@
"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.logout": "Logout",
"app.components.LeftMenu.logo.alt": "Application logo",
"app.components.LeftMenu.plugins": "Plugins",
"app.components.LeftMenu.navbrand.title": "Strapi Dashboard",
"app.components.LeftMenu.navbrand.workplace": "Workplace",
"app.components.LeftMenuFooter.help": "Help",
@ -671,6 +676,7 @@
"content-manager.popUpwarning.warning.has-draft-relations.button-confirm": "Yes, publish",
"content-manager.popUpwarning.warning.has-draft-relations.message": "<b>{count, plural, =0 { of your content relations is} one { of your content relations is} other { of your content relations are}}</b> not published yet.<br></br>It might engender broken links and errors on your project.",
"content-manager.popover.display-relations.label": "Display relations",
"content-manager.select.currently.selected": "{count} currently selected",
"content-manager.success.record.delete": "Deleted",
"content-manager.success.record.publish": "Published",
"content-manager.success.record.save": "Saved",
@ -681,7 +687,10 @@
"form.button.done": "Done",
"global.search": "Search",
"global.actions": "Actions",
"global.active": "Active",
"global.inactive": "Inactive",
"global.back": "Back",
"global.cancel": "Cancel",
"global.change-password": "Change password",
"global.content-manager": "Content Manager",
"global.continue": "Continue",
@ -698,6 +707,24 @@
"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.email": "Email",
"global.plugins.email.description": "Configure your application to send emails.",
"global.plugins.upload": "Media Library",
"global.plugins.upload.description": "Media file management.",
"global.plugins.graphql": "GraphQL",
"global.plugins.graphql.description": "Adds GraphQL endpoint with default API methods.",
"global.plugins.documentation": "Documentation",
"global.plugins.documentation.description": "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
"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.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",
"global.prompt.unsaved": "Are you sure you want to leave this page? All your modifications will be lost",
"global.reset-password": "Reset password",
@ -707,6 +734,15 @@
"global.select": "Select",
"global.select-all-entries": "Select all entries",
"global.settings": "Settings",
"global.strapi-super-admin": "Super Admin",
"global.strapi-editor": "Editor",
"global.strapi-author": "Author",
"global.table.header.email": "Email",
"global.table.header.firstname": "Firstname",
"global.table.header.isActive": "User status",
"global.table.header.lastname": "Lastname",
"global.table.header.roles": "Roles",
"global.table.header.username": "Username",
"global.type": "Type",
"global.users": "Users",
"notification.contentType.relations.conflict": "Content type has conflicting relations",
@ -722,6 +758,7 @@
"notification.success.title": "Success:",
"notification.version.update.message": "A new version of Strapi is available!",
"notification.warning.title": "Warning:",
"notification.warning.404": "404 - Not found",
"or": "OR",
"request.error.model.unknown": "This model doesn't exist",
"skipToContent": "Skip to content",

View File

@ -0,0 +1,618 @@
{
"Analytics": "એનાલિટિક્સ",
"Auth.components.Oops.text": "તમારું એકાઉન્ટ સસ્પેન્ડ કરવામાં આવ્યું છે.",
"Auth.components.Oops.text.admin": "જો આ ભૂલ છે, તો કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો",
"Auth.components.Oops.title": "અરે...",
"Auth.form.button.forgot-password": "ઈ - મેલ મોકલો",
"Auth.form.button.go-home": "ઘરે પાછા જાવ",
"Auth.form.button.login": "રવેશ કરો",
"Auth.form.button.login.providers.error": "અમે તમને પસંદ કરેલ પ્રદાતા દ્વારા કનેક્ટ કરી શકતા નથી",
"Auth.form.button.login.strapi": "સ્ટ્રેપી દ્વારા લૉગ ઇન કરો",
"Auth.form.button.password-recovery": "પાસવર્ડ પુનઃપ્રાપ્તિ",
"Auth.form.button.register": "ચાલો શરૂ કરીએ",
"Auth.form.confirmPassword.label": "પુષ્ટિકરણ પાસવર્ડ",
"Auth.form.currentPassword.label": "અત્યારનો પાસવર્ડ",
"Auth.form.email.label": "ઈમેલ",
"Auth.form.email.placeholder": "દા.ત. кай@дое.цум",
"Auth.form.error.blocked": "તમારું એકાઉન્ટ એડમિનિસ્ટ્રેટર દ્વારા અવરોધિત કરવામાં આવ્યું છે",
"Auth.form.error.code.provide": "ખોટો કોડ આપેલ છે",
"Auth.form.error.confirmed": "તમારા એકાઉન્ટ ઈમેલની પુષ્ટિ થઈ નથી",
"Auth.form.error.email.invalid": "આ ઈમેલ અમાન્ય છે",
"Auth.form.error.email.provide": "કૃપા કરીને તમારું વપરાશકર્તા નામ અથવા તમારું ઇમેઇલ પ્રદાન કરો",
"Auth.form.error.email.taken": "ઇમેલ અગાઉ લેવાઇ ચુક્યું છે",
"Auth.form.error.invalid": "ઓળખકર્તા અથવા પાસવર્ડ અમાન્ય",
"Auth.form.error.params.provide": "અયોગ્ય પરિમાણો પ્રદાન કરવામાં આવ્યા છે",
"Auth.form.error.password.format": "તમારા પાસવર્ડમાં ત્રણ કરતા વધુ વખત `$` ચિહ્ન ન હોઈ શકે",
"Auth.form.error.password.local": "આ વપરાશકર્તાએ ક્યારેય સ્થાનિક પાસવર્ડ સેટ કર્યો નથી, કૃપા કરીને એકાઉન્ટ બનાવતી વખતે ઉપયોગમાં લેવાતા પ્રદાતા દ્વારા લૉગિન કરો",
"Auth.form.error.password.matching": "પાસવર્ડ મેળ ખાતા નથી",
"Auth.form.error.password.provide": "કૃપા કરીને તમારો પાસવર્ડ આપો",
"Settings.permissions.conditions.define-conditions": "શરતો વ્યાખ્યાયિત કરો",
"Settings.permissions.conditions.links": "લિંક્સ",
"Settings.permissions.conditions.no-actions": "તમારે તેના પર શરતો વ્યાખ્યાયિત કરતા પહેલા ક્રિયાઓ (બનાવો, વાંચો, અપડેટ કરો, ...) પસંદ કરો.",
"Settings.permissions.conditions.none-selected": "કોઈપણ સમયે",
"Settings.permissions.conditions.or": "અથવા",
"Settings.permissions.conditions.when": "ક્યારે",
"settings.permissions.select-all-by-permission": "બધી {label} પરવાનગીઓ પસંદ કરો",
"settings.permissions.select-by-permission": "{label} પરવાનગી પસંદ કરો",
"Settings.permissions.users.create": "નવા વપરાશકર્તાને આમંત્રિત કરો",
"Settings.permissions.users.form.email": "ઈમેલ",
"Settings.permissions.users.form.firstname": "પ્રથમ નામ",
"Settings.permissions.users.form.lastname": "છેલ્લું નામ",
"Settings.permissions.users.form.sso": "SSO સાથે કનેક્ટ કરો",
"Settings.permissions.users.form.sso.description": "જ્યારે સક્ષમ (ચાલુ) હોય, ત્યારે વપરાશકર્તાઓ SSO દ્વારા લૉગિન કરી શકે છે",
"Settings.permissions.users.listview.header.subtitle": "સ્ટ્રેપી એડમિન પેનલની ઍક્સેસ ધરાવતા તમામ વપરાશકર્તાઓ",
"Settings.permissions.users.tabs.label": "ટેબ પરવાનગીઓ",
"Settings.profile.form.notify.data.loaded": "તમારો પ્રોફાઇલ ડેટા લોડ કરવામાં આવ્યો છે",
"Settings.profile.form.section.experience.clear.select": "પસંદ કરેલ ઈન્ટરફેસ ભાષા સાફ કરો",
"Settings.profile.form.section.experience.here": "અહીં",
"Settings.profile.form.section.experience.interfaceLanguage": "ઇન્ટરફેસ ભાષા",
"Settings.profile.form.section.experience.interfaceLanguage.hint": "આ ફક્ત પસંદ કરેલી ભાષામાં તમારું પોતાનું ઈન્ટરફેસ પ્રદર્શિત કરશે.",
"Settings.profile.form.section.experience.interfaceLanguageHelp": "પસંદગીના ફેરફારો ફક્ત તમને જ લાગુ થશે. વધુ માહિતી {અહીં} ઉપલબ્ધ છે.",
"Settings.profile.form.section.experience.mode.label": "ઇન્ટરફેસ મોડ",
"Settings.profile.form.section.experience.mode.hint": "તમારું ઇન્ટરફેસ પસંદ કરેલ મોડમાં દર્શાવે છે.",
"Settings.profile.form.section.experience.mode.option-label": "{name} મોડ",
"Settings.profile.form.section.experience.title": "અનુભવ",
"Settings.profile.form.section.helmet.title": "વપરાશકર્તા પ્રોફાઇલ",
"Settings.profile.form.section.profile.page.title": "પ્રોફાઇલ પૃષ્ઠ",
"Settings.roles.create.description": "ભૂમિકાને આપવામાં આવેલા અધિકારોને વ્યાખ્યાયિત કરો",
"Settings.roles.create.title": "કોઈ ભૂમિકા બનાવો",
"Settings.roles.created": "ભૂમિકા બનાવી",
"Settings.roles.edit.title": "કોઈ ભૂમિકા સંપાદિત કરો",
"Settings.roles.form.button.users-with-role": "{સંખ્યા, બહુવચન, =0 {# વપરાશકર્તાઓ} એક {# વપરાશકર્તા} અન્ય {# વપરાશકર્તાઓ}} આ ભૂમિકા સાથે",
"Settings.roles.form.created": "બનાવ્યું",
"Settings.roles.form.description": "ભૂમિકાનું નામ અને વર્ણન",
"Settings.roles.form.permission.property-label": "{label} પરવાનગીઓ",
"Settings.roles.form.permissions.attributesPermissions": "ક્ષેત્ર પરવાનગીઓ",
"Settings.roles.form.permissions.create": "બનાવો",
"Settings.roles.form.permissions.delete": "કાઢી નાખો",
"Settings.roles.form.permissions.publish": "પ્રકાશિત કરો",
"Settings.roles.form.permissions.read": "વાંચો",
"Settings.roles.form.permissions.update": "અપડેટ",
"Settings.roles.list.button.add": "નવી ભૂમિકા ઉમેરો",
"Settings.roles.list.description": "ભૂમિકાઓની યાદી",
"Settings.roles.title.singular": "ભૂમિકા",
"Settings.sso.description": "સિંગલ સાઇન-ઓન સુવિધા માટે સેટિંગ્સને ગોઠવો.",
"Settings.sso.form.defaultRole.description": "તે નવા પ્રમાણિત વપરાશકર્તાને પસંદ કરેલ ભૂમિકા સાથે જોડશે",
"Settings.sso.form.defaultRole.description-not-allowed": "તમારી પાસે એડમિન ભૂમિકાઓ વાંચવા માટે પરવાનગી હોવી જરૂરી છે",
"Settings.sso.form.defaultRole.label": "મૂળભૂત ભૂમિકા",
"Settings.sso.form.registration.description": "જો કોઈ એકાઉન્ટ અસ્તિત્વમાં ન હોય તો SSO લૉગિન પર નવો વપરાશકર્તા બનાવો",
"Settings.sso.form.registration.label": "ઓટો-નોંધણી",
"Settings.sso.title": "સિંગલ સાઇન-ઓન",
"Settings.webhooks.create": "વેબહુક બનાવો",
"Settings.webhooks.create.header": "નવું હેડર બનાવો",
"Settings.webhooks.created": "વેબહુક બનાવ્યું",
"Settings.webhooks.event.publish-tooltip": "આ ઇવેન્ટ ફક્ત ડ્રાફ્ટ/પ્રકાશિત સિસ્ટમ સક્ષમ કરેલ સામગ્રીઓ માટે જ અસ્તિત્વમાં છે",
"Settings.webhooks.events.create": "બનાવો",
"Settings.webhooks.events.update": "અપડેટ",
"Settings.webhooks.form.events": "ઇવેન્ટ્સ",
"Settings.webhooks.form.headers": "હેડર",
"Settings.webhooks.form.url": "Url",
"Settings.webhooks.headers.remove": "હેડર પંક્તિ {નંબર} દૂર કરો",
"Settings.webhooks.key": "કી",
"Settings.webhooks.list.button.add": "નવું વેબહુક બનાવો",
"Settings.webhooks.list.description": "POST ફેરફારોની સૂચનાઓ મેળવો",
"Settings.webhooks.list.empty.description": "કોઈ વેબહુક્સ મળ્યા નથી",
"Settings.webhooks.list.empty.link": "અમારા દસ્તાવેજો જુઓ",
"Settings.webhooks.list.empty.title": "હજી સુધી કોઈ વેબહુક્સ નથી",
"Settings.webhooks.list.th.actions": "ક્રિયાઓ",
"Settings.webhooks.list.th.status": "સ્ટેટસ",
"Settings.webhooks.singular": "webhook",
"Settings.webhooks.title": "વેબહુક્સ",
"Settings.webhooks.to.delete": "{webhooksToDeleteLength, બહુવચન, એક {# સંપત્તિ} અન્ય {# સંપત્તિ}} પસંદ કરેલ",
"Settings.webhooks.trigger": "ટ્રિગર",
"Settings.webhooks.trigger.cancel": "ટ્રિગર રદ કરો",
"Settings.webhooks.trigger.pending": "બાકી…",
"Settings.webhooks.trigger.save": "કૃપા કરીને ટ્રિગર કરવા માટે સાચવો",
"Settings.webhooks.trigger.success": "સફળતા!",
"Settings.webhooks.trigger.success.label": "ટ્રિગર સફળ થયું",
"Settings.webhooks.trigger.test": "ટેસ્ટ-ટ્રિગર",
"Settings.webhooks.trigger.title": "ટ્રિગર પહેલા સાચવો",
"Settings.webhooks.value": "મૂલ્ય",
"Usecase.back-end": "બેક-એન્ડ ડેવલપર",
"Usecase.button.skip": "આ પ્રશ્ન છોડો",
"Usecase.content-creator": "સામગ્રી નિર્માતા",
"Usecase.front-end": "ફ્રન્ટ-એન્ડ ડેવલપર",
"Usecase.full-stack": "ફુલ-સ્ટેક ડેવલપર",
"usecase.input.work-type": "તમે કયા પ્રકારનું કામ કરો છો?",
"usecase.notification.success.project-created": "પ્રોજેક્ટ સફળતાપૂર્વક બનાવવામાં આવ્યો છે",
"Usecase.other": "અન્ય",
"Usecase.title": "તમારા વિશે અમને થોડું વધુ કહો",
"વપરાશકર્તા નામ": "વપરાશકર્તા નામ",
"વપરાશકર્તાઓ": "વપરાશકર્તાઓ",
"વપરાશકર્તાઓ અને પરવાનગીઓ": "વપરાશકર્તાઓ અને પરવાનગીઓ",
"Users.components.List.empty": "ત્યાં કોઈ વપરાશકર્તાઓ નથી...",
"Users.components.List.empty.withFilters": "લાગુ કરેલ ફિલ્ટર્સ સાથે કોઈ વપરાશકર્તા નથી...",
"Users.components.List.empty.withSearch": "શોધને અનુરૂપ કોઈ વપરાશકર્તાઓ નથી ({search})...",
"admin.pages.MarketPlacePage.helmet": "માર્કેટપ્લેસ - પ્લગઇન્સ",
"admin.pages.MarketPlacePage.offline.title": "તમે ઑફલાઇન છો",
"admin.pages.MarketPlacePage.offline.subtitle": "સ્ટ્રેપી માર્કેટને ઍક્સેસ કરવા માટે તમારે ઇન્ટરનેટ સાથે કનેક્ટેડ હોવું જરૂરી છે.",
"admin.pages.MarketPlacePage.plugin.copy": "ઇન્સ્ટોલ આદેશની નકલ કરો",
"admin.pages.MarketPlacePage.plugin.copy.success": "તમારા ટર્મિનલમાં પેસ્ટ કરવા માટે તૈયાર આદેશ ઇન્સ્ટોલ કરો",
"admin.pages.MarketPlacePage.plugin.info": "વધુ જાણો",
"admin.pages.MarketPlacePage.plugin.info.label": "{pluginName} વિશે વધુ જાણો",
"admin.pages.MarketPlacePage.plugin.info.text": "વધુ જાણો",
"admin.pages.MarketPlacePage.plugin.installed": "ઇન્સ્ટોલ કરેલ",
"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi": "સ્ટ્રેપી દ્વારા બનાવેલ",
"admin.pages.MarketPlacePage.plugin.tooltip.verified": "સ્ટ્રેપી દ્વારા ચકાસાયેલ પ્લગઇન",
"admin.pages.MarketPlacePage.search.clear": "પ્લગઇન શોધ સાફ કરો",
"admin.pages.MarketPlacePage.search.empty": "\"{target}\" માટે કોઈ પરિણામ નથી",
"admin.pages.MarketPlacePage.search.placeholder": "પ્લગઇન માટે શોધો",
"admin.pages.MarketPlacePage.submit.plugin.link": "તમારું પ્લગઇન સબમિટ કરો",
"admin.pages.MarketPlacePage.subtitle": "સ્ટ્રેપીમાંથી વધુ મેળવો",
"admin.pages.MarketPlacePage.missingPlugin.title": "પ્લગઇન ખૂટે છે?",
"admin.pages.MarketPlacePage.missingPlugin.description": "તમે કયું પ્લગઇન શોધી રહ્યાં છો તે અમને કહો અને અમે અમારા સમુદાય પ્લગઇન ડેવલપર્સને જણાવીશું કે તેઓ પ્રેરણાની શોધમાં હોય તો!",
"anErrorOccurred": "ઉફ્ફ! કંઈક ખોટું થયું. કૃપા કરીને, ફરી પ્રયાસ કરો.",
"app.component.CopyToClipboard.label": "ક્લિપબોર્ડ પર કૉપિ કરો",
"app.component.search.label": "{target} માટે શોધો",
"app.component.table.duplicate": "ડુપ્લિકેટ {target}",
"app.component.table.edit": "સંપાદિત કરો {target}",
"app.component.table.select.one-entry": "{target} પસંદ કરો",
"app.components.BlockLink.blog": "બ્લોગ",
"app.components.BlockLink.blog.content": "સ્ટ્રેપી અને ઇકોસિસ્ટમ વિશે નવીનતમ સમાચાર વાંચો.",
"app.components.BlockLink.code": "કોડ ઉદાહરણો",
"app.components.BlockLink.code.content": "સમુદાય દ્વારા વિકસિત વાસ્તવિક પ્રોજેક્ટ્સનું પરીક્ષણ કરીને શીખો.",
"app.components.BlockLink.documentation.content": "આવશ્યક ખ્યાલો, માર્ગદર્શિકાઓ અને સૂચનાઓ શોધો.",
"app.components.BlockLink.tutorial": "ટ્યુટોરિયલ્સ",
"app.components.BlockLink.tutorial.content": "સ્ટ્રેપીનો ઉપયોગ કરવા અને કસ્ટમાઇઝ કરવા માટે પગલું-દર-પગલાં સૂચનોને અનુસરો.",
"app.components.Button.cancel": "રદ કરો",
"app.components.Button.confirm": "પુષ્ટિ કરો",
"app.components.Button.reset": "રીસેટ કરો",
"app.components.ComingSoonPage.comingSoon": "ટૂંક સમયમાં આવી રહ્યું છે",
"app.components.ConfirmDialog.title": "પુષ્ટિ",
"app.components.DownloadInfo.download": "ડાઉનલોડ ચાલુ છે...",
"app.components.DownloadInfo.text": "આમાં એક મિનિટ લાગી શકે છે. તમારી ધીરજ બદલ આભાર.",
"app.components.EmptyAttributes.title": "હજી સુધી કોઈ ફીલ્ડ નથી",
"app.components.EmptyStateLayout.content-document": "કોઈ સામગ્રી મળી નથી",
"app.components.EmptyStateLayout.content-permissions": "તમારી પાસે તે સામગ્રીને ઍક્સેસ કરવાની પરવાનગીઓ નથી",
"app.components.GuidedTour.CM.create.content": "<p>અહીં કન્ટેન્ટ મેનેજરમાં તમામ કન્ટેન્ટ બનાવો અને મેનેજ કરો.</p><p>ઉદા.: બ્લોગ વેબસાઈટના ઉદાહરણને આગળ લઈએ તો, કોઈ એક લખી શકે છે. તેમને ગમે તે રીતે લેખ, સાચવો અને પ્રકાશિત કરો.</p><p>💡 ઝડપી ટીપ - તમે જે સામગ્રી બનાવો છો તેના પર પ્રકાશિત કરવાનું ભૂલશો નહીં.</p>",
"app.components.GuidedTour.CM.create.title": "⚡️ સામગ્રી બનાવો",
"app.components.GuidedTour.CM.success.content": "<p>અદ્ભુત, જવા માટેનું એક છેલ્લું પગલું!</p><b>🚀 ક્રિયામાં સામગ્રી જુઓ</b>",
"app.components.GuidedTour.CM.success.cta.title": "API નું પરીક્ષણ કરો",
"app.components.GuidedTour.CM.success.title": "પગલું 2: પૂર્ણ ✅",
"app.components.GuidedTour.CTB.create.content": "<p>સંગ્રહના પ્રકારો તમને ઘણી એન્ટ્રીઓનું સંચાલન કરવામાં મદદ કરે છે, સિંગલ પ્રકારો માત્ર એક જ એન્ટ્રીને મેનેજ કરવા માટે યોગ્ય છે.</p> <p>ઉદા.: બ્લોગ વેબસાઇટ માટે, લેખો એક સંગ્રહ પ્રકાર હશે જ્યારે હોમપેજ એક પ્રકારનું હશે.</p>",
"app.components.GuidedTour.CTB.create.cta.title": "સંગ્રહ પ્રકાર બનાવો",
"app.components.GuidedTour.CTB.create.title": "🧠 પ્રથમ કલેક્શન પ્રકાર બનાવો",
"app.components.GuidedTour.CTB.success.content": "<p>સારું ચાલી રહ્યું છે!</p><b>⚡️ તમે વિશ્વ સાથે શું શેર કરવા માંગો છો?</b>",
"app.components.GuidedTour.CTB.success.title": "પગલું 1: પૂર્ણ ✅",
"app.components.GuidedTour.apiTokens.create.content": "<p>અહીં એક પ્રમાણીકરણ ટોકન જનરેટ કરો અને તમે હમણાં જ બનાવેલ સામગ્રી પુનઃપ્રાપ્ત કરો.</p>",
"app.components.GuidedTour.apiTokens.create.cta.title": "એક API ટોકન બનાવો",
"app.components.GuidedTour.apiTokens.create.title": "🚀 ક્રિયામાં સામગ્રી જુઓ",
"app.components.GuidedTour.apiTokens.success.content": "<p>એક HTTP વિનંતી કરીને સામગ્રીને ક્રિયામાં જુઓ:</p><ul><li><p>આ URL પર: <light>https: //'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>હેડર સાથે: <light>અધિકૃતતા: વાહક '<' YOUR_API_TOKEN'>'</light></p></li></ul><p>સામગ્રી સાથે ક્રિયાપ્રતિક્રિયા કરવાની વધુ રીતો માટે, <documentationLink>દસ્તાવેજીકરણ</documentationLink> જુઓ.</p>",
"app.components.GuidedTour.apiTokens.success.cta.title": "હોમપેજ પર પાછા જાઓ",
"app.components.GuidedTour.apiTokens.success.title": "પગલું 3: પૂર્ણ ✅",
"app.components.GuidedTour.create-content": "સામગ્રી બનાવો",
"app.components.GuidedTour.home.CM.title": "⚡️ તમે વિશ્વ સાથે શું શેર કરવા માંગો છો?",
"app.components.GuidedTour.home.CTB.cta.title": "સામગ્રી પ્રકાર બિલ્ડર પર જાઓ",
"app.components.GuidedTour.home.CTB.title": "🧠 સામગ્રી માળખું બનાવો",
"app.components.GuidedTour.home.apiTokens.cta.title": "API નું પરીક્ષણ કરો",
"app.components.GuidedTour.skip": "ટૂર છોડો",
"app.components.GuidedTour.title": "પ્રારંભ કરવા માટે 3 પગલાં",
"app.components.HomePage.button.blog": "બ્લોગ પર વધુ જુઓ",
"app.components.HomePage.community": "સમુદાયમાં જોડાઓ",
"app.components.HomePage.community.content": "વિવિધ ચેનલો પર ટીમના સભ્યો, યોગદાનકર્તાઓ અને વિકાસકર્તાઓ સાથે ચર્ચા કરો.",
"app.components.HomePage.create": "તમારો પ્રથમ સામગ્રી પ્રકાર બનાવો",
"app.components.HomePage.roadmap": "અમારો રોડમેપ જુઓ",
"app.components.HomePage.welcome": "બોર્ડ પર આપનું સ્વાગત છે 👋",
"app.components.HomePage.welcome.again": "સ્વાગત છે 👋",
"app.components.HomePage.welcomeBlock.content": "અભિનંદન! તમે પ્રથમ એડમિનિસ્ટ્રેટર તરીકે લૉગ ઇન થયા છો. સ્ટ્રેપી દ્વારા પ્રદાન કરવામાં આવેલ શક્તિશાળી સુવિધાઓ શોધવા માટે, અમે તમને તમારો પ્રથમ સામગ્રી પ્રકાર બનાવવાની ભલામણ કરીએ છીએ!",
"app.components.HomePage.welcomeBlock.content.again": "અમને આશા છે કે તમે તમારા પ્રોજેક્ટમાં પ્રગતિ કરી રહ્યાં છો! સ્ટ્રેપી વિશેના નવીનતમ સમાચાર વાંચવા માટે નિઃસંકોચ. અમે તમારા પ્રતિસાદના આધારે ઉત્પાદનને સુધારવા માટે અમારા શ્રેષ્ઠ પ્રયાસો આપી રહ્યા છીએ." ,
"app.components.HomePage.welcomeBlock.content.issues": "સમસ્યાઓ.",
"app.components.HomePage.welcomeBlock.content.raise": "અથવા વધારો",
"app.components.ImgPreview.hint": "તમારી ફાઇલને આ વિસ્તારમાં ખેંચો અને છોડો અથવા ફાઇલ અપલોડ કરવા માટે {બ્રાઉઝ કરો",
"app.components.ImgPreview.hint.browse": "બ્રાઉઝ કરો",
"app.components.InputFile.newFile": "નવી ફાઇલ ઉમેરો",
"app.components.InputFileDetails.open": "નવી ટેબમાં ખોલો",
"app.components.InputFileDetails.originalName": "મૂળ નામ:",
"app.components.InputFileDetails.remove": "આ ફાઇલને દૂર કરો",
"app.components.InputFileDetails.size": "કદ:",
"app.components.InstallPluginPage.Download.description": "પ્લગઇનને ડાઉનલોડ અને ઇન્સ્ટોલ કરવામાં થોડીક સેકન્ડ લાગી શકે છે.",
"app.components.InstallPluginPage.Download.title": "ડાઉનલોડ કરી રહ્યું છે...",
"app.components.InstallPluginPage.description": "તમારી એપ્લિકેશનને વિના પ્રયાસે વિસ્તૃત કરો.",
"app.components.LeftMenu.collapse": "નવબારને સંકુચિત કરો",
"app.components.LeftMenu.expand": "નવબાર વિસ્તૃત કરો",
"app.components.LeftMenu.logout": "લોગઆઉટ",
"app.components.LeftMenu.navbrand.title": "સ્ટ્રેપી ડેશબોર્ડ",
"app.components.LeftMenu.navbrand.workplace": "કાર્યસ્થળ",
"app.components.LeftMenuFooter.help": "સહાય",
"app.components.LeftMenuFooter.poweredBy": "દ્વારા સંચાલિત",
"app.components.LeftMenuLinkContainer.collectionTypes": "સંગ્રહના પ્રકાર",
"app.components.LeftMenuLinkContainer.configuration": "રૂપરેખાંકનો",
"app.components.LeftMenuLinkContainer.general": "સામાન્ય",
"app.components.LeftMenuLinkContainer.noPluginsInstalled": "હજુ સુધી કોઈ પ્લગઈન્સ ઇન્સ્ટોલ કરેલ નથી",
"app.components.LeftMenuLinkContainer.plugins": "પ્લગઇન્સ",
"app.components.LeftMenuLinkContainer.singleTypes": "એક પ્રકાર",
"app.components.ListPluginsPage.deletePlugin.description": "પ્લગઇનને અનઇન્સ્ટોલ કરવામાં થોડીક સેકન્ડ લાગી શકે છે.",
"app.components.ListPluginsPage.deletePlugin.title": "અનઇન્સ્ટોલ કરી રહ્યું છે",
"app.components.ListPluginsPage.description": "પ્રોજેક્ટમાં ઇન્સ્ટોલ કરેલ પ્લગિન્સની સૂચિ.",
"app.components.ListPluginsPage.helmet.title": "પ્લગઇન્સની સૂચિ બનાવો",
"app.components.Logout.logout": "લોગઆઉટ",
"app.components.Logout.profile": "પ્રોફાઇલ",
"app.components.MarketplaceBanner": "સમુદાય દ્વારા બનાવવામાં આવેલ પ્લગઇન્સ અને તમારા પ્રોજેક્ટને કિકસ્ટાર્ટ કરવા માટે ઘણી વધુ અદ્ભુત વસ્તુઓ, Strapi Awesome પર શોધો.",
"app.components.MarketplaceBanner.image.alt": "એક સ્ટ્રેપી રોકેટ લોગો",
"app.components.MarketplaceBanner.link": "હમણાં જ તપાસો",
"app.components.NotFoundPage.back": "હોમપેજ પર પાછા",
"app.components.NotFoundPage.description": "મળ્યું નથી",
"app.components.Official": "સત્તાવાર",
"app.components.Onboarding.help.button": "સહાય બટન",
"app.components.Onboarding.label.completed": "% પૂર્ણ",
"app.components.Onboarding.title": "પ્રારંભ કરો વિડિઓઝ",
"app.components.PluginCard.Button.label.download": "ડાઉનલોડ કરો",
"app.components.PluginCard.Button.label.install": "પહેલેથી જ ઇન્સ્ટોલ કરેલ છે",
"app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed": "ઓટોરીલોડ સુવિધાને સક્ષમ કરવાની જરૂર છે. કૃપા કરીને તમારી એપ્લિકેશનને `યાર્ન ડેવલપ` સાથે પ્રારંભ કરો.",
"app.components.PluginCard.PopUpWarning.install.impossible.confirm": "હું સમજું છું!",
"app.components.PluginCard.PopUpWarning.install.impossible.environment": "સુરક્ષા કારણોસર, પ્લગઇન ફક્ત વિકાસ વાતાવરણમાં જ ડાઉનલોડ કરી શકાય છે.",
"app.components.PluginCard.PopUpWarning.install.impossible.title": "ડાઉનલોડ કરવું અશક્ય છે",
"app.components.PluginCard.compatible": "તમારી એપ્લિકેશન સાથે સુસંગત",
"app.components.PluginCard.compatibleCommunity": "સમુદાય સાથે સુસંગત",
"app.components.PluginCard.more-details": "વધુ વિગતો",
"app.components.ToggleCheckbox.off-label": "ખોટું",
"app.components.ToggleCheckbox.on-label": "True",
"app.components.UpgradePlanModal.button": "વધુ જાણો",
"app.components.UpgradePlanModal.limit-reached": "તમે મર્યાદા પર પહોંચી ગયા છો",
"app.components.UpgradePlanModal.text-ce": "સમુદાય આવૃત્તિ",
"app.components.UpgradePlanModal.text-ee": "એન્ટરપ્રાઇઝ એડિશન",
"app.components.UpgradePlanModal.text-power": "તમારા પ્લાનને એન્ટરપ્રાઇઝ એડિશનમાં અપગ્રેડ કરીને સ્ટ્રેપીની સંપૂર્ણ શક્તિને અનલોક કરો",
"app.components.UpgradePlanModal.text-strapi": "તમારી યોજનાને અપગ્રેડ કરીને સ્ટ્રેપીનું",
"app.components.Users.MagicLink.connect": "આ વપરાશકર્તાને ઍક્સેસ આપવા માટે આ લિંક કૉપિ કરો અને શેર કરો",
"app.components.Users.MagicLink.connect.sso": "વપરાશકર્તાને આ લિંક મોકલો, પ્રથમ લૉગિન SSO પ્રદાતા દ્વારા કરી શકાય છે",
"app.components.Users.ModalCreateBody.block-title.details": "વપરાશકર્તા વિગતો",
"app.components.Users.ModalCreateBody.block-title.roles": "વપરાશકર્તાની ભૂમિકા",
"app.components.Users.ModalCreateBody.block-title.roles.description": "વપરાશકર્તા એક અથવા અનેક ભૂમિકાઓ ધરાવી શકે છે",
"app.components.Users.SortPicker.button-label": "આ પ્રમાણે સૉર્ટ કરો",
"app.components.Users.SortPicker.sortby.email_asc": "ઇમેઇલ (A થી Z)",
"app.components.Users.SortPicker.sortby.email_desc": "ઈમેલ (Z થી A)",
"app.components.Users.SortPicker.sortby.firstname_asc": "પ્રથમ નામ (A થી Z)",
"app.components.Users.SortPicker.sortby.firstname_desc": "પ્રથમ નામ (Z થી A)",
"app.components.Users.SortPicker.sortby.lastname_asc": "છેલ્લું નામ (A થી Z)",
"app.components.Users.SortPicker.sortby.lastname_desc": "છેલ્લું નામ (Z થી A)",
"app.components.Users.SortPicker.sortby.username_asc": "વપરાશકર્તા નામ (A થી Z)",
"app.components.Users.SortPicker.sortby.username_desc": "વપરાશકર્તા નામ (Z થી A)",
"app.components.listPlugins.button": "નવું પ્લગઇન ઉમેરો",
"app.components.listPlugins.title.none": "કોઈ પ્લગઈન્સ ઇન્સ્ટોલ કરેલ નથી",
"app.components.listPluginsPage.deletePlugin.error": "પ્લગઇનને અનઇન્સ્ટોલ કરતી વખતે ભૂલ આવી",
"app.containers.App.notification.error.init": "એપીઆઈની વિનંતી કરતી વખતે ભૂલ આવી",
"app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin": "જો તમને આ લિંક પ્રાપ્ત ન થાય, તો કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો.",
"app.containers.AuthPage.ForgotPasswordSuccess.text.email": "તમારી પાસવર્ડ પુનઃપ્રાપ્તિ લિંક પ્રાપ્ત કરવામાં થોડી મિનિટો લાગી શકે છે.",
"app.containers.AuthPage.ForgotPasswordSuccess.title": "ઈમેલ મોકલ્યો",
"app.containers.Users.EditPage.form.active.label": "સક્રિય",
"app.containers.Users.EditPage.header.label": "{name} સંપાદિત કરો",
"app.containers.Users.EditPage.header.label-loading": "વપરાશકર્તા સંપાદિત કરો",
"app.containers.Users.EditPage.roles-bloc-title": "એટ્રિબ્યુટેડ ભૂમિકાઓ",
"app.containers.Users.ModalForm.footer.button-success": "વપરાશકર્તાને આમંત્રિત કરો",
"app.links.configure-view": "દૃશ્યને ગોઠવો",
"app.page.not.found": "અરેરે! તમે જે પૃષ્ઠ શોધી રહ્યાં છો તે અમે શોધી શકતા નથી...",
"app.static.links.cheatsheet": "ચીટશીટ",
"app.utils.SelectOption.defaultMessage": " ",
"app.utils.add-filter": "ફિલ્ટર ઉમેરો",
"app.utils.close-label": "બંધ કરો",
"app.utils.defaultMessage": " ",
"app.utils.duplicate": "ડુપ્લિકેટ",
"app.utils.edit": "સંપાદિત કરો",
"app.utils.errors.file-too-big.message": "ફાઇલ ખૂબ મોટી છે",
"app.utils.filter-value": "ફિલ્ટર મૂલ્ય",
"app.utils.filters": "ફિલ્ટર્સ",
"app.utils.notify.data-loaded": "{target} લોડ થઈ ગયું છે",
"app.utils.placeholder.defaultMessage": " ",
"app.utils.publish": "પ્રકાશિત કરો",
"app.utils.select-all": "બધા પસંદ કરો",
"app.utils.select-field": "ક્ષેત્ર પસંદ કરો",
"app.utils.select-filter": "ફિલ્ટર પસંદ કરો",
"app.utils.unpublish": "અપ્રકાશિત કરો",
"clearLabel": "સાફ કરો",
"coming.soon": "આ સામગ્રી હાલમાં નિર્માણાધીન છે અને થોડા અઠવાડિયામાં પાછી આવશે!",
"component.Input.error.validation.integer": "મૂલ્ય પૂર્ણાંક હોવું આવશ્યક છે",
"components.AutoReloadBlocker.description": "નીચેના આદેશોમાંથી એક સાથે સ્ટ્રેપી ચલાવો:",
"components.AutoReloadBlocker.header": "આ પ્લગઇન માટે રીલોડ સુવિધા જરૂરી છે.",
"components.ErrorBoundary.title": "કંઈક ખોટું થયું...",
"components.FilterOptions.FILTER_TYPES.$contains": "સમાવે છે (કેસ સેન્સિટિવ)",
"components.FilterOptions.FILTER_TYPES.$endsWith": "આની સાથે સમાપ્ત થાય છે",
"components.FilterOptions.FILTER_TYPES.$eq": "છે",
"components.FilterOptions.FILTER_TYPES.$gt": "આના કરતા વધારે છે",
"components.FilterOptions.FILTER_TYPES.$gte": "તેના કરતા વધારે અથવા બરાબર છે",
"components.FilterOptions.FILTER_TYPES.$lt": "આના કરતા ઓછું છે",
"components.FilterOptions.FILTER_TYPES.$lte": "તેના કરતા ઓછું અથવા બરાબર છે",
"components.FilterOptions.FILTER_TYPES.$ne": "નથી",
"components.FilterOptions.FILTER_TYPES.$notContains": "સમાવતું નથી (કેસ સેન્સિટિવ)",
"components.FilterOptions.FILTER_TYPES.$notNull": "નલ નથી",
"components.FilterOptions.FILTER_TYPES.$null": "નલ છે",
"components.FilterOptions.FILTER_TYPES.$startsWith": "આનાથી શરૂ થાય છે",
"components.Input.error.attribute.key.taken": "આ મૂલ્ય પહેલાથી જ અસ્તિત્વમાં છે",
"components.Input.error.attribute.sameKeyAndName": "સમાન ન હોઈ શકે",
"components.Input.error.attribute.taken": "આ ક્ષેત્રનું નામ પહેલેથી જ અસ્તિત્વમાં છે",
"components.Input.error.contain.lowercase": "પાસવર્ડમાં ઓછામાં ઓછો એક લોઅરકેસ અક્ષર હોવો જોઈએ",
"components.Input.error.contain.number": "પાસવર્ડમાં ઓછામાં ઓછો એક નંબર હોવો જોઈએ",
"components.Input.error.contain.uppercase": "પાસવર્ડમાં ઓછામાં ઓછો એક અપરકેસ અક્ષર હોવો જોઈએ",
"components.Input.error.contentTypeName.taken": "આ નામ પહેલેથી જ અસ્તિત્વમાં છે",
"components.Input.error.custom-error": "{errorMessage}",
"components.Input.error.password.noMatch": "પાસવર્ડ મેળ ખાતા નથી",
"components.Input.error.validation.email": "આ અમાન્ય ઈમેલ છે",
"components.Input.error.validation.json": "આ JSON ફોર્મેટ સાથે મેળ ખાતું નથી",
"components.Input.error.validation.lowercase": "મૂલ્ય લોઅરકેસ સ્ટ્રિંગ હોવી જોઈએ",
"components.Input.error.validation.max": "મૂલ્ય ખૂબ વધારે છે.",
"components.Input.error.validation.maxLength": "મૂલ્ય ખૂબ લાંબુ છે.",
"components.Input.error.validation.min": "મૂલ્ય ખૂબ ઓછું છે.",
"components.Input.error.validation.minLength": "મૂલ્ય ખૂબ ટૂંકું છે.",
"components.Input.error.validation.minSupMax": "બહેતર ન હોઈ શકે",
"components.Input.error.validation.regex": "મૂલ્ય રેગેક્સ સાથે મેળ ખાતું નથી.",
"components.Input.error.validation.required": "આ મૂલ્ય જરૂરી છે.",
"components.Input.error.validation.unique": "આ મૂલ્ય પહેલેથી જ વપરાયેલ છે.",
"components.InputSelect.option.placeholder": "અહીં પસંદ કરો",
"components.ListRow.empty": "બતાવવા માટે કોઈ ડેટા નથી.",
"components.NotAllowedInput.text": "આ ક્ષેત્ર જોવા માટે કોઈ પરવાનગી નથી",
"components.OverlayBlocker.description": "તમે એવી સુવિધાનો ઉપયોગ કરી રહ્યાં છો કે જેને સર્વર પુનઃપ્રારંભ કરવાની જરૂર છે. કૃપા કરીને સર્વર ચાલુ થાય ત્યાં સુધી રાહ જુઓ.",
"components.OverlayBlocker.description.serverError": "સર્વર પુનઃપ્રારંભ થયેલ હોવું જોઈએ, કૃપા કરીને ટર્મિનલમાં તમારા લોગ તપાસો.",
"components.OverlayBlocker.title": "પુનઃશરૂ થવાની રાહ જોઈ રહ્યાં છીએ...",
"components.OverlayBlocker.title.serverError": "પુનઃપ્રારંભમાં અપેક્ષા કરતા વધુ સમય લાગી રહ્યો છે",
"components.PageFooter.select": "પ્રતિ પાનાની એન્ટ્રી",
"components.ProductionBlocker.description": "સુરક્ષા હેતુઓ માટે અમારે અન્ય વાતાવરણમાં આ પ્લગઈનને અક્ષમ કરવું પડશે.",
"components.ProductionBlocker.header": "આ પ્લગઇન ફક્ત વિકાસમાં જ ઉપલબ્ધ છે.",
"components.Search.placeholder": "શોધો...",
"components.TableHeader.sort": "{label} પર સૉર્ટ કરો",
"components.Wysiwyg.ToggleMode.markdown-mode": "માર્કડાઉન મોડ",
"components.Wysiwyg.ToggleMode.preview-mode": "પૂર્વાવલોકન મોડ",
"components.Wysiwyg.collapse": "સંકુચિત કરો",
"components.Wysiwyg.selectOptions.H1": "શીર્ષક H1",
"components.Wysiwyg.selectOptions.H2": "શીર્ષક H2",
"components.Wysiwyg.selectOptions.H3": "શીર્ષક H3",
"components.Wysiwyg.selectOptions.H4": "શીર્ષક H4",
"components.Wysiwyg.selectOptions.H5": "શીર્ષક H5",
"components.Wysiwyg.selectOptions.H6": "શીર્ષક H6",
"components.Wysiwyg.selectOptions.title": "શીર્ષક ઉમેરો",
"components.WysiwygBottomControls.charactersIndicators": "અક્ષરો",
"components.WysiwygBottomControls.fullscreen": "વિસ્તૃત કરો",
"components.WysiwygBottomControls.uploadFiles": "ફાઈલોને ખેંચો અને છોડો, ક્લિપબોર્ડમાંથી પેસ્ટ કરો અથવા {બ્રાઉઝ કરો}.",
"components.WysiwygBottomControls.uploadFiles.browse": "તેમને પસંદ કરો",
"components.pagination.go-to": "પૃષ્ઠ {page} પર જાઓ",
"components.pagination.go-to-next": "આગલા પૃષ્ઠ પર જાઓ",
"components.pagination.go-to-previous": "પાછલા પૃષ્ઠ પર જાઓ",
"components.pagination.remaining-links": "અને {નંબર} અન્ય લિંક્સ",
"components.popUpWarning.button.cancel": "ના, રદ કરો",
"components.popUpWarning.button.confirm": "હા, પુષ્ટિ કરો",
"components.popUpWarning.message": "શું તમે ખરેખર આને કાઢી નાખવા માંગો છો?",
"components.popUpWarning.title": "કૃપા કરીને પુષ્ટિ કરો",
"content-manager.App.schemas.data-loaded": "સ્કીમા સફળતાપૂર્વક લોડ કરવામાં આવી છે",
"content-manager.DynamicTable.relation-loaded": "સંબંધો લોડ કરવામાં આવ્યા છે",
"content-manager.DynamicTable.relation-loading": "સંબંધો લોડ થઈ રહ્યા છે",
"content-manager.DynamicTable.relation-more": "આ સંબંધમાં પ્રદર્શિત કરતાં વધુ એકમો છે",
"content-manager.EditRelations.title": "રિલેશનલ ડેટા",
"content-manager.HeaderLayout.button.label-add-entry": "નવી એન્ટ્રી બનાવો",
"content-manager.api.id": "API ID",
"content-manager.components.AddFilterCTA.add": "ફિલ્ટર્સ",
"content-manager.components.AddFilterCTA.hide": "ફિલ્ટર્સ",
"content-manager.components.DragHandle-label": "ખેંચો",
"content-manager.components.DraggableAttr.edit": "સંપાદિત કરવા માટે ક્લિક કરો",
"content-manager.components.DraggableCard.delete.field": "{item} કાઢી નાખો",
"content-manager.components.DraggableCard.edit.field": "{item} સંપાદિત કરો",
"content-manager.components.DraggableCard.move.field": "{item} ખસેડો",
"content-manager.components.DynamicTable.row-line": "આઇટમ લાઇન {નંબર}",
"content-manager.components.DynamicZone.ComponentPicker-label": "એક ઘટક પસંદ કરો",
"content-manager.components.DynamicZone.add-component": "{componentName} માં એક ઘટક ઉમેરો",
"content-manager.components.DynamicZone.delete-label": "{name} કાઢી નાખો",
"content-manager.components.DynamicZone.error-message": "ઘટકમાં ભૂલ(ઓ) છે",
"content-manager.components.DynamicZone.missing-components": "ત્યાં {સંખ્યા, બહુવચન, =0 {are # ખૂટે છે} એક {છે # ખૂટે છે} અન્ય {છે # ખૂટે છે}}",
"content-manager.components.DynamicZone.move-down-label": "ઘટકને નીચે ખસેડો",
"content-manager.components.DynamicZone.move-up-label": "ઘટક ઉપર ખસેડો",
"content-manager.components.DynamicZone.pick-compo": "એક ઘટક પસંદ કરો",
"content-manager.components.DynamicZone.required": "ઘટક જરૂરી છે",
"content-manager.components.EmptyAttributesBlock.button": "સેટિંગ પૃષ્ઠ પર જાઓ",
"content-manager.components.EmptyAttributesBlock.description": "તમે તમારી સેટિંગ્સ બદલી શકો છો",
"content-manager.components.FieldItem.linkToComponentLayout": "ઘટકનું લેઆઉટ સેટ કરો",
"content-manager.components.FieldSelect.label": "એક ક્ષેત્ર ઉમેરો",
"content-manager.components.FilterOptions.button.apply": "લાગુ કરો",
"content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply": "લાગુ કરો",
"content-manager.components.FiltersPickWrapper.PluginHeader.actions.clearAll": "બધુ સાફ કરો",
"content-manager.components.FiltersPickWrapper.PluginHeader.description": "એન્ટ્રીઓને ફિલ્ટર કરવા માટે લાગુ કરવા માટેની શરતો સેટ કરો",
"content-manager.components.FiltersPickWrapper.PluginHeader.title.filter": "ફિલ્ટર્સ",
"content-manager.components.FiltersPickWrapper.hide": "છુપાવો",
"content-manager.components.LeftMenu.Search.label": "સામગ્રી પ્રકાર માટે શોધો",
"content-manager.components.LeftMenu.collection-types": "સંગ્રહના પ્રકાર",
"content-manager.components.LeftMenu.single-types": "એક પ્રકાર",
"content-manager.components.LimitSelect.itemsPerPage": "પૃષ્ઠ દીઠ વસ્તુઓ",
"content-manager.components.NotAllowedInput.text": "આ ફીલ્ડ જોવા માટે કોઈ પરવાનગી નથી",
"content-manager.components.RepeatableComponent.error-message": "ઘટક(ઘટક)માં ભૂલ(ઓ) હોય છે",
"content-manager.components.Search.placeholder": "એક એન્ટ્રી માટે શોધો...",
"content-manager.components.Select.draft-info-title": "રાજ્ય: ડ્રાફ્ટ",
"content-manager.components.Select.publish-info-title": "રાજ્ય: પ્રકાશિત",
"content-manager.components.SettingsViewWrapper.pluginHeader.description.edit-settings": "સંપાદન દૃશ્ય કેવું દેખાશે તે કસ્ટમાઇઝ કરો.",
"content-manager.components.SettingsViewWrapper.pluginHeader.description.list-settings": "સૂચિ દૃશ્યની સેટિંગ્સ વ્યાખ્યાયિત કરો.",
"content-manager.components.SettingsViewWrapper.pluginHeader.title": "દૃશ્યને ગોઠવો - {name}",
"content-manager.components.TableDelete.delete": "બધુ કાઢી નાખો",
"content-manager.components.TableDelete.deleteSelected": "પસંદ કરેલ કાઢી નાખો",
"content-manager.components.TableDelete.label": "{સંખ્યા, બહુવચન, એક {# એન્ટ્રી} અન્ય {# એન્ટ્રી}} પસંદ કરેલ",
"content-manager.components.TableEmpty.withFilters": "લાગુ કરેલ ફિલ્ટર્સ સાથે કોઈ {contentType} નથી...",
"content-manager.components.TableEmpty.withSearch": "શોધને અનુરૂપ કોઈ {contentType} નથી ({search})...",
"content-manager.components.TableEmpty.withoutFilter": "ત્યાં કોઈ {contentType} નથી...",
"content-manager.components.empty-repeatable": "હજી સુધી કોઈ એન્ટ્રી નથી. એક ઉમેરવા માટે નીચેના બટન પર ક્લિક કરો.",
"content-manager.components.notification.info.maximum-requirement": "તમે પહેલેથી જ ફીલ્ડ્સની મહત્તમ સંખ્યા પર પહોંચી ગયા છો",
"content-manager.components.notification.info.minimum-requirement": "લઘુત્તમ જરૂરિયાતને મેચ કરવા માટે એક ક્ષેત્ર ઉમેરવામાં આવ્યું છે",
"content-manager.components.repeatable.reorder.error": "તમારા ઘટકના ક્ષેત્રને પુનઃક્રમાંકિત કરતી વખતે એક ભૂલ આવી, કૃપા કરીને ફરી પ્રયાસ કરો",
"content-manager.components.reset-entry": "પ્રવેશ ફરીથી સેટ કરો",
"content-manager.components.uid.apply": "લાગુ કરો",
"content-manager.components.uid.available": "ઉપલબ્ધ",
"content-manager.components.uid.regenerate": "પુનઃજનન કરો",
"content-manager.components.uid.suggested": "સૂચવેલ",
"content-manager.components.uid.unavailable": "અનુપલબ્ધ",
"content-manager.containers.Edit.Link.Layout": "લેઆઉટને ગોઠવો",
"content-manager.containers.Edit.Link.Model": "સંગ્રહ-પ્રકાર સંપાદિત કરો",
"content-manager.containers.Edit.addAnItem": "એક આઇટમ ઉમેરો...",
"content-manager.containers.Edit.clickToJump": "એન્ટ્રી પર જવા માટે ક્લિક કરો",
"content-manager.containers.Edit.delete": "કાઢી નાખો",
"content-manager.containers.Edit.delete-entry": "આ એન્ટ્રી કાઢી નાખો",
"content-manager.containers.Edit.editing": "સંપાદન...",
"content-manager.containers.Edit.information": "માહિતી",
"content-manager.containers.Edit.information.by": "દ્વારા",
"content-manager.containers.Edit.information.created": "બનાવ્યું",
"content-manager.containers.Edit.information.draftVersion": "ડ્રાફ્ટ વર્ઝન",
"content-manager.containers.Edit.information.editing": "સંપાદન",
"content-manager.containers.Edit.information.lastUpdate": "છેલ્લું અપડેટ",
"content-manager.containers.Edit.information.publishedVersion": "પ્રકાશિત સંસ્કરણ",
"content-manager.containers.Edit.pluginHeader.title.new": "એક એન્ટ્રી બનાવો",
"content-manager.containers.Edit.reset": "રીસેટ કરો",
"content-manager.containers.Edit.returnList": "સૂચિ પર પાછા ફરો",
"content-manager.containers.Edit.seeDetails": "વિગતો",
"content-manager.containers.Edit.submit": "સાચવો",
"content-manager.containers.EditSettingsView.modal-form.edit-field": "ક્ષેત્રમાં ફેરફાર કરો",
"content-manager.containers.EditView.add.new-entry": "એક એન્ટ્રી ઉમેરો",
"content-manager.containers.EditView.notification.errors": "ફોર્મમાં કેટલીક ભૂલો છે",
"content-manager.containers.Home.introduction": "તમારી એન્ટ્રીઓને સંપાદિત કરવા માટે ડાબા મેનુમાંની ચોક્કસ લિંક પર જાઓ. આ પ્લગઇન પાસે સેટિંગ્સને સંપાદિત કરવાની યોગ્ય રીત નથી અને તે હજુ પણ સક્રિય વિકાસ હેઠળ છે.",
"content-manager.containers.Home.pluginHeaderDescription": "એક શક્તિશાળી અને સુંદર ઇન્ટરફેસ દ્વારા તમારી એન્ટ્રીઓનું સંચાલન કરો.",
"content-manager.containers.Home.pluginHeaderTitle": "કન્ટેન્ટ મેનેજર",
"content-manager.containers.List.draft": "ડ્રાફ્ટ",
"content-manager.containers.List.errorFetchRecords": "ભૂલ",
"content-manager.containers.List.published": "પ્રકાશિત",
"content-manager.containers.ListPage.displayedFields": "પ્રદર્શિત ક્ષેત્રો",
"content-manager.containers.ListPage.items": "{સંખ્યા, બહુવચન, =0 {items} એક {item} અન્ય {items}}",
"content-manager.containers.ListPage.table-headers.published_at": "રાજ્ય",
"content-manager.containers.ListSettingsView.modal-form.edit-label": "{fieldName} સંપાદિત કરો",
"content-manager.containers.SettingPage.add.field": "બીજું ક્ષેત્ર દાખલ કરો",
"content-manager.containers.SettingPage.add.relational-field": "બીજું રિલેશનલ ફીલ્ડ દાખલ કરો",
"content-manager.containers.SettingPage.attributes": "એટ્રીબ્યુટ્સ ફીલ્ડ્સ",
"content-manager.containers.SettingPage.attributes.description": "લક્ષણોનો ક્રમ વ્યાખ્યાયિત કરો",
"content-manager.containers.SettingPage.editSettings.description": "લેઆઉટ બનાવવા માટે ફીલ્ડ્સને ખેંચો અને છોડો",
"content-manager.containers.SettingPage.editSettings.entry.title": "એન્ટ્રી શીર્ષક",
"content-manager.containers.SettingPage.editSettings.entry.title.description": "તમારી એન્ટ્રીનું પ્રદર્શિત ક્ષેત્ર સેટ કરો",
"content-manager.containers.SettingPage.editSettings.relation-field.description": "સંપાદન અને સૂચિ દૃશ્યો બંનેમાં પ્રદર્શિત ફીલ્ડ સેટ કરો",
"content-manager.containers.SettingPage.editSettings.title": "દૃશ્ય સંપાદિત કરો (સેટિંગ્સ)",
"content-manager.containers.SettingPage.layout": "લેઆઉટ",
"content-manager.containers.SettingPage.listSettings.description": "આ સંગ્રહ પ્રકાર માટે વિકલ્પો ગોઠવો",
"content-manager.containers.SettingPage.listSettings.title": "સૂચિ દૃશ્ય (સેટિંગ્સ)",
"content-manager.containers.SettingPage.pluginHeaderDescription": "આ સંગ્રહ પ્રકાર માટે ચોક્કસ સેટિંગ્સ ગોઠવો",
"content-manager.containers.SettingPage.relations": "સંબંધિત ક્ષેત્રો",
"content-manager.containers.SettingPage.settings": "સેટિંગ્સ",
"content-manager.containers.SettingPage.view": "જુઓ",
"content-manager.containers.SettingViewModel.pluginHeader.title": "કન્ટેન્ટ મેનેજર - {name}",
"content-manager.containers.SettingsPage.Block.contentType.description": "ચોક્કસ સેટિંગ્સને ગોઠવો",
"content-manager.containers.SettingsPage.Block.contentType.title": "સંગ્રહના પ્રકાર",
"content-manager.containers.SettingsPage.Block.generalSettings.description": "તમારા સંગ્રહના પ્રકારો માટે ડિફૉલ્ટ વિકલ્પોને ગોઠવો",
"content-manager.containers.SettingsPage.Block.generalSettings.title": "સામાન્ય",
"content-manager.containers.SettingsPage.pluginHeaderDescription": "તમારા તમામ સંગ્રહ પ્રકારો અને જૂથો માટે સેટિંગ્સ ગોઠવો",
"content-manager.containers.SettingsView.list.subtitle": "તમારા સંગ્રહ પ્રકારો અને જૂથોના લેઆઉટ અને પ્રદર્શનને ગોઠવો",
"content-manager.containers.SettingsView.list.title": "ડિસ્પ્લે રૂપરેખાંકનો",
"content-manager.edit-settings-view.link-to-ctb.components": "ઘટક સંપાદિત કરો",
"content-manager.edit-settings-view.link-to-ctb.content-types": "સામગ્રીનો પ્રકાર સંપાદિત કરો",
"content-manager.emptyAttributes.button": "સંગ્રહ પ્રકાર બિલ્ડર પર જાઓ",
"content-manager.emptyAttributes.description": "તમારા સંગ્રહ પ્રકારમાં તમારું પ્રથમ ક્ષેત્ર ઉમેરો",
"content-manager.emptyAttributes.title": "હજી સુધી કોઈ ફીલ્ડ નથી",
"content-manager.error.attribute.key.taken": "આ મૂલ્ય પહેલેથી જ અસ્તિત્વમાં છે",
"content-manager.error.attribute.sameKeyAndName": "સમાન ન હોઈ શકે",
"content-manager.error.attribute.taken": "આ ક્ષેત્રનું નામ પહેલેથી જ અસ્તિત્વમાં છે",
"content-manager.error.contentTypeName.taken": "આ નામ પહેલેથી જ અસ્તિત્વમાં છે",
"content-manager.error.model.fetch": "મૉડલ રૂપરેખા લાવવા દરમિયાન ભૂલ આવી છે.",
"content-manager.error.record.create": "રેકોર્ડ બનાવતી વખતે એક ભૂલ આવી.",
"content-manager.error.record.delete": "રેકોર્ડ કાઢી નાખતી વખતે એક ભૂલ આવી.",
"content-manager.error.record.fetch": "રેકોર્ડ લાવવા દરમિયાન ભૂલ આવી છે.",
"content-manager.error.record.update": "રેકોર્ડ અપડેટ દરમિયાન ભૂલ આવી છે.",
"content-manager.error.records.count": "ગણના રેકોર્ડ્સ લાવવા દરમિયાન ભૂલ આવી છે.",
"content-manager.error.records.fetch": "રેકોર્ડ લાવવા દરમિયાન ભૂલ આવી છે.",
"content-manager.error.schema.generation": "સ્કીમા બનાવતી વખતે ભૂલ આવી છે.",
"content-manager.error.validation.json": "આ JSON નથી",
"content-manager.error.validation.max": "મૂલ્ય ખૂબ વધારે છે.",
"content-manager.error.validation.maxLength": "મૂલ્ય ખૂબ લાંબુ છે.",
"content-manager.error.validation.min": "મૂલ્ય ખૂબ ઓછું છે.",
"content-manager.error.validation.minLength": "મૂલ્ય ખૂબ ટૂંકું છે.",
"content-manager.error.validation.minSupMax": "શ્રેષ્ઠ ન હોઈ શકે",
"content-manager.error.validation.regex": "મૂલ્ય રેગેક્સ સાથે મેળ ખાતું નથી.",
"content-manager.error.validation.required": "આ મૂલ્ય ઇનપુટ જરૂરી છે.",
"content-manager.form.Input.bulkActions": "બલ્ક ક્રિયાઓ સક્ષમ કરો",
"content-manager.form.Input.defaultSort": "ડિફોલ્ટ સૉર્ટ વિશેષતા",
"content-manager.form.Input.description": "વર્ણન",
"content-manager.form.Input.description.placeholder": "પ્રોફાઈલમાં નામ દર્શાવો",
"content-manager.form.Input.editable": "સંપાદનયોગ્ય ક્ષેત્ર",
"content-manager.form.Input.filters": "ફિલ્ટર્સ સક્ષમ કરો",
"content-manager.form.Input.label": "લેબલ",
"content-manager.form.Input.label.inputDescription": "આ મૂલ્ય ટેબલના હેડમાં પ્રદર્શિત લેબલને ઓવરરાઇડ કરે છે",
"content-manager.form.Input.pageEntries": "પ્રતિ પાનાની એન્ટ્રી",
"content-manager.form.Input.pageEntries.inputDescription": "નોંધ: તમે સંગ્રહ પ્રકાર સેટિંગ્સ પૃષ્ઠમાં આ મૂલ્યને ઓવરરાઇડ કરી શકો છો.",
"content-manager.form.Input.placeholder": "પ્લેસહોલ્ડર",
"content-manager.form.Input.placeholder.placeholder": "મારું અદ્ભુત મૂલ્ય",
"content-manager.form.Input.search": "શોધ સક્ષમ કરો",
"content-manager.form.Input.search.field": "આ ફીલ્ડ પર શોધ સક્ષમ કરો",
"content-manager.form.Input.sort.field": "આ ફીલ્ડ પર સૉર્ટ સક્ષમ કરો",
"content-manager.form.Input.sort.order": "ડિફોલ્ટ સૉર્ટ ઓર્ડર",
"content-manager.form.Input.wysiwyg": "WYSIWYG તરીકે દર્શાવો",
"content-manager.global.displayedFields": "પ્રદર્શિત ક્ષેત્રો",
"content-manager.groups": "જૂથો",
"content-manager.groups.numbered": "જૂથો ({number})",
"content-manager.header.name": "સામગ્રી",
"content-manager.link-to-ctb": "મોડેલ સંપાદિત કરો",
"content-manager.models": "સંગ્રહના પ્રકાર",
"content-manager.models.numbered": "સંગ્રહના પ્રકાર ({number})",
"content-manager.notification.error.displayedFields": "તમને ઓછામાં ઓછા એક પ્રદર્શિત ક્ષેત્રની જરૂર છે",
"content-manager.notification.error.relationship.fetch": "સંબંધ લાવવા દરમિયાન એક ભૂલ આવી છે.",
"content-manager.notification.info.SettingPage.disableSort": "તમારી પાસે અનુમતિ વર્ગીકરણ સાથે એક વિશેષતા હોવી જરૂરી છે",
"content-manager.notification.info.minimumFields": "તમારે ઓછામાં ઓછું એક ફીલ્ડ પ્રદર્શિત કરવું જરૂરી છે",
"content-manager.notification.upload.error": "તમારી ફાઇલો અપલોડ કરતી વખતે એક ભૂલ આવી છે",
"content-manager.pageNotFound": "પૃષ્ઠ મળ્યું નથી",
"content-manager.pages.ListView.header-subtitle": "{સંખ્યા, બહુવચન, =0 {# એન્ટ્રી} એક {# એન્ટ્રી} અન્ય {# એન્ટ્રી}} મળી",
"content-manager.pages.NoContentType.button": "તમારો પ્રથમ સામગ્રી-પ્રકાર બનાવો",
"content-manager.pages.NoContentType.text": "તમારી પાસે હજી સુધી કોઈ સામગ્રી નથી, અમે તમને તમારો પ્રથમ સામગ્રી-પ્રકાર બનાવવાની ભલામણ કરીએ છીએ.",
"content-manager.permissions.not-allowed.create": "તમને દસ્તાવેજ બનાવવાની મંજૂરી નથી",
"content-manager.permissions.not-allowed.update": "તમને આ દસ્તાવેજ જોવાની મંજૂરી નથી",
"content-manager.plugin.description.long": "તમારા ડેટાબેઝમાં ડેટા જોવા, સંપાદિત કરવા અને કાઢી નાખવાની ઝડપી રીત.",
"content-manager.plugin.description.short": "તમારા ડેટાબેઝમાં ડેટા જોવા, સંપાદિત કરવા અને કાઢી નાખવાની ઝડપી રીત.",
"content-manager.popUpWarning.bodyMessage.contentType.delete": "શું તમે ખરેખર આ એન્ટ્રી કાઢી નાખવા માંગો છો?",
"content-manager.popUpWarning.bodyMessage.contentType.delete.all": "શું તમે ખરેખર આ એન્ટ્રીઓ કાઢી નાખવા માંગો છો?",
"content-manager.popUpWarning.warning.cancelAllSettings": "શું તમે ખરેખર તમારા ફેરફારોને રદ કરવા માંગો છો?",
"content-manager.popUpWarning.warning.publish-question": "શું તમે હજુ પણ તેને પ્રકાશિત કરવા માંગો છો?",
"content-manager.popUpWarning.warning.unpublish": "અપ્રકાશિત આ સામગ્રી<br></br>તેને આપમેળે ડ્રાફ્ટમાં બદલશે.",
"content-manager.popUpWarning.warning.unpublish-question": "શું તમે ખરેખર તેને અપ્રકાશિત કરવા માંગો છો?",
"content-manager.popUpWarning.warning.updateAllSettings": "આ તમારી બધી સેટિંગ્સમાં ફેરફાર કરશે",
"content-manager.popUpwarning.warning.has-draft-relations.button-confirm": "હા, પ્રકાશિત કરો",
"content-manager.popUpwarning.warning.has-draft-relations.message": "<b>{ગણતરી, બહુવચન, =0 { તમારા સામગ્રી સંબંધોમાંથી એક { તમારા સામગ્રી સંબંધો છે} અન્ય { તમારા સામગ્રી સંબંધો છે}</b> હજુ સુધી પ્રકાશિત થયા નથી.<br></br>તે તમારા પ્રોજેક્ટમાં તૂટેલી લિંક્સ અને ભૂલો પેદા કરી શકે છે.",
"content-manager.popover.display-relations.label": "સંબંધો દર્શાવો",
"content-manager.success.record.delete": "કાઢી નાખેલ",
"content-manager.success.record.publish": "પ્રકાશિત",
"content-manager.success.record.save": "સાચવેલ",
"content-manager.success.record.unpublish": "અપ્રકાશિત",
"content-manager.utils.data-loaded": "{સંખ્યા, બહુવચન, =1 {એન્ટ્રી છે} અન્ય {એન્ટ્રીઝ છે}} સફળતાપૂર્વક લોડ કરવામાં આવી છે",
"content-manager.apiError. આ વિશેષતા અનન્ય હોવી જોઈએ": "{field} અનન્ય હોવી જોઈએ",
"form.button.continue": "ચાલુ રાખો",
"form.button.done": "થઈ ગયું",
"global.actions": "ક્રિયાઓ",
"global.back": "પાછળ",
"global.change-password": "પાસવર્ડ બદલો",
"global.content-manager": "કન્ટેન્ટ મેનેજર",
"global.continue": "ચાલુ રાખો",
"global.delete": "કાઢી નાખો",
"global.delete-target": "{target} કાઢી નાખો",
"global.description": "વર્ણન",
"global.details": "વિગતો",
"global.disabled": "અક્ષમ",
"global.documentation": "દસ્તાવેજીકરણ",
"global.enabled": "સક્ષમ",
"global.finish": "સમાપ્ત",
"global.marketplace": "માર્કેટપ્લેસ",
"global.name": "નામ",
"global.none": "કોઈ નહિ",
"global.password": "પાસવર્ડ",
"global.plugins": "પ્લગઇન્સ",
"global.profile": "પ્રોફાઇલ",
"global.prompt.unsaved": "શું તમે ખરેખર આ પૃષ્ઠ છોડવા માંગો છો? તમારા બધા ફેરફારો ખોવાઈ જશે",
"global.reset-password": "પાસવર્ડ રીસેટ કરો",
"global.roles": "ભૂમિકાઓ",
"global.save": "સાચવો",
"global.see-more": "વધુ જુઓ",
"global.select": "પસંદ કરો",
"global.select-all-entries": "બધી એન્ટ્રી પસંદ કરો",
"global.settings": "સેટિંગ્સ",
"global.type": "પ્રકાર",
"global.users": "વપરાશકર્તાઓ",
"notification.contentType.relations.conflict": "સામગ્રીના પ્રકારમાં વિરોધાભાસી સંબંધો છે",
"notification.default.title": "માહિતી:",
"notification.error": "એક ભૂલ આવી છે",
"notification.error.layout": "લેઆઉટ પુનઃપ્રાપ્ત કરી શકાયું નથી",
"notification.form.error.fields": "ફોર્મમાં કેટલીક ભૂલો છે",
"notification.form.success.fields": "ફેરફારો સાચવેલ",
"notification.link-copied": "લિંક ક્લિપબોર્ડમાં કોપી કરી છે",
"notification.permission.not-allowed-read": "તમને આ દસ્તાવેજ જોવાની મંજૂરી નથી",
"notification.success.delete": "આઇટમ કાઢી નાખવામાં આવી છે",
"notification.success.saved": "સાચવેલ",
"notification.success.title": "સફળતા:",
"notification.version.update.message": "સ્ટ્રેપીનું નવું સંસ્કરણ ઉપલબ્ધ છે!",
"notification.warning.title": "ચેતવણી:",
"અથવા": "અથવા",
"request.error.model.unknown": "આ મોડલ અસ્તિત્વમાં નથી",
"skipToContent": "સામગ્રી પર જાઓ",
"submit": "સબમિટ કરો"
}

View File

@ -7,12 +7,14 @@ const languageNativeNames = {
en: 'English',
es: 'Español',
fr: 'Français',
gu: 'Gujarati',
he: 'עברית',
hu: 'Magyar',
id: 'Indonesian',
it: 'Italiano',
ja: '日本語',
ko: '한국어',
ml: 'Malayalam',
ms: 'Melayu',
nl: 'Nederlands',
no: 'Norwegian',

View File

@ -0,0 +1,699 @@
{
"Analytics": "അനലിറ്റിക്സ്",
"Auth.components.Oops.text": "നിങ്ങളുടെ അക്കൗണ്ട് താൽക്കാലികമായി നിർത്തിവച്ചു.",
"Auth.components.Oops.text.admin": "ഇതൊരു തെറ്റാണെങ്കിൽ, നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.",
"Auth.components.Oops.title": "ശ്ശോ...",
"Auth.form.button.forgot-password": "ഇമെയിൽ അയയ്ക്കുക",
"Auth.form.button.go-home": "വീട്ടിലേക്ക് തിരിച്ച് പോവുക",
"Auth.form.button.login": "ലോഗിൻ",
"Auth.form.button.login.providers.error": "തിരഞ്ഞെടുത്ത ദാതാവിലൂടെ നിങ്ങളെ ബന്ധിപ്പിക്കാൻ ഞങ്ങൾക്ക് കഴിയില്ല.",
"Auth.form.button.login.strapi": "സ്ട്രാപ്പി വഴി ലോഗിൻ ചെയ്യുക",
"Auth.form.button.password-recovery": "പാസ്‌വേഡ് വീണ്ടെടുക്കൽ",
"Auth.form.button.register": "നമുക്ക് തുടങ്ങാം",
"Auth.form.confirmPassword.label": "സ്ഥിരീകരണ പാസ്‌വേഡ്",
"Auth.form.currentPassword.label": "ഇപ്പോഴത്തെ പാസ്സ്വേർഡ്",
"Auth.form.email.label": "ഇമെയിൽ",
"Auth.form.email.placeholder": "ഉദാ. kai@doe.com",
"Auth.form.error.blocked": "നിങ്ങളുടെ അക്കൗണ്ട് അഡ്‌മിനിസ്‌ട്രേറ്റർ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു.",
"Auth.form.error.code.provide": "തെറ്റായ കോഡ് നൽകിയിട്ടുണ്ട്.",
"Auth.form.error.confirmed": "നിങ്ങളുടെ അക്കൗണ്ട് ഇമെയിൽ സ്ഥിരീകരിച്ചിട്ടില്ല.",
"Auth.form.error.email.invalid": "ഈ ഇമെയിൽ അസാധുവാണ്.",
"Auth.form.error.email.provide": "ദയവായി നിങ്ങളുടെ ഉപയോക്തൃനാമം അല്ലെങ്കിൽ ഇമെയിൽ നൽകുക.",
"Auth.form.error.email.taken": "ഇമെയിൽ ഇതിനകം എടുത്തിട്ടുണ്ട്.",
"Auth.form.error.invalid": "ഐഡന്റിഫയർ അല്ലെങ്കിൽ പാസ്‌വേഡ് അസാധുവാണ്.",
"Auth.form.error.params.provide": "തെറ്റായ പാരാമുകൾ നൽകിയിരിക്കുന്നു.",
"Auth.form.error.password.format": "നിങ്ങളുടെ പാസ്‌വേഡിൽ മൂന്ന് തവണയിൽ കൂടുതൽ `$` ചിഹ്നം അടങ്ങിയിരിക്കരുത്.",
"Auth.form.error.password.local": "ഈ ഉപയോക്താവ് ഒരിക്കലും ഒരു പ്രാദേശിക പാസ്‌വേഡ് സജ്ജീകരിച്ചിട്ടില്ല, അക്കൗണ്ട് സൃഷ്‌ടിക്കുമ്പോൾ ഉപയോഗിക്കുന്ന ദാതാവ് വഴി ലോഗിൻ ചെയ്യുക.",
"Auth.form.error.password.matching": "പാസ്വേഡുകൾ പൊരുത്തപ്പെടുന്നില്ല.",
"Auth.form.error.password.provide": "ദയവായി നിങ്ങളുടെ പാസ്‌വേഡ് നൽകുക.",
"Auth.form.error.ratelimit": "വളരെയധികം ശ്രമങ്ങൾ, ഒരു മിനിറ്റിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക.",
"Auth.form.error.user.not-exist": "ഈ ഇമെയിൽ നിലവിലില്ല.",
"Auth.form.error.username.taken": "ഉപയോക്തൃനാമം ഇതിനകം എടുത്തതാണ്.",
"Auth.form.firstname.label": "പേരിന്റെ ആദ്യഭാഗം",
"Auth.form.firstname.placeholder": "ഉദാ. കൈ",
"Auth.form.forgot-password.email.label": "നിങ്ങളുടെ ഇമെയിൽ നൽകുക",
"Auth.form.forgot-password.email.label.success": "ഇമെയിൽ വിജയകരമായി അയച്ചു",
"Auth.form.lastname.label": "പേരിന്റെ അവസാന ഭാഗം",
"Auth.form.lastname.placeholder": "ഉദാ. ഡോ",
"Auth.form.password.hide-password": "രഹസ്യവാക്ക് മറയ്ക്കുക",
"Auth.form.password.hint": "കുറഞ്ഞത് 8 പ്രതീകങ്ങൾ, 1 വലിയക്ഷരം, 1 ചെറിയക്ഷരം, 1 നമ്പർ എന്നിവ ഉണ്ടായിരിക്കണം",
"Auth.form.password.show-password": "പാസ്‌വേഡ് കാണിക്കുക",
"Auth.form.register.news.label": "പുതിയ ഫീച്ചറുകളെക്കുറിച്ചും വരാനിരിക്കുന്ന മെച്ചപ്പെടുത്തലുകളെക്കുറിച്ചും എന്നെ അപ്ഡേറ്റ് ചെയ്യുക (ഇത് ചെയ്യുന്നതിലൂടെ നിങ്ങൾ {നിബന്ധനകളും} {നയവും} അംഗീകരിക്കുന്നു).",
"Auth.form.register.subtitle": "ക്രെഡൻഷ്യലുകൾ സ്ട്രാപിയിൽ ആധികാരികമാക്കാൻ മാത്രമേ ഉപയോഗിക്കൂ. സംരക്ഷിച്ച എല്ലാ ഡാറ്റയും നിങ്ങളുടെ ഡാറ്റാബേസിൽ സംഭരിക്കും.",
"Auth.form.rememberMe.label": "എന്നെ ഓർമ്മിക്കുക",
"Auth.form.username.label": "ഉപയോക്തൃനാമം",
"Auth.form.username.placeholder": "ഉദാ. കൈ_ഡോ",
"Auth.form.welcome.subtitle": "നിങ്ങളുടെ Strapi അക്കൗണ്ടിലേക്ക് ലോഗിൻ ചെയ്യുക",
"Auth.form.welcome.title": "സ്ട്രാപിയിലേക്ക് സ്വാഗതം!",
"Auth.link.forgot-password": "നിങ്ങളുടെ രഹസ്യ വാക്ക് മറന്നോ?",
"Auth.link.ready": "സൈൻ ഇൻ ചെയ്യാൻ തയ്യാറാണോ?",
"Auth.link.signin": "സൈൻ ഇൻ",
"Auth.link.signin.account": "ഇതിനകം ഒരു അക്കൗണ്ട് ഉണ്ടോ?",
"Auth.login.sso.divider": "അല്ലെങ്കിൽ ഇതിൽ ലോഗിൻ ചെയ്യുക",
"Auth.login.sso.loading": "ദാതാക്കളെ ലോഡുചെയ്യുന്നു...",
"Auth.login.sso.subtitle": "SSO വഴി നിങ്ങളുടെ അക്കൗണ്ടിലേക്ക് ലോഗിൻ ചെയ്യുക",
"Auth.privacy-policy-agreement.policy": "സ്വകാര്യതാ നയം",
"Auth.privacy-policy-agreement.terms": "നിബന്ധനകൾ",
"Auth.reset-password.title": "പാസ്‌വേഡ് പുനഃസജ്ജമാക്കുക",
"Content Manager": "ഉള്ളടക്ക മാനേജർ",
"Content Type Builder": "ഉള്ളടക്ക-തരം ബിൽഡർ",
"Documentation": "പ്രമാണീകരണം",
"Email": "ഇമെയിൽ",
"Files Upload": "ഫയലുകൾ അപ്ലോഡ്",
"HomePage.helmet.title": "ഹോംപേജ്",
"HomePage.roadmap": "ഞങ്ങളുടെ റോഡ്മാപ്പ് കാണുക",
"HomePage.welcome.congrats": "അഭിനന്ദനങ്ങൾ!",
"HomePage.welcome.congrats.content": "നിങ്ങൾ ആദ്യത്തെ അഡ്മിനിസ്ട്രേറ്ററായി ലോഗിൻ ചെയ്തു. സ്ട്രാപ്പി നൽകുന്ന ശക്തമായ സവിശേഷതകൾ കണ്ടെത്താൻ,",
"HomePage.welcome.congrats.content.bold": "നിങ്ങളുടെ ആദ്യ ശേഖരം-തരം സൃഷ്ടിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു.",
"Media Library": "മീഡിയ ലൈബ്രറി",
"New entry": "പുതിയ എൻട്രി",
"Password": "പാസ്വേഡ്",
"Provider": "ദാതാവ്",
"ResetPasswordToken": "പാസ്‌വേഡ് ടോക്കൺ റീസെറ്റ് ചെയ്യുക",
"Role": "പങ്ക്",
"Roles & Permissions": "റോളുകളും അനുമതികളും",
"Roles.ListPage.notification.delete-all-not-allowed": "ചില റോളുകൾ ഉപയോക്താക്കളുമായി ബന്ധപ്പെട്ടിരിക്കുന്നതിനാൽ അവ ഇല്ലാതാക്കാൻ കഴിഞ്ഞില്ല",
"Roles.ListPage.notification.delete-not-allowed": "ഉപയോക്താക്കളുമായി ബന്ധപ്പെടുത്തിയാൽ ഒരു റോൾ ഇല്ലാതാക്കാൻ കഴിയില്ല",
"Roles.RoleRow.select-all": "ബൾക്ക് പ്രവർത്തനങ്ങൾക്കായി {name} തിരഞ്ഞെടുക്കുക",
"Roles.RoleRow.user-count": "{സംഖ്യ, ബഹുവചനം, =0 {# ഉപയോക്താവ്} ഒരാൾ {# ഉപയോക്താവ്} മറ്റ് {# ഉപയോക്താക്കൾ}}",
"Roles.components.List.empty.withSearch": "തിരയലുമായി ബന്ധപ്പെട്ട ഒരു റോളും ഇല്ല ({തിരയൽ})...",
"Settings.PageTitle": "ക്രമീകരണങ്ങൾ - {name}",
"Settings.apiTokens.addFirstToken": "നിങ്ങളുടെ ആദ്യ API ടോക്കൺ ചേർക്കുക",
"Settings.apiTokens.addNewToken": "പുതിയ API ടോക്കൺ ചേർക്കുക",
"Settings.apiTokens.copy.editMessage": "സുരക്ഷാ കാരണങ്ങളാൽ, നിങ്ങൾക്ക് ഒരു തവണ മാത്രമേ ടോക്കൺ കാണാനാകൂ.",
"Settings.apiTokens.copy.editTitle": "ഈ ടോക്കൺ ഇനി ആക്സസ് ചെയ്യാനാകില്ല.",
"Settings.apiTokens.copy.lastWarning": "ഈ ടോക്കൺ പകർത്തുന്നത് ഉറപ്പാക്കുക, നിങ്ങൾക്ക് ഇത് വീണ്ടും കാണാൻ കഴിയില്ല!",
"Settings.apiTokens.create": "പുതിയ API ടോക്കൺ സൃഷ്‌ടിക്കുക",
"Settings.apiTokens.description": "API ഉപയോഗിക്കുന്നതിന് ജനറേറ്റ് ചെയ്ത ടോക്കണുകളുടെ ലിസ്റ്റ്",
"Settings.apiTokens.emptyStateLayout": "നിങ്ങൾക്ക് ഇതുവരെ ഉള്ളടക്കമൊന്നുമില്ല...",
"Settings.apiTokens.notification.copied": "ടോക്കൺ ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി.",
"Settings.apiTokens.title": "API ടോക്കണുകൾ",
"Settings.apiTokens.types.full-access": "പൂർണ്ണമായ പ്രവേശനം",
"Settings.apiTokens.types.read-only": "വായിക്കാൻ മാത്രം",
"Settings.application.description": "അഡ്മിനിസ്ട്രേഷൻ പാനലിന്റെ ആഗോള വിവരങ്ങൾ",
"Settings.application.edition-title": "നിലവിലെ പദ്ധതി",
"Settings.application.get-help": "സഹായം തേടു",
"Settings.application.link-pricing": "എല്ലാ വിലനിർണ്ണയ പ്ലാനുകളും കാണുക",
"Settings.application.link-upgrade": "നിങ്ങളുടെ അഡ്മിൻ പാനൽ നവീകരിക്കുക",
"Settings.application.node-version": "നോഡ് പതിപ്പ്",
"Settings.application.strapi-version": "സ്ട്രാപ്പി പതിപ്പ്",
"Settings.application.strapiVersion": "സ്ട്രാപ്പി പതിപ്പ്",
"Settings.application.title": "അവലോകനം",
"Settings.error": "പിശക്",
"Settings.global": "ആഗോള ക്രമീകരണങ്ങൾ",
"Settings.permissions": "അഡ്‌മിനിസ്‌ട്രേഷൻ പാനൽ",
"Settings.permissions.category": "{category} എന്നതിനായുള്ള അനുമതി ക്രമീകരണങ്ങൾ",
"Settings.permissions.category.plugins": "{category} പ്ലഗിനിനായുള്ള അനുമതി ക്രമീകരണങ്ങൾ",
"Settings.permissions.conditions.anytime": "എപ്പോൾ വേണമെങ്കിലും",
"Settings.permissions.conditions.apply": "അപേക്ഷിക്കുക",
"Settings.permissions.conditions.can": "കഴിയും",
"Settings.permissions.conditions.define-conditions": "നിബന്ധനകൾ നിർവചിക്കുക",
"Settings.permissions.conditions.links": "ലിങ്കുകൾ",
"Settings.permissions.conditions.no-actions": "അവയിലെ വ്യവസ്ഥകൾ നിർവചിക്കുന്നതിന് മുമ്പ് നിങ്ങൾ ആദ്യം പ്രവർത്തനങ്ങൾ (സൃഷ്ടിക്കുക, വായിക്കുക, അപ്ഡേറ്റ് ചെയ്യുക, ...) തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്.",
"Settings.permissions.conditions.none-selected": "എപ്പോൾ വേണമെങ്കിലും",
"Settings.permissions.conditions.or": "അഥവാ",
"Settings.permissions.conditions.when": "എപ്പോൾ",
"Settings.permissions.select-all-by-permission": "എല്ലാ {label} അനുമതികളും തിരഞ്ഞെടുക്കുക",
"Settings.permissions.select-by-permission": "{label} അനുമതി തിരഞ്ഞെടുക്കുക",
"Settings.permissions.users.create": "പുതിയ ഉപയോക്താവിനെ ക്ഷണിക്കുക",
"Settings.permissions.users.form.email": "ഇമെയിൽ",
"Settings.permissions.users.form.firstname": "പേരിന്റെ ആദ്യഭാഗം",
"Settings.permissions.users.form.lastname": "പേരിന്റെ അവസാന ഭാഗം",
"Settings.permissions.users.form.sso": "SSO-മായി ബന്ധിപ്പിക്കുക",
"Settings.permissions.users.form.sso.description": "പ്രാപ്തമാക്കുമ്പോൾ (ഓൺ), ഉപയോക്താക്കൾക്ക് SSO വഴി ലോഗിൻ ചെയ്യാൻ കഴിയും",
"Settings.permissions.users.listview.header.subtitle": "Strapi അഡ്മിൻ പാനലിലേക്ക് ആക്‌സസ് ഉള്ള എല്ലാ ഉപയോക്താക്കളും",
"Settings.permissions.users.tabs.label": "ടാബ് അനുമതികൾ",
"Settings.profile.form.notify.data.loaded": "നിങ്ങളുടെ പ്രൊഫൈൽ ഡാറ്റ ലോഡ് ചെയ്തു",
"Settings.profile.form.section.experience.clear.select": "തിരഞ്ഞെടുത്ത ഇന്റർഫേസ് ഭാഷ മായ്ക്കുക",
"Settings.profile.form.section.experience.here": "ഇവിടെ",
"Settings.profile.form.section.experience.interfaceLanguage": "ഇന്റർഫേസ് ഭാഷ",
"Settings.profile.form.section.experience.interfaceLanguage.hint": "ഇത് തിരഞ്ഞെടുത്ത ഭാഷയിൽ നിങ്ങളുടെ സ്വന്തം ഇന്റർഫേസ് മാത്രമേ പ്രദർശിപ്പിക്കൂ.",
"Settings.profile.form.section.experience.interfaceLanguageHelp": "മുൻഗണന മാറ്റങ്ങൾ നിങ്ങൾക്ക് മാത്രമേ ബാധകമാകൂ. കൂടുതൽ വിവരങ്ങൾ {ഇവിടെ ലഭ്യമാണ്.",
"Settings.profile.form.section.experience.mode.label": "ഇന്റർഫേസ് മോഡ്",
"Settings.profile.form.section.experience.mode.hint": "തിരഞ്ഞെടുത്ത മോഡിൽ നിങ്ങളുടെ ഇന്റർഫേസ് പ്രദർശിപ്പിക്കുന്നു.",
"Settings.profile.form.section.experience.mode.option-label": "{name mode}",
"Settings.profile.form.section.experience.title": "അനുഭവം",
"Settings.profile.form.section.helmet.title": "ഉപയോക്തൃ പ്രൊഫൈൽ",
"Settings.profile.form.section.profile.page.title": "പ്രൊഫൈൽ പേജ്",
"Settings.roles.create.description": "റോളിന് നൽകിയിരിക്കുന്ന അവകാശങ്ങൾ നിർവ്വചിക്കുക",
"Settings.roles.create.title": "ഒരു റോൾ സൃഷ്ടിക്കുക",
"Settings.roles.created": "റോൾ സൃഷ്ടിച്ചു",
"Settings.roles.edit.title": "ഒരു റോൾ എഡിറ്റ് ചെയ്യുക",
"Settings.roles.form.button.users-with-role": "{സംഖ്യ, ബഹുവചനം, = 0 {# ഉപയോക്താക്കൾ} ഈ റോളുള്ള ഒരു {# ഉപയോക്താവ്} മറ്റൊരാൾ {# ഉപയോക്താക്കൾ}",
"Settings.roles.form.created": "സൃഷ്ടിച്ചു",
"Settings.roles.form.description": "റോളിന്റെ പേരും വിവരണവും",
"Settings.roles.form.permission.property-label": "ബെൽ ലേബൽ അനുമതികൾ",
"Settings.roles.form.permissions.attributesPermissions": "ഫീൽഡ് അനുമതികൾ",
"Settings.roles.form.permissions.create": "സൃഷ്ടിക്കുക",
"Settings.roles.form.permissions.delete": "ഇല്ലാതാക്കുക",
"Settings.roles.form.permissions.publish": "പ്രസിദ്ധീകരിക്കുക",
"Settings.roles.form.permissions.read": "വായിക്കുക",
"Settings.roles.form.permissions.update": "അപ്‌ഡേറ്റ്",
"Settings.roles.list.button.add": "പുതിയ റോൾ ചേർക്കുക",
"Settings.roles.list.description": "റോളുകളുടെ പട്ടിക",
"Settings.roles.title.singular": "പങ്ക്",
"Settings.sso.description": "സിംഗിൾ സൈൻ-ഓൺ ഫീച്ചറിനായുള്ള ക്രമീകരണങ്ങൾ കോൺഫിഗർ ചെയ്യുക.",
"Settings.sso.form.defaultRole.description": "ഇത് തിരഞ്ഞെടുത്ത റോളിലേക്ക് പുതിയ അംഗീകൃത ഉപയോക്താവിനെ അറ്റാച്ചുചെയ്യും",
"Settings.sso.form.defaultRole.description-not-allowed": "അഡ്മിൻ റോളുകൾ വായിക്കാൻ നിങ്ങൾക്ക് അനുമതി ആവശ്യമാണ്",
"Settings.sso.form.defaultRole.label": "ഡിഫോൾട്ട് റോൾ",
"Settings.sso.form.registration.description": "അക്കൗണ്ട് നിലവിലില്ലെങ്കിൽ SSO ലോഗിൻ ചെയ്യുമ്പോൾ പുതിയ ഉപയോക്താവിനെ സൃഷ്ടിക്കുക",
"Settings.sso.form.registration.label": "ഓട്ടോ-രജിസ്ട്രേഷൻ",
"Settings.sso.title": "ഒറ്റ സൈൻ-ഓൺ",
"Settings.webhooks.create": "ഒരു വെബ്ഹുക്ക് സൃഷ്ടിക്കുക",
"Settings.webhooks.create.header": "പുതിയ തലക്കെട്ട് സൃഷ്‌ടിക്കുക",
"Settings.webhooks.created": "Webhook സൃഷ്ടിച്ചു",
"Settings.webhooks.event.publish-tooltip": "ഡ്രാഫ്റ്റ്/പബ്ലിഷ് സിസ്റ്റം പ്രവർത്തനക്ഷമമാക്കിയിട്ടുള്ള ഉള്ളടക്കങ്ങൾക്ക് മാത്രമേ ഈ ഇവന്റ് നിലനിൽക്കൂ",
"Settings.webhooks.events.create": "സൃഷ്ടിക്കുക",
"Settings.webhooks.events.update": "അപ്‌ഡേറ്റ്",
"Settings.webhooks.form.events": "സംഭവങ്ങൾ",
"Settings.webhooks.form.headers": "ഹെഡറുകൾ",
"Settings.webhooks.form.url": "Url",
"Settings.webhooks.headers.remove": "തലക്കെട്ട് വരി {നമ്പർ} നീക്കം ചെയ്യുക",
"Settings.webhooks.key": "കീ",
"Settings.webhooks.list.button.add": "പുതിയ വെബ്ഹുക്ക് സൃഷ്‌ടിക്കുക",
"Settings.webhooks.list.description": "POST മാറ്റങ്ങളുടെ അറിയിപ്പുകൾ നേടുക",
"Settings.webhooks.list.empty.description": "വെബ്‌ഹുക്കുകളൊന്നും കണ്ടെത്തിയില്ല",
"Settings.webhooks.list.empty.link": "ഞങ്ങളുടെ ഡോക്യുമെന്റേഷൻ കാണുക",
"Settings.webhooks.list.empty.title": "ഇതുവരെ വെബ്‌ഹുക്കുകളൊന്നുമില്ല",
"Settings.webhooks.list.th.actions": "പ്രവർത്തനങ്ങൾ",
"Settings.webhooks.list.th.status": "പദവി",
"Settings.webhooks.singular": "വെബ്ഹുക്ക്",
"Settings.webhooks.title": "വെബ്ബുക്കുകൾ",
"Settings.webhooks.to.delete": "{webhooksToDeleteLength, ബഹുവചനം, ഒരു {# അസറ്റ്} മറ്റ് {# അസറ്റുകൾ}} തിരഞ്ഞെടുത്തു",
"Settings.webhooks.trigger": "ട്രിഗർ",
"Settings.webhooks.trigger.cancel": "ട്രിഗർ റദ്ദാക്കുക",
"Settings.webhooks.trigger.pending": "തീർച്ചപ്പെടുത്തിയിട്ടില്ല...",
"Settings.webhooks.trigger.save": "ട്രിഗർ ചെയ്യാൻ ദയവായി സംരക്ഷിക്കുക",
"Settings.webhooks.trigger.success": "വിജയം!",
"Settings.webhooks.trigger.success.label": "ട്രിഗർ വിജയിച്ചു",
"Settings.webhooks.trigger.test": "ടെസ്റ്റ്-ട്രിഗർ",
"Settings.webhooks.trigger.title": "ട്രിഗറിന് മുമ്പ് സംരക്ഷിക്കുക",
"Settings.webhooks.value": "മൂല്യം",
"Usecase.back-end": "ബാക്ക്-എൻഡ് ഡെവലപ്പർ",
"Usecase.button.skip": "ഈ ചോദ്യം ഒഴിവാക്കുക",
"Usecase.content-creator": "ഉള്ളടക്ക സ്രഷ്ടാവ്",
"Usecase.front-end": "ഫ്രണ്ട് എൻഡ് ഡെവലപ്പർ",
"Usecase.full-stack": "ഫുൾ-സ്റ്റാക്ക് ഡെവലപ്പർ",
"Usecase.input.work-type": "ഏത് തരത്തിലുള്ള ജോലിയാണ് നിങ്ങൾ ചെയ്യുന്നത്?",
"Usecase.notification.success.project-created": "പ്രോജക്റ്റ് വിജയകരമായി സൃഷ്ടിച്ചു",
"Usecase.other": "മറ്റുള്ളവ",
"Usecase.title": "നിങ്ങളെക്കുറിച്ച് കുറച്ചുകൂടി ഞങ്ങളോട് പറയുക",
"Username": "ഉപയോക്തൃനാമം",
"Users": "ഉപയോക്താക്കൾ",
"Users & Permissions": "ഉപയോക്താക്കളും അനുമതികളും",
"Users.components.List.empty": "ഉപയോക്താക്കൾ ഇല്ല...",
"Users.components.List.empty.withFilters": "പ്രയോഗിച്ച ഫിൽട്ടറുകൾ ഉള്ള ഉപയോക്താക്കളൊന്നും ഇല്ല...",
"Users.components.List.empty.withSearch": "തിരയൽ ({തിരയൽ}) മായി ബന്ധപ്പെട്ട ഉപയോക്താക്കളൊന്നും ഇല്ല...",
"admin.pages.MarketPlacePage.helmet": "മാർക്കറ്റ്പ്ലേസ് - പ്ലഗിനുകൾ",
"admin.pages.MarketPlacePage.offline.title": "നിങ്ങൾ ഓഫ്‌ലൈനാണ്",
"admin.pages.MarketPlacePage.offline.subtitle": "സ്ട്രാപ്പി മാർക്കറ്റ് ആക്സസ് ചെയ്യുന്നതിന് നിങ്ങൾ ഇന്റർനെറ്റിലേക്ക് കണക്റ്റുചെയ്യേണ്ടതുണ്ട്.",
"admin.pages.MarketPlacePage.plugin.copy": "ഇൻസ്റ്റാൾ കമാൻഡ് പകർത്തുക",
"admin.pages.MarketPlacePage.plugin.copy.success": "നിങ്ങളുടെ ടെർമിനലിൽ ഒട്ടിക്കാൻ തയ്യാറായ കമാൻഡ് ഇൻസ്റ്റാൾ ചെയ്യുക",
"admin.pages.MarketPlacePage.plugin.info": "കൂടുതലറിയുക",
"admin.pages.MarketPlacePage.plugin.info.label": "{pluginName}-നെ കുറിച്ച് കൂടുതലറിയുക",
"admin.pages.MarketPlacePage.plugin.info.text": "കൂടുതലറിയുക",
"admin.pages.MarketPlacePage.plugin.installed": "ഇൻസ്റ്റാൾ ചെയ്തു",
"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi": "സ്ട്രാപ്പി നിർമ്മിച്ചത്",
"admin.pages.MarketPlacePage.plugin.tooltip.verified": "പ്ലഗിൻ സ്ഥിരീകരിച്ചത് Strapi",
"admin.pages.MarketPlacePage.search.clear": "പ്ലഗിൻ തിരയൽ മായ്ക്കുക",
"admin.pages.MarketPlacePage.search.empty": "\"{target}\" എന്നതിന് ഫലമില്ല",
"admin.pages.MarketPlacePage.search.placeholder": "ഒരു പ്ലഗിൻ തിരയുക",
"admin.pages.MarketPlacePage.submit.plugin.link": "നിങ്ങളുടെ പ്ലഗിൻ സമർപ്പിക്കുക",
"admin.pages.MarketPlacePage.subtitle": "സ്ട്രാപിയിൽ നിന്ന് കൂടുതൽ നേടൂ",
"admin.pages.MarketPlacePage.missingPlugin.title": "ഒരു പ്ലഗിൻ നഷ്ടമായോ?",
"admin.pages.MarketPlacePage.missingPlugin.description": "നിങ്ങൾ എന്ത് പ്ലഗിനാണ് തിരയുന്നതെന്ന് ഞങ്ങളോട് പറയൂ, ഞങ്ങളുടെ കമ്മ്യൂണിറ്റി പ്ലഗിൻ ഡെവലപ്പർമാർക്ക് പ്രചോദനം ലഭിക്കണമെങ്കിൽ ഞങ്ങൾ അവരെ അറിയിക്കും!",
"anErrorOccured": "ശ്ശോ! എന്തോ കുഴപ്പം സംഭവിച്ചു. ദയവായി, വീണ്ടും ശ്രമിക്കുക.",
"app.component.CopyToClipboard.label": "ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക",
"app.component.search.label": "{ലക്ഷ്യത്തിനായി} തിരയുക",
"app.component.table.duplicate": "ഡ്യൂപ്ലിക്കേറ്റ് {ലക്ഷ്യം}",
"app.component.table.edit": "എഡിറ്റ് {ലക്ഷ്യം}",
"app.component.table.select.one-entry": "{ലക്ഷ്യം} തിരഞ്ഞെടുക്കുക",
"app.components.BlockLink.blog": "ബ്ലോഗ്",
"app.components.BlockLink.blog.content": "സ്ട്രാപ്പിയെയും ആവാസവ്യവസ്ഥയെയും കുറിച്ചുള്ള ഏറ്റവും പുതിയ വാർത്തകൾ വായിക്കുക.",
"app.components.BlockLink.code": "കോഡ് ഉദാഹരണങ്ങൾ",
"app.components.BlockLink.code.content": "കമ്മ്യൂണിറ്റി വികസിപ്പിച്ച യഥാർത്ഥ പ്രോജക്റ്റുകൾ പരീക്ഷിച്ചുകൊണ്ട് പഠിക്കുക.",
"app.components.BlockLink.documentation.content": "അത്യാവശ്യ ആശയങ്ങളും ഗൈഡുകളും നിർദ്ദേശങ്ങളും കണ്ടെത്തുക.",
"app.components.BlockLink.tutorial": "ട്യൂട്ടോറിയലുകൾ",
"app.components.BlockLink.tutorial.content": "സ്ട്രാപ്പി ഉപയോഗിക്കാനും ഇഷ്ടാനുസൃതമാക്കാനും ഘട്ടം ഘട്ടമായുള്ള നിർദ്ദേശങ്ങൾ പാലിക്കുക.",
"app.components.Button.cancel": "റദ്ദാക്കുക",
"app.components.Button.confirm": "സ്ഥിരീകരിക്കുക",
"app.components.Button.reset": "റീസെറ്റ്",
"app.components.ComingSoonPage.comingSoon": "ഉടൻ വരുന്നു",
"app.components.ConfirmDialog.title": "സ്ഥിരീകരണം",
"app.components.DownloadInfo.download": "ഡൗൺലോഡ് പുരോഗതിയിലാണ്...",
"app.components.DownloadInfo.text": "ഇതിന് ഒരു മിനിറ്റ് എടുത്തേക്കാം. നിങ്ങളുടെ ക്ഷമയ്ക്ക് നന്ദി.",
"app.components.EmptyAttributes.title": "ഇതുവരെ ഫീൽഡുകളൊന്നുമില്ല",
"app.components.EmptyStateLayout.content-document": "ഉള്ളടക്കം ഒന്നും കണ്ടെത്തിയില്ല",
"app.components.EmptyStateLayout.content-permissions": "ആ ഉള്ളടക്കം ആക്‌സസ് ചെയ്യാൻ നിങ്ങൾക്ക് അനുമതിയില്ല",
"app.components.GuidedTour.CM.create.content": "<p>ഇവിടെയുള്ള ഉള്ളടക്ക മാനേജറിൽ എല്ലാ ഉള്ളടക്കവും സൃഷ്‌ടിക്കുകയും നിയന്ത്രിക്കുകയും ചെയ്യുക.</p><p>ഉദാ: ബ്ലോഗ് വെബ്‌സൈറ്റ് ഉദാഹരണം കൂടി എടുത്താൽ, ഒരാൾക്ക് എഴുതാം ലേഖനം, സംരക്ഷിച്ച് അവർക്ക് ഇഷ്ടമുള്ളത് പോലെ പ്രസിദ്ധീകരിക്കുക.</p><p>💡 ദ്രുത ടിപ്പ് - നിങ്ങൾ സൃഷ്ടിക്കുന്ന ഉള്ളടക്കത്തിൽ പ്രസിദ്ധീകരിക്കുക അമർത്താൻ മറക്കരുത്.</p>",
"app.components.GuidedTour.CM.create.title": "⚡️ ഉള്ളടക്കം സൃഷ്‌ടിക്കുക",
"app.components.GuidedTour.CM.success.content": "<p>അതിശയകരം, പോകാനുള്ള അവസാന ഘട്ടം!</p><b>🚀 പ്രവർത്തനത്തിലുള്ള ഉള്ളടക്കം കാണുക</b>",
"app.components.GuidedTour.CM.success.cta.title": "API പരീക്ഷിക്കുക",
"app.components.GuidedTour.CM.success.title": "ഘട്ടം 2: പൂർത്തിയായി ✅",
"app.components.GuidedTour.CTB.create.content": "<p>ശേഖര തരങ്ങൾ നിരവധി എൻട്രികൾ നിയന്ത്രിക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു, ഒരു എൻട്രി മാത്രം നിയന്ത്രിക്കാൻ ഒറ്റ തരങ്ങൾ അനുയോജ്യമാണ്.</p> <p>ഉദാ: ഒരു ബ്ലോഗ് വെബ്‌സൈറ്റിന്, ലേഖനങ്ങൾ ഒരു ശേഖരണ തരമായിരിക്കും, അതേസമയം ഒരു ഹോം പേജ് ഒരൊറ്റ തരമായിരിക്കും.</p>",
"app.components.GuidedTour.CTB.create.cta.title": "ഒരു ശേഖരണ തരം നിർമ്മിക്കുക",
"app.components.GuidedTour.CTB.create.title": "🧠 ഒരു ആദ്യ ശേഖരണ തരം സൃഷ്ടിക്കുക",
"app.components.GuidedTour.CTB.success.content": "<p>നന്നായി പോകുന്നു!</p><b>⚡️ ലോകവുമായി എന്താണ് പങ്കിടാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നത്?</b>",
"app.components.GuidedTour.CTB.success.title": "ഘട്ടം 1: പൂർത്തിയായി ✅",
"app.components.GuidedTour.apiTokens.create.content": "<p>ഇവിടെ ഒരു പ്രാമാണീകരണ ടോക്കൺ സൃഷ്‌ടിക്കുകയും നിങ്ങൾ ഇപ്പോൾ സൃഷ്‌ടിച്ച ഉള്ളടക്കം വീണ്ടെടുക്കുകയും ചെയ്യുക.</p>",
"app.components.GuidedTour.apiTokens.create.cta.title": "ഒരു API ടോക്കൺ സൃഷ്ടിക്കുക",
"app.components.GuidedTour.apiTokens.create.title": "🚀 പ്രവർത്തനത്തിലുള്ള ഉള്ളടക്കം കാണുക",
"app.components.GuidedTour.apiTokens.success.content": "<p>ഒരു HTTP അഭ്യർത്ഥന നടത്തി പ്രവർത്തനത്തിലുള്ള ഉള്ളടക്കം കാണുക:</p><ul><li><p>ഈ URL-ലേക്ക്: <light>https: //'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</p></p></li> <li><p>തലക്കെട്ടിനൊപ്പം: <light>അംഗീകാരം: ചുമക്കുന്നയാൾ '<' YOUR_API_TOKEN'>'</light></p></li></ul><p>ഉള്ളടക്കവുമായി സംവദിക്കാനുള്ള കൂടുതൽ വഴികൾക്കായി, <documentationLink>ഡോക്യുമെന്റേഷൻ</documentationLink> കാണുക.</p>",
"app.components.GuidedTour.apiTokens.success.cta.title": "ഹോംപേജിലേക്ക് മടങ്ങുക",
"app.components.GuidedTour.apiTokens.success.title": "ഘട്ടം 3: പൂർത്തിയായി ✅",
"app.components.GuidedTour.create-content": "ഉള്ളടക്കം സൃഷ്ടിക്കുക",
"app.components.GuidedTour.home.CM.title": "⚡️ ലോകവുമായി എന്താണ് പങ്കിടാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നത്?",
"app.components.GuidedTour.home.CTB.cta.title": "ഉള്ളടക്ക തരം ബിൽഡറിലേക്ക് പോകുക",
"app.components.GuidedTour.home.CTB.title": "🧠 ഉള്ളടക്ക ഘടന നിർമ്മിക്കുക",
"app.components.GuidedTour.home.apiTokens.cta.title": "API പരീക്ഷിക്കുക",
"app.components.GuidedTour.skip": "ടൂർ ഒഴിവാക്കുക",
"app.components.GuidedTour.title": "ആരംഭിക്കാനുള്ള 3 ഘട്ടങ്ങൾ",
"app.components.HomePage.button.blog": "ബ്ലോഗിൽ കൂടുതൽ കാണുക",
"app.components.HomePage.community": "കമ്മ്യൂണിറ്റിയിൽ ചേരുക",
"app.components.HomePage.community.content": "വ്യത്യസ്ത ചാനലുകളിലെ ടീം അംഗങ്ങൾ, സംഭാവകർ, ഡെവലപ്പർമാർ എന്നിവരുമായി ചർച്ച ചെയ്യുക.",
"app.components.HomePage.create": "നിങ്ങളുടെ ആദ്യ ഉള്ളടക്ക തരം സൃഷ്ടിക്കുക",
"app.components.HomePage.roadmap": "ഞങ്ങളുടെ റോഡ്മാപ്പ് കാണുക",
"app.components.HomePage.welcome": "ബോർഡിലേക്ക് സ്വാഗതം 👋",
"app.components.HomePage.welcome.again": "സ്വാഗതം 👋",
"app.components.HomePage.welcomeBlock.content": "അഭിനന്ദനങ്ങൾ! നിങ്ങൾ ആദ്യ അഡ്‌മിനിസ്‌ട്രേറ്ററായി ലോഗിൻ ചെയ്‌തിരിക്കുന്നു. സ്‌ട്രാപ്പി നൽകുന്ന ശക്തമായ സവിശേഷതകൾ കണ്ടെത്തുന്നതിന്, നിങ്ങളുടെ ആദ്യ ഉള്ളടക്ക തരം സൃഷ്‌ടിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു!",
"app.components.HomePage.welcomeBlock.content.again": "നിങ്ങളുടെ പ്രോജക്റ്റിൽ പുരോഗതിയുണ്ടെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു! സ്ട്രാപിയെക്കുറിച്ചുള്ള ഏറ്റവും പുതിയ വാർത്തകൾ വായിക്കാൻ മടിക്കേണ്ടതില്ല. നിങ്ങളുടെ ഫീഡ്‌ബാക്കിനെ അടിസ്ഥാനമാക്കി ഉൽപ്പന്നം മെച്ചപ്പെടുത്താൻ ഞങ്ങൾ പരമാവധി ശ്രമിക്കുന്നു." ,
"app.components.HomePage.welcomeBlock.content.issues": "പ്രശ്നങ്ങൾ.",
"app.components.HomePage.welcomeBlock.content.raise": " അല്ലെങ്കിൽ ഉയർത്തുക ",
"app.components.ImgPreview.hint": "നിങ്ങളുടെ ഫയൽ ഈ ഏരിയയിലേക്ക് വലിച്ചിടുക അല്ലെങ്കിൽ ഒരു ഫയൽ അപ്‌ലോഡ് ചെയ്യാൻ {ബ്രൗസ് ചെയ്യുക",
"app.components.ImgPreview.hint.browse": "browse",
"app.components.InputFile.newFile": "പുതിയ ഫയൽ ചേർക്കുക",
"app.components.InputFileDetails.open": "ഒരു പുതിയ ടാബിൽ തുറക്കുക",
"app.components.InputFileDetails.originalName": "യഥാർത്ഥ നാമം:",
"app.components.InputFileDetails.remove": "ഈ ഫയൽ നീക്കം ചെയ്യുക",
"app.components.InputFileDetails.size": "വലുപ്പം:",
"app.components.InstallPluginPage.Download.description": "പ്ലഗിൻ ഡൗൺലോഡ് ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യാൻ കുറച്ച് സെക്കന്റുകൾ എടുത്തേക്കാം.",
"app.components.InstallPluginPage.Download.title": "ഡൗൺലോഡ് ചെയ്യുന്നു...",
"app.components.InstallPluginPage.description": "നിങ്ങളുടെ ആപ്പ് അനായാസമായി വിപുലീകരിക്കുക.",
"app.components.LeftMenu.collapse": "നാവ്ബാർ ചുരുക്കുക",
"app.components.LeftMenu.expand": "നാവ്ബാർ വികസിപ്പിക്കുക",
"app.components.LeftMenu.logout": "Logout",
"app.components.LeftMenu.navbrand.title": "സ്ട്രാപ്പി ഡാഷ്ബോർഡ്",
"app.components.LeftMenu.navbrand.workplace": "ജോലിസ്ഥലം",
"app.components.LeftMenuFooter.help": "സഹായം",
"app.components.LeftMenuFooter.poweredBy": "പവർ ചെയ്യുന്നത് ",
"app.components.LeftMenuLinkContainer.collectionTypes": "ശേഖരണ തരങ്ങൾ",
"app.components.LeftMenuLinkContainer.configuration": "കോൺഫിഗറേഷനുകൾ",
"app.components.LeftMenuLinkContainer.general": "പൊതുവായത്",
"app.components.LeftMenuLinkContainer.noPluginsInstalled": "ഇതുവരെ പ്ലഗിനുകളൊന്നും ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ല",
"app.components.LeftMenuLinkContainer.plugins": "പ്ലഗിനുകൾ",
"app.components.LeftMenuLinkContainer.singleTypes": "ഒറ്റ തരങ്ങൾ",
"app.components.ListPluginsPage.deletePlugin.description": "പ്ലഗിൻ അൺഇൻസ്റ്റാൾ ചെയ്യാൻ കുറച്ച് സെക്കന്റുകൾ എടുത്തേക്കാം.",
"app.components.ListPluginsPage.deletePlugin.title": "അൺഇൻസ്റ്റാൾ ചെയ്യുന്നു",
"app.components.ListPluginsPage.description": "പ്രോജക്ടിൽ ഇൻസ്റ്റാൾ ചെയ്ത പ്ലഗിന്നുകളുടെ ലിസ്റ്റ്.",
"app.components.ListPluginsPage.helmet.title": "ലിസ്റ്റ് പ്ലഗിനുകൾ",
"app.components.Logout.logout": "Logout",
"app.components.Logout.profile": "പ്രൊഫൈൽ",
"app.components.MarketplaceBanner": "കമ്മ്യൂണിറ്റി നിർമ്മിച്ച പ്ലഗിനുകൾ കണ്ടെത്തുക, കൂടാതെ നിങ്ങളുടെ പ്രോജക്‌റ്റ് കിക്ക്‌സ്റ്റാർട്ട് ചെയ്യുന്നതിനുള്ള നിരവധി ആകർഷണീയമായ കാര്യങ്ങൾ, Strapi Awesome-ൽ.",
"app.components.MarketplaceBanner.image.alt": "ഒരു സ്ട്രാപ്പി റോക്കറ്റ് ലോഗോ",
"app.components.MarketplaceBanner.link": "ഇപ്പോൾ തന്നെ പരിശോധിക്കുക",
"app.components.NotFoundPage.back": "ഹോംപേജിലേക്ക് മടങ്ങുക",
"app.components.NotFoundPage.description": "കണ്ടെത്തിയില്ല",
"app.components.Official": "ഔദ്യോഗികം",
"app.components.Onboarding.help.button": "സഹായ ബട്ടൺ",
"app.components.Onboarding.label.completed": "% പൂർത്തിയായി",
"app.components.Onboarding.title": "വീഡിയോകൾ ആരംഭിക്കുക",
"app.components.PluginCard.Button.label.download": "ഡൗൺലോഡ്",
"app.components.PluginCard.Button.label.install": "ഇതിനകം ഇൻസ്റ്റാൾ ചെയ്തു",
"app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed": "സ്വയമേവ റീലോഡ് ഫീച്ചർ പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്. ദയവായി `നൂൽ വികസിപ്പിക്കുക` ഉപയോഗിച്ച് നിങ്ങളുടെ ആപ്പ് ആരംഭിക്കുക.",
"app.components.PluginCard.PopUpWarning.install.impossible.confirm": "എനിക്ക് മനസ്സിലായി!",
"app.components.PluginCard.PopUpWarning.install.impossible.environment": "സുരക്ഷാ കാരണങ്ങളാൽ, ഒരു വികസന പരിതസ്ഥിതിയിൽ മാത്രമേ ഒരു പ്ലഗിൻ ഡൗൺലോഡ് ചെയ്യാൻ കഴിയൂ.",
"app.components.PluginCard.PopUpWarning.install.impossible.title": "ഡൗൺലോഡ് ചെയ്യുന്നത് അസാധ്യമാണ്",
"app.components.PluginCard.compatible": "നിങ്ങളുടെ ആപ്പുമായി പൊരുത്തപ്പെടുന്നു",
"app.components.PluginCard.compatibleCommunity": "കമ്മ്യൂണിറ്റിയുമായി പൊരുത്തപ്പെടുന്നു",
"app.components.PluginCard.more-details": "കൂടുതൽ വിശദാംശങ്ങൾ",
"app.components.ToggleCheckbox.off-label": "തെറ്റായ",
"app.components.ToggleCheckbox.on-label": "സത്യം",
"app.components.UpgradePlanModal.button": "കൂടുതലറിയുക",
"app.components.UpgradePlanModal.limit-reached": "നിങ്ങൾ പരിധിയിലെത്തി",
"app.components.UpgradePlanModal.text-ce": "കമ്മ്യൂണിറ്റി പതിപ്പ്",
"app.components.UpgradePlanModal.text-ee": "എന്റർപ്രൈസ് പതിപ്പ്",
"app.components.UpgradePlanModal.text-power": "നിങ്ങളുടെ പ്ലാൻ എന്റർപ്രൈസ് പതിപ്പിലേക്ക് അപ്ഗ്രേഡ് ചെയ്യുന്നതിലൂടെ സ്ട്രാപിയുടെ മുഴുവൻ ശക്തിയും അൺലോക്ക് ചെയ്യുക",
"app.components.UpgradePlanModal.text-strapi": "നിങ്ങളുടെ പ്ലാൻ അപ്‌ഗ്രേഡ് ചെയ്തുകൊണ്ട് സ്ട്രാപിയുടെ",
"app.components.Users.MagicLink.connect": "ഈ ഉപയോക്താവിന് ആക്‌സസ് നൽകുന്നതിന് ഈ ലിങ്ക് പകർത്തി പങ്കിടുക",
"app.components.Users.MagicLink.connect.sso": "ഈ ലിങ്ക് ഉപയോക്താവിന് അയയ്‌ക്കുക, ആദ്യ ലോഗിൻ ഒരു SSO ദാതാവ് വഴി നടത്താം",
"app.components.Users.ModalCreateBody.block-title.details": "ഉപയോക്തൃ വിശദാംശങ്ങൾ",
"app.components.Users.ModalCreateBody.block-title.roles": "ഉപയോക്താവിന്റെ റോളുകൾ",
"app.components.Users.ModalCreateBody.block-title.roles.description": "ഒരു ഉപയോക്താവിന് ഒന്നോ അതിലധികമോ റോളുകൾ ഉണ്ടായിരിക്കാം",
"app.components.Users.SortPicker.button-label": "അനുസരിച്ച് അടുക്കുക",
"app.components.Users.SortPicker.sortby.email_asc": "ഇമെയിൽ (A മുതൽ Z വരെ)",
"app.components.Users.SortPicker.sortby.email_desc": "ഇമെയിൽ (Z മുതൽ A)",
"app.components.Users.SortPicker.sortby.firstname_asc": "ആദ്യ നാമം (A മുതൽ Z വരെ)",
"app.components.Users.SortPicker.sortby.firstname_desc": "ആദ്യ നാമം (Z മുതൽ A)",
"app.components.Users.SortPicker.sortby.lastname_asc": "അവസാന നാമം (A മുതൽ Z വരെ)",
"app.components.Users.SortPicker.sortby.lastname_desc": "അവസാന നാമം (Z മുതൽ A)",
"app.components.Users.SortPicker.sortby.username_asc": "ഉപയോക്തൃനാമം (A മുതൽ Z വരെ)",
"app.components.Users.SortPicker.sortby.username_desc": "ഉപയോക്തൃനാമം (Z മുതൽ A)",
"app.components.listPlugins.button": "പുതിയ പ്ലഗിൻ ചേർക്കുക",
"app.components.listPlugins.title.none": "പ്ലഗിനുകളൊന്നും ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ല",
"app.components.listPluginsPage.deletePlugin.error": "പ്ലഗിൻ അൺഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു",
"app.containers.App.notification.error.init": "API അഭ്യർത്ഥിക്കുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു",
"app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin": "നിങ്ങൾക്ക് ഈ ലിങ്ക് ലഭിച്ചില്ലെങ്കിൽ, ദയവായി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.",
"app.containers.AuthPage.ForgotPasswordSuccess.text.email": "നിങ്ങളുടെ പാസ്‌വേഡ് വീണ്ടെടുക്കൽ ലിങ്ക് ലഭിക്കുന്നതിന് കുറച്ച് മിനിറ്റുകൾ എടുത്തേക്കാം.",
"app.containers.AuthPage.ForgotPasswordSuccess.title": "ഇമെയിൽ അയച്ചു",
"app.containers.Users.EditPage.form.active.label": "ആക്റ്റീവ്",
"app.containers.Users.EditPage.header.label": "എഡിറ്റ് {name}",
"app.containers.Users.EditPage.header.label-loading": "ഉപയോക്താവിനെ എഡിറ്റ് ചെയ്യുക",
"app.containers.Users.EditPage.roles-bloc-title": "ആട്രിബ്യൂട്ട് ചെയ്ത റോളുകൾ",
"app.containers.Users.ModalForm.footer.button-success": "ഉപയോക്താവിനെ ക്ഷണിക്കുക",
"app.links.configure-view": "കാഴ്ച കോൺഫിഗർ ചെയ്യുക",
"app.page.not.found": "ശ്ശോ! നിങ്ങൾ തിരയുന്ന പേജ് ഞങ്ങൾക്ക് കണ്ടെത്താൻ കഴിയുന്നില്ല...",
"app.static.links.cheatsheet": "ചീറ്റ് ഷീറ്റ്",
"app.utils.SelectOption.defaultMessage": " ",
"app.utils.add-filter": "ഫിൽട്ടർ ചേർക്കുക",
"app.utils.close-label": "അടയ്ക്കുക",
"app.utils.defaultMessage": " ",
"app.utils.duplicate": "ഡ്യൂപ്ലിക്കേറ്റ്",
"app.utils.edit": "എഡിറ്റ്",
"app.utils.errors.file-too-big.message": "ഫയൽ വളരെ വലുതാണ്",
"app.utils.filter-value": "ഫിൽട്ടർ മൂല്യം",
"app.utils.filters": "ഫിൽട്ടറുകൾ",
"app.utils.notify.data-loaded": "{ലക്ഷ്യം} ലോഡ് ചെയ്തു",
"app.utils.placeholder.defaultMessage": " ",
"app.utils.publish": "പ്രസിദ്ധീകരിക്കുക",
"app.utils.select-all": "എല്ലാം തിരഞ്ഞെടുക്കുക",
"app.utils.select-field": "ഫീൽഡ് തിരഞ്ഞെടുക്കുക",
"app.utils.select-filter": "അരിപ്പ തിരഞ്ഞെടുക്കുക",
"app.utils.unpublish": "പ്രസിദ്ധീകരിക്കാതിരിക്കുക",
"clearLabel": "വ്യക്തം",
"coming.soon": "ഈ ഉള്ളടക്കം നിലവിൽ നിർമ്മാണത്തിലാണ്, ഏതാനും ആഴ്ചകൾക്കുള്ളിൽ തിരിച്ചെത്തും!",
"component.Input.error.validation.integer": "മൂല്യം ഒരു പൂർണ്ണസംഖ്യ ആയിരിക്കണം",
"components.AutoReloadBlocker.description": "ഇനിപ്പറയുന്ന കമാൻഡുകളിലൊന്ന് ഉപയോഗിച്ച് Strapi പ്രവർത്തിപ്പിക്കുക:",
"components.AutoReloadBlocker.header": "ഈ പ്ലഗിന് റീലോഡ് സവിശേഷത ആവശ്യമാണ്.",
"components.ErrorBoundary.title": "എന്തോ കുഴപ്പം സംഭവിച്ചു...",
"components.FilterOptions.FILTER_TYPES.$contains": "അടങ്ങുന്നു (കേസ് സെൻസിറ്റീവ്)",
"components.FilterOptions.FILTER_TYPES.$endsWith": "അവസാനിക്കുന്നു",
"components.FilterOptions.FILTER_TYPES.$eq": "ആണ്",
"components.FilterOptions.FILTER_TYPES.$gt": "ഇതിനേക്കാൾ വലുതാണ്",
"components.FilterOptions.FILTER_TYPES.$gte": "ഇതിനേക്കാൾ വലുതോ തുല്യമോ ആണ്",
"components.FilterOptions.FILTER_TYPES.$lt": "ഇതിനേക്കാൾ കുറവാണ്",
"components.FilterOptions.FILTER_TYPES.$lte": "ഇതിലും കുറവോ തുല്യമോ ആണ്",
"components.FilterOptions.FILTER_TYPES.$ne": "അല്ല",
"components.FilterOptions.FILTER_TYPES.$notContains": "ഉൾക്കൊള്ളുന്നില്ല (കേസ് സെൻസിറ്റീവ്)",
"components.FilterOptions.FILTER_TYPES.$notNull": "ശൂന്യമല്ല",
"components.FilterOptions.FILTER_TYPES.$null": "ശൂന്യമാണ്",
"components.FilterOptions.FILTER_TYPES.$startsWith": "ആരംഭിക്കുന്നു",
"components.Input.error.attribute.key.taken": "ഈ മൂല്യം ഇതിനകം നിലവിലുണ്ട്",
"components.Input.error.attribute.sameKeyAndName": "തുല്യമാകാൻ കഴിയില്ല",
"components.Input.error.attribute.taken": "ഈ ഫീൽഡ് നാമം ഇതിനകം നിലവിലുണ്ട്",
"components.Input.error.contain.lowercase": "പാസ്‌വേഡിൽ കുറഞ്ഞത് ഒരു ചെറിയ അക്ഷരമെങ്കിലും ഉണ്ടായിരിക്കണം",
"components.Input.error.contain.number": "പാസ്‌വേഡിൽ കുറഞ്ഞത് ഒരു നമ്പറെങ്കിലും ഉണ്ടായിരിക്കണം",
"components.Input.error.contain.uppercase": "പാസ്‌വേഡിൽ കുറഞ്ഞത് ഒരു വലിയ അക്ഷരമെങ്കിലും ഉണ്ടായിരിക്കണം",
"components.Input.error.contentTypeName.taken": "ഈ പേര് ഇതിനകം നിലവിലുണ്ട്",
"components.Input.error.custom-error": "{പിശക് സന്ദേശം} ",
"components.Input.error.password.noMatch": "പാസ്‌വേഡുകൾ പൊരുത്തപ്പെടുന്നില്ല",
"components.Input.error.validation.email": "ഇതൊരു അസാധുവായ ഇമെയിൽ ആണ്",
"components.Input.error.validation.json": "ഇത് JSON ഫോർമാറ്റുമായി പൊരുത്തപ്പെടുന്നില്ല",
"components.Input.error.validation.lowercase": "മൂല്യം ഒരു ചെറിയക്ഷര സ്ട്രിംഗ് ആയിരിക്കണം",
"components.Input.error.validation.max": "മൂല്യം വളരെ ഉയർന്നതാണ്.",
"components.Input.error.validation.maxLength": "മൂല്യം വളരെ ദൈർഘ്യമേറിയതാണ്.",
"components.Input.error.validation.min": "മൂല്യം വളരെ കുറവാണ്.",
"components.Input.error.validation.minLength": "മൂല്യം വളരെ ചെറുതാണ്.",
"components.Input.error.validation.minSupMax": "ഉന്നതമാകാൻ കഴിയില്ല",
"components.Input.error.validation.regex": "മൂല്യം regex-മായി പൊരുത്തപ്പെടുന്നില്ല.",
"components.Input.error.validation.required": "ഈ മൂല്യം ആവശ്യമാണ്.",
"components.Input.error.validation.unique": "ഈ മൂല്യം ഇതിനകം ഉപയോഗിച്ചു.",
"components.InputSelect.option.placeholder": "ഇവിടെ തിരഞ്ഞെടുക്കുക",
"components.ListRow.empty": "ഡാറ്റയൊന്നും കാണിക്കാനില്ല.",
"components.NotAllowedInput.text": "ഈ ഫീൽഡ് കാണുന്നതിന് അനുമതികളൊന്നുമില്ല",
"components.OverlayBlocker.description": "സെർവർ പുനരാരംഭിക്കുന്നതിന് ആവശ്യമായ ഒരു സവിശേഷതയാണ് നിങ്ങൾ ഉപയോഗിക്കുന്നത്. സെർവർ പ്രവർത്തനക്ഷമമാകുന്നതുവരെ കാത്തിരിക്കുക.",
"components.OverlayBlocker.description.serverError": "സെർവർ പുനരാരംഭിച്ചിരിക്കണം, ദയവായി ടെർമിനലിൽ നിങ്ങളുടെ ലോഗുകൾ പരിശോധിക്കുക.",
"components.OverlayBlocker.title": "പുനരാരംഭിക്കുന്നതിനായി കാത്തിരിക്കുന്നു...",
"components.OverlayBlocker.title.serverError": "പുനരാരംഭിക്കുന്നതിന് പ്രതീക്ഷിച്ചതിലും കൂടുതൽ സമയമെടുക്കുന്നു",
"components.PageFooter.select": "ഓരോ പേജിനും എൻട്രികൾ",
"components.ProductionBlocker.description": "സുരക്ഷാ ആവശ്യങ്ങൾക്കായി ഞങ്ങൾ മറ്റ് പരിതസ്ഥിതികളിൽ ഈ പ്ലഗിൻ പ്രവർത്തനരഹിതമാക്കേണ്ടതുണ്ട്.",
"components.ProductionBlocker.header": "ഈ പ്ലഗിൻ വികസനത്തിൽ മാത്രമേ ലഭ്യമാകൂ.",
"components.Search.placeholder": "തിരയുക...",
"components.TableHeader.sort": "{label}-ൽ അടുക്കുക",
"components.Wysiwyg.ToggleMode.markdown-mode": "മാർക്ക്ഡൗൺ മോഡ്",
"components.Wysiwyg.ToggleMode.preview-mode": "പ്രിവ്യൂ മോഡ്",
"components.Wysiwyg.collapse": "ചുരുക്കുക",
"components.Wysiwyg.selectOptions.H1": "ശീർഷകം H1",
"components.Wysiwyg.selectOptions.H2": "ശീർഷകം H2",
"components.Wysiwyg.selectOptions.H3": "ശീർഷകം H3",
"components.Wysiwyg.selectOptions.H4": "ശീർഷകം H4",
"components.Wysiwyg.selectOptions.H5": "ശീർഷകം H5",
"components.Wysiwyg.selectOptions.H6": "ശീർഷകം H6",
"components.Wysiwyg.selectOptions.title": "ഒരു ശീർഷകം ചേർക്കുക",
"components.WysiwygBottomControls.charactersIndicators": "കഥാപാത്രങ്ങൾ",
"components.WysiwygBottomControls.fullscreen": "വികസിപ്പിക്കുക",
"components.WysiwygBottomControls.uploadFiles": "ഫയലുകൾ വലിച്ചിടുക, ക്ലിപ്പ്ബോർഡിൽ നിന്ന് ഒട്ടിക്കുക അല്ലെങ്കിൽ {browse}.",
"components.WysiwygBottomControls.uploadFiles.browse": "അവ തിരഞ്ഞെടുക്കുക",
"components.pagination.go-to": "പേജിലേക്ക് പോകുക {page}",
"components.pagination.go-to-next": "അടുത്ത പേജിലേക്ക് പോകുക",
"components.pagination.go-to-previous": "മുമ്പത്തെ പേജിലേക്ക് പോകുക",
"components.pagination.remaining-links": "കൂടാതെ മറ്റ് {number} ലിങ്കുകളും",
"components.popUpWarning.button.cancel": "ഇല്ല, റദ്ദാക്കുക",
"components.popUpWarning.button.confirm": "അതെ, സ്ഥിരീകരിക്കുക",
"components.popUpWarning.message": "ഇത് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?",
"components.popUpWarning.title": "ദയവായി സ്ഥിരീകരിക്കുക",
"content-manager.App.schemas.data-loaded": "സ്കീമകൾ വിജയകരമായി ലോഡ് ചെയ്തു",
"content-manager.DynamicTable.relation-loaded": "ബന്ധങ്ങൾ ലോഡ് ചെയ്തു",
"content-manager.DynamicTable.relation-loading": "ബന്ധങ്ങൾ ലോഡുചെയ്യുന്നു",
"content-manager.DynamicTable.relation-more": "പ്രദർശിപ്പിച്ചതിനേക്കാൾ കൂടുതൽ എന്റിറ്റികൾ ഈ ബന്ധത്തിൽ അടങ്ങിയിരിക്കുന്നു",
"content-manager.EditRelations.title": "റിലേഷണൽ ഡാറ്റ",
"content-manager.HeaderLayout.button.label-add-entry": "പുതിയ എൻട്രി സൃഷ്ടിക്കുക",
"content-manager.api.id": "API ഐഡി",
"content-manager.components.AddFilterCTA.add": "ഫിൽട്ടറുകൾ",
"content-manager.components.AddFilterCTA.hide": "ഫിൽട്ടറുകൾ",
"content-manager.components.DragHandle-label": "ഡ്രാഗ്",
"content-manager.components.DraggableAttr.edit": "എഡിറ്റ് ചെയ്യാൻ ക്ലിക്ക് ചെയ്യുക",
"content-manager.components.DraggableCard.delete.field": "{item} ഇല്ലാതാക്കുക",
"content-manager.components.DraggableCard.edit.field": "എഡിറ്റ് {ഇനം}",
"content-manager.components.DraggableCard.move.field": "നീക്കുക {ഇനം}",
"content-manager.components.DynamicTable.row-line": "ഇനത്തിന്റെ വരി {number}",
"content-manager.components.DynamicZone.ComponentPicker-label": "ഒരു ഘടകം തിരഞ്ഞെടുക്കുക",
"content-manager.components.DynamicZone.add-component": "{componentName} എന്നതിലേക്ക് ഒരു ഘടകം ചേർക്കുക",
"content-manager.components.DynamicZone.delete-label": "{name} ഇല്ലാതാക്കുക",
"content-manager.components.DynamicZone.error-message": "ഘടകത്തിൽ പിശക്(കൾ) അടങ്ങിയിരിക്കുന്നു",
"content-manager.components.DynamicZone.missing-components": "അവിടെ {സംഖ്യ, ബഹുവചനം, =0 {നഷ്‌ടമായ # ഘടകങ്ങളുണ്ട്} ഒന്ന് {# നഷ്‌ടമായ ഘടകമാണ്} മറ്റൊന്ന് {# നഷ്‌ടമായ ഘടകങ്ങളാണ്}}",
"content-manager.components.DynamicZone.move-down-label": "ഘടകം താഴേക്ക് നീക്കുക",
"content-manager.components.DynamicZone.move-up-label": "ഘടകം മുകളിലേക്ക് നീക്കുക",
"content-manager.components.DynamicZone.pick-compo": "ഒരു ഘടകം തിരഞ്ഞെടുക്കുക",
"content-manager.components.DynamicZone.required": "ഘടകം ആവശ്യമാണ്",
"content-manager.components.EmptyAttributesBlock.button": "ക്രമീകരണ പേജിലേക്ക് പോകുക",
"content-manager.components.EmptyAttributesBlock.description": "നിങ്ങളുടെ ക്രമീകരണങ്ങൾ നിങ്ങൾക്ക് മാറ്റാവുന്നതാണ്",
"content-manager.components.FieldItem.linkToComponentLayout": "ഘടകത്തിന്റെ ലേഔട്ട് സജ്ജമാക്കുക",
"content-manager.components.FieldSelect.label": "ഒരു ഫീൽഡ് ചേർക്കുക",
"content-manager.components.FilterOptions.button.apply": "പ്രയോഗിക്കുക",
"content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply": "പ്രയോഗിക്കുക",
"content-manager.components.FiltersPickWrapper.PluginHeader.actions.clearAll": "എല്ലാം മായ്‌ക്കുക",
"content-manager.components.FiltersPickWrapper.PluginHeader.description": "എൻട്രികൾ ഫിൽട്ടർ ചെയ്യുന്നതിന് ബാധകമാക്കുന്നതിനുള്ള വ്യവസ്ഥകൾ സജ്ജമാക്കുക",
"content-manager.components.FiltersPickWrapper.PluginHeader.title.filter": "ഫിൽട്ടറുകൾ",
"content-manager.components.FiltersPickWrapper.hide": "മറയ്ക്കുക",
"content-manager.components.LeftMenu.Search.label": "ഒരു ഉള്ളടക്ക തരത്തിനായി തിരയുക",
"content-manager.components.LeftMenu.collection-types": "ശേഖരണ തരങ്ങൾ",
"content-manager.components.LeftMenu.single-types": "ഒറ്റ തരങ്ങൾ",
"content-manager.components.LimitSelect.itemsPerPage": "ഓരോ പേജിനും ഇനങ്ങൾ",
"content-manager.components.NotAllowedInput.text": "ഈ ഫീൽഡ് കാണുന്നതിന് അനുമതികളൊന്നുമില്ല",
"content-manager.components.RepeatableComponent.error-message": "ഘടക(ങ്ങളിൽ) പിശക്(കൾ) അടങ്ങിയിരിക്കുന്നു",
"content-manager.components.Search.placeholder": "ഒരു എൻട്രിക്കായി തിരയുക...",
"content-manager.components.Select.draft-info-title": "സംസ്ഥാനം: ഡ്രാഫ്റ്റ്",
"content-manager.components.Select.publish-info-title": "സംസ്ഥാനം: പ്രസിദ്ധീകരിച്ചത്",
"content-manager.components.SettingsViewWrapper.pluginHeader.description.edit-settings": "എഡിറ്റ് കാഴ്‌ച എങ്ങനെയായിരിക്കുമെന്ന് ഇഷ്ടാനുസൃതമാക്കുക.",
"content-manager.components.SettingsViewWrapper.pluginHeader.description.list-settings": "ലിസ്റ്റ് കാഴ്ചയുടെ ക്രമീകരണങ്ങൾ നിർവചിക്കുക.",
"content-manager.components.SettingsViewWrapper.pluginHeader.title": "കാഴ്ച കോൺഫിഗർ ചെയ്യുക - {name}",
"content-manager.components.TableDelete.delete": "എല്ലാം ഇല്ലാതാക്കുക",
"content-manager.components.TableDelete.deleteSelected": "തിരഞ്ഞെടുത്ത ഇല്ലാതാക്കുക",
"content-manager.components.TableDelete.label": "{സംഖ്യ, ബഹുവചനം, ഒരു {# എൻട്രി} മറ്റ് {# എൻട്രികൾ}} തിരഞ്ഞെടുത്തു",
"content-manager.components.TableEmpty.withFilters": "പ്രയോഗിച്ച ഫിൽട്ടറുകൾക്കൊപ്പം {contentType} ഒന്നുമില്ല...",
"content-manager.components.TableEmpty.withSearch": "തിരയലുമായി ബന്ധപ്പെട്ട {contentType} ഒന്നുമില്ല ({തിരയൽ})...",
"content-manager.components.TableEmpty.withoutFilter": "{contentType} ഒന്നുമില്ല...",
"content-manager.components.empty-repeatable": "ഇതുവരെ എൻട്രി ഒന്നുമില്ല. ഒരെണ്ണം ചേർക്കാൻ ചുവടെയുള്ള ബട്ടണിൽ ക്ലിക്കുചെയ്യുക.",
"content-manager.components.notification.info.maximum-requirement": "നിങ്ങൾ ഇതിനകം പരമാവധി എണ്ണം ഫീൽഡുകളിൽ എത്തിയിരിക്കുന്നു",
"content-manager.components.notification.info.minimum-requirement": "കുറഞ്ഞ ആവശ്യകതയുമായി പൊരുത്തപ്പെടുന്നതിന് ഒരു ഫീൽഡ് ചേർത്തു",
"content-manager.components.repeatable.reorder.error": "നിങ്ങളുടെ ഘടകത്തിന്റെ ഫീൽഡ് പുനഃക്രമീകരിക്കുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
"content-manager.components.reset-entry": "റീസെറ്റ് എൻട്രി",
"content-manager.components.uid.apply": "പ്രയോഗിക്കുക",
"content-manager.components.uid.available": "ലഭ്യം",
"content-manager.components.uid.regenerate": "പുനരുജ്ജീവിപ്പിക്കുക",
"content-manager.components.uid.suggested": "നിർദ്ദേശിച്ചത്",
"content-manager.components.uid.unavailable": "ലഭ്യമല്ല",
"content-manager.containers.Edit.Link.Layout": "ലേഔട്ട് കോൺഫിഗർ ചെയ്യുക",
"content-manager.containers.Edit.Link.Model": "ശേഖരം-തരം എഡിറ്റ് ചെയ്യുക",
"content-manager.containers.Edit.addAnItem": "ഒരു ഇനം ചേർക്കുക...",
"content-manager.containers.Edit.clickToJump": "എൻട്രിയിലേക്ക് പോകുന്നതിന് ക്ലിക്കുചെയ്യുക",
"content-manager.containers.Edit.delete": "ഇല്ലാതാക്കുക",
"content-manager.containers.Edit.delete-entry": "ഈ എൻട്രി ഇല്ലാതാക്കുക",
"content-manager.containers.Edit.editing": "എഡിറ്റിംഗ്...",
"content-manager.containers.Edit.information": "വിവരങ്ങൾ",
"content-manager.containers.Edit.information.by": "എഴുതിയത്",
"content-manager.containers.Edit.information.created": "സൃഷ്ടിച്ചു",
"content-manager.containers.Edit.information.draftVersion": "ഡ്രാഫ്റ്റ് പതിപ്പ്",
"content-manager.containers.Edit.information.editing": "എഡിറ്റിംഗ്",
"content-manager.containers.Edit.information.lastUpdate": "അവസാന അപ്ഡേറ്റ്",
"content-manager.containers.Edit.information.publishedVersion": "പ്രസിദ്ധീകരിച്ച പതിപ്പ്",
"content-manager.containers.Edit.pluginHeader.title.new": "ഒരു എൻട്രി സൃഷ്ടിക്കുക",
"content-manager.containers.Edit.reset": "പുനഃസജ്ജമാക്കുക",
"content-manager.containers.Edit.returnList": "ലിസ്റ്റിലേക്ക് മടങ്ങുക",
"content-manager.containers.Edit.seeDetails": "വിശദാംശങ്ങൾ",
"content-manager.containers.Edit.submit": "സംരക്ഷിക്കുക",
"content-manager.containers.EditSettingsView.modal-form.edit-field": "ഫീൽഡ് എഡിറ്റ് ചെയ്യുക",
"content-manager.containers.EditView.add.new-entry": "ഒരു എൻട്രി ചേർക്കുക",
"content-manager.containers.EditView.notification.errors": "ഫോമിൽ ചില പിശകുകൾ അടങ്ങിയിരിക്കുന്നു",
"content-manager.containers.Home.introduction": "നിങ്ങളുടെ എൻട്രികൾ എഡിറ്റ് ചെയ്യുന്നതിന് ഇടത് മെനുവിലെ നിർദ്ദിഷ്‌ട ലിങ്കിലേക്ക് പോകുക. ഈ പ്ലഗിന്നിന് ക്രമീകരണങ്ങൾ എഡിറ്റ് ചെയ്യാൻ ശരിയായ മാർഗമില്ല, അത് ഇപ്പോഴും സജീവമായ വികസനത്തിലാണ്.",
"content-manager.containers.Home.pluginHeaderDescription": "ശക്തവും മനോഹരവുമായ ഒരു ഇന്റർഫേസിലൂടെ നിങ്ങളുടെ എൻട്രികൾ കൈകാര്യം ചെയ്യുക.",
"content-manager.containers.Home.pluginHeaderTitle": "ഉള്ളടക്ക മാനേജർ",
"content-manager.containers.List.draft": "ഡ്രാഫ്റ്റ്",
"content-manager.containers.List.errorFetchRecords": "പിശക്",
"content-manager.containers.List.published": "പ്രസിദ്ധീകരിച്ചു",
"content-manager.containers.ListPage.displayedFields": "പ്രദർശിപ്പിച്ച ഫീൽഡുകൾ",
"content-manager.containers.ListPage.items": "{സംഖ്യ, ബഹുവചനം, =0 {ഇനങ്ങൾ} ഒന്ന് {ഇനം} മറ്റൊന്ന് {ഇനങ്ങൾ}}",
"content-manager.containers.ListPage.table-headers.published_at": "സ്റ്റേറ്റ്",
"content-manager.containers.ListSettingsView.modal-form.edit-label": "എഡിറ്റ് {fieldName}",
"content-manager.containers.SettingPage.add.field": "മറ്റൊരു ഫീൽഡ് ചേർക്കുക",
"content-manager.containers.SettingPage.add.relational-field": "മറ്റൊരു റിലേഷണൽ ഫീൽഡ് ചേർക്കുക",
"content-manager.containers.SettingPage.attributes": "ആട്രിബ്യൂട്ടുകളുടെ ഫീൽഡുകൾ",
"content-manager.containers.SettingPage.attributes.description": "ആട്രിബ്യൂട്ടുകളുടെ ക്രമം നിർവചിക്കുക",
"content-manager.containers.SettingPage.editSettings.description": "ലേഔട്ട് നിർമ്മിക്കുന്നതിന് ഫീൽഡുകൾ വലിച്ചിടുക",
"content-manager.containers.SettingPage.editSettings.entry.title": "എൻട്രി ശീർഷകം",
"content-manager.containers.SettingPage.editSettings.entry.title.description": "നിങ്ങളുടെ എൻട്രിയുടെ പ്രദർശിപ്പിച്ച ഫീൽഡ് സജ്ജമാക്കുക",
"content-manager.containers.SettingPage.editSettings.relation-field.description": "എഡിറ്റ്, ലിസ്റ്റ് കാഴ്‌ചകളിൽ പ്രദർശിപ്പിച്ച ഫീൽഡ് സജ്ജമാക്കുക",
"content-manager.containers.SettingPage.editSettings.title": "കാഴ്ച എഡിറ്റ് ചെയ്യുക (ക്രമീകരണങ്ങൾ)",
"content-manager.containers.SettingPage.layout": "ലേഔട്ട്",
"content-manager.containers.SettingPage.listSettings.description": "ഈ ശേഖരണ തരത്തിനായുള്ള ഓപ്ഷനുകൾ കോൺഫിഗർ ചെയ്യുക",
"content-manager.containers.SettingPage.listSettings.title": "ലിസ്റ്റ് കാഴ്ച (ക്രമീകരണങ്ങൾ)",
"content-manager.containers.SettingPage.pluginHeaderDescription": "ഈ ശേഖരണ തരത്തിനായുള്ള നിർദ്ദിഷ്ട ക്രമീകരണങ്ങൾ കോൺഫിഗർ ചെയ്യുക",
"content-manager.containers.SettingPage.relations": "റിലേഷണൽ ഫീൽഡുകൾ",
"content-manager.containers.SettingPage.settings": "ക്രമീകരണങ്ങൾ",
"content-manager.containers.SettingPage.view": "കാണുക",
"content-manager.containers.SettingViewModel.pluginHeader.title": "ഉള്ളടക്ക മാനേജർ - {name}",
"content-manager.containers.SettingsPage.Block.contentType.description": "നിർദ്ദിഷ്ട ക്രമീകരണങ്ങൾ കോൺഫിഗർ ചെയ്യുക",
"content-manager.containers.SettingsPage.Block.contentType.title": "ശേഖരണ തരങ്ങൾ",
"content-manager.containers.SettingsPage.Block.generalSettings.description": "നിങ്ങളുടെ ശേഖരണ തരങ്ങൾക്കായി സ്ഥിരസ്ഥിതി ഓപ്ഷനുകൾ കോൺഫിഗർ ചെയ്യുക",
"content-manager.containers.SettingsPage.Block.generalSettings.title": "പൊതുവായത്",
"content-manager.containers.SettingsPage.pluginHeaderDescription": "നിങ്ങളുടെ എല്ലാ ശേഖരണ തരങ്ങൾക്കും ഗ്രൂപ്പുകൾക്കുമായി ക്രമീകരണങ്ങൾ കോൺഫിഗർ ചെയ്യുക",
"content-manager.containers.SettingsView.list.subtitle": "നിങ്ങളുടെ ശേഖരണ തരങ്ങളുടെയും ഗ്രൂപ്പുകളുടെയും ലേഔട്ടും പ്രദർശനവും കോൺഫിഗർ ചെയ്യുക",
"content-manager.containers.SettingsView.list.title": "ഡിസ്‌പ്ലേ കോൺഫിഗറേഷനുകൾ",
"content-manager.edit-settings-view.link-to-ctb.components": "ഘടകം എഡിറ്റ് ചെയ്യുക",
"content-manager.edit-settings-view.link-to-ctb.content-types": "ഉള്ളടക്ക തരം എഡിറ്റ് ചെയ്യുക",
"content-manager.emptyAttributes.button": "ശേഖരണ തരം ബിൽഡറിലേക്ക് പോകുക",
"content-manager.emptyAttributes.description": "നിങ്ങളുടെ ശേഖരണ തരത്തിലേക്ക് നിങ്ങളുടെ ആദ്യ ഫീൽഡ് ചേർക്കുക",
"content-manager.emptyAttributes.title": "ഇതുവരെ ഫീൽഡുകളൊന്നുമില്ല",
"content-manager.error.attribute.key.taken": "ഈ മൂല്യം ഇതിനകം നിലവിലുണ്ട്",
"content-manager.error.attribute.sameKeyAndName": "തുല്യനാകാൻ കഴിയില്ല",
"content-manager.error.attribute.taken": "ഈ ഫീൽഡ് നാമം ഇതിനകം നിലവിലുണ്ട്",
"content-manager.error.contentTypeName.taken": "ഈ പേര് ഇതിനകം നിലവിലുണ്ട്",
"content-manager.error.model.fetch": "മോഡലുകൾ കോൺഫിഗർ ചെയ്യുന്നതിനിടയിൽ ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.error.record.create": "റെക്കോർഡ് സൃഷ്ടിക്കുന്നതിനിടയിൽ ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.error.record.delete": "റെക്കോർഡ് ഇല്ലാതാക്കുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.error.record.fetch": "റെക്കോർഡ് ലഭ്യമാക്കുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.error.record.update": "റെക്കോർഡ് അപ്ഡേറ്റ് സമയത്ത് ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.error.records.count": "എണ്ണം രേഖപ്പെടുത്തുന്ന സമയത്ത് ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.error.records.fetch": "രേഖകൾ ലഭ്യമാക്കുന്നതിനിടയിൽ ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.error.schema.generation": "സ്‌കീമ ജനറേഷൻ സമയത്ത് ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.error.validation.json": "ഇതൊരു JSON അല്ല",
"content-manager.error.validation.max": "മൂല്യം വളരെ കൂടുതലാണ്.",
"content-manager.error.validation.maxLength": "മൂല്യം വളരെ ദൈർഘ്യമേറിയതാണ്.",
"content-manager.error.validation.min": "മൂല്യം വളരെ കുറവാണ്.",
"content-manager.error.validation.minLength": "മൂല്യം വളരെ ചെറുതാണ്.",
"content-manager.error.validation.minSupMax": "ഉന്നതമാകാൻ കഴിയില്ല",
"content-manager.error.validation.regex": "മൂല്യം regex-മായി പൊരുത്തപ്പെടുന്നില്ല.",
"content-manager.error.validation.required": "ഈ മൂല്യ ഇൻപുട്ട് ആവശ്യമാണ്.",
"content-manager.form.Input.bulkActions": "ബൾക്ക് പ്രവർത്തനങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുക",
"content-manager.form.Input.defaultSort": "ഡിഫോൾട്ട് സോർട്ട് ആട്രിബ്യൂട്ട്",
"content-manager.form.Input.description": "വിവരണം",
"content-manager.form.Input.description.placeholder": "പ്രൊഫൈലിൽ പേര് പ്രദർശിപ്പിക്കുക",
"content-manager.form.Input.editable": "എഡിറ്റബിൾ ഫീൽഡ്",
"content-manager.form.Input.filters": "ഫിൽട്ടറുകൾ പ്രവർത്തനക്ഷമമാക്കുക",
"content-manager.form.Input.label": "ലേബൽ",
"content-manager.form.Input.label.inputDescription": "ഈ മൂല്യം പട്ടികയുടെ തലയിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്ന ലേബലിനെ മറികടക്കുന്നു",
"content-manager.form.Input.pageEntries": "ഓരോ പേജിനും എൻട്രികൾ",
"content-manager.form.Input.pageEntries.inputDescription": "ശ്രദ്ധിക്കുക: ശേഖരണ തരം ക്രമീകരണ പേജിൽ നിങ്ങൾക്ക് ഈ മൂല്യം അസാധുവാക്കാനാകും.",
"content-manager.form.Input.placeholder": "പ്ലെയ്‌സ്‌ഹോൾഡർ",
"content-manager.form.Input.placeholder.placeholder": "എന്റെ ആകർഷണീയമായ മൂല്യം",
"content-manager.form.Input.search": "തിരയൽ പ്രവർത്തനക്ഷമമാക്കുക",
"content-manager.form.Input.search.field": "ഈ ഫീൽഡിൽ തിരയൽ പ്രവർത്തനക്ഷമമാക്കുക",
"content-manager.form.Input.sort.field": "ഈ ഫീൽഡിൽ അടുക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കുക",
"content-manager.form.Input.sort.order": "ഡിഫോൾട്ട് സോർട്ട് ഓർഡർ",
"content-manager.form.Input.wysiwyg": "WYSIWYG ആയി പ്രദർശിപ്പിക്കുക",
"content-manager.global.displayedFields": "പ്രദർശിപ്പിച്ച ഫീൽഡുകൾ",
"content-manager.groups": "ഗ്രൂപ്പുകൾ",
"content-manager.groups.numbered": "ഗ്രൂപ്പുകൾ ({നമ്പർ})",
"content-manager.header.name": "ഉള്ളടക്കം",
"content-manager.link-to-ctb": "മോഡൽ എഡിറ്റ് ചെയ്യുക",
"content-manager.models": "ശേഖരണ തരങ്ങൾ",
"content-manager.models.numbered": "ശേഖരണ തരങ്ങൾ ({നമ്പർ})",
"content-manager.notification.error.displayedFields": "നിങ്ങൾക്ക് കുറഞ്ഞത് ഒരു പ്രദർശിപ്പിച്ച ഫീൽഡ് ആവശ്യമാണ്",
"content-manager.notification.error.relation.fetch": "ബന്ധം കണ്ടെത്തുന്നതിനിടയിൽ ഒരു പിശക് സംഭവിച്ചു.",
"content-manager.notification.info.SettingPage.disableSort": "അനുവദനീയമായ സോർട്ടിംഗിനൊപ്പം നിങ്ങൾക്ക് ഒരു ആട്രിബ്യൂട്ട് ഉണ്ടായിരിക്കണം",
"content-manager.notification.info.minimumFields": "നിങ്ങൾക്ക് കുറഞ്ഞത് ഒരു ഫീൽഡെങ്കിലും പ്രദർശിപ്പിക്കേണ്ടതുണ്ട്",
"content-manager.notification.upload.error": "നിങ്ങളുടെ ഫയലുകൾ അപ്‌ലോഡ് ചെയ്യുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു",
"content-manager.pageNotFound": "പേജ് കണ്ടെത്തിയില്ല",
"content-manager.pages.ListView.header-subtitle": "{സംഖ്യ, ബഹുവചനം, =0 {# എൻട്രികൾ} ഒന്ന് {# എൻട്രി} മറ്റ് {# എൻട്രികൾ}} കണ്ടെത്തി",
"content-manager.pages.NoContentType.button": "നിങ്ങളുടെ ആദ്യ ഉള്ളടക്ക-തരം സൃഷ്ടിക്കുക",
"content-manager.pages.NoContentType.text": "നിങ്ങൾക്ക് ഇതുവരെ ഒരു ഉള്ളടക്കവും ഇല്ല, നിങ്ങളുടെ ആദ്യ ഉള്ളടക്ക-തരം സൃഷ്ടിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു.",
"content-manager.permissions.not-allowed.create": "ഒരു പ്രമാണം സൃഷ്ടിക്കാൻ നിങ്ങൾക്ക് അനുവാദമില്ല",
"content-manager.permissions.not-allowed.update": "നിങ്ങൾക്ക് ഈ പ്രമാണം കാണാൻ അനുവാദമില്ല",
"content-manager.plugin.description.long": "നിങ്ങളുടെ ഡാറ്റാബേസിലെ ഡാറ്റ കാണാനും എഡിറ്റ് ചെയ്യാനും ഇല്ലാതാക്കാനുമുള്ള ദ്രുത മാർഗം.",
"content-manager.plugin.description.short": "നിങ്ങളുടെ ഡാറ്റാബേസിലെ ഡാറ്റ കാണാനും എഡിറ്റ് ചെയ്യാനും ഇല്ലാതാക്കാനുമുള്ള ദ്രുത മാർഗം.",
"content-manager.popUpWarning.bodyMessage.contentType.delete": "ഈ എൻട്രി ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?",
"content-manager.popUpWarning.bodyMessage.contentType.delete.all": "ഈ എൻട്രികൾ ഇല്ലാതാക്കണമെന്ന് നിങ്ങൾക്ക് തീർച്ചയാണോ?",
"content-manager.popUpWarning.warning.cancelAllSettings": "നിങ്ങളുടെ പരിഷ്‌ക്കരണങ്ങൾ റദ്ദാക്കണമെന്ന് തീർച്ചയാണോ?",
"content-manager.popUpWarning.warning.publish-question": "നിങ്ങൾക്കിത് ഇപ്പോഴും പ്രസിദ്ധീകരിക്കാൻ താൽപ്പര്യമുണ്ടോ?",
"content-manager.popUpWarning.warning.unpublish": "ഈ ഉള്ളടക്കം പ്രസിദ്ധീകരിക്കാതിരിക്കുന്നത്<br></br>ഒരു ഡ്രാഫ്റ്റിലേക്ക് സ്വയമേവ മാറ്റും.",
"content-manager.popUpWarning.warning.unpublish-question": "ഇത് പ്രസിദ്ധീകരിക്കാതിരിക്കണമെന്ന് തീർച്ചയാണോ?",
"content-manager.popUpWarning.warning.updateAllSettings": "ഇത് നിങ്ങളുടെ എല്ലാ ക്രമീകരണങ്ങളും പരിഷ്കരിക്കും",
"content-manager.popUpwarning.warning.has-draft-relations.button-confirm": "അതെ, പ്രസിദ്ധീകരിക്കുക",
"content-manager.popUpwarning.warning.has-draft-relations.message": "<b>{count, plural, =0 {നിങ്ങളുടെ ഉള്ളടക്ക ബന്ധങ്ങളിൽ} ഒന്ന് {നിങ്ങളുടെ ഉള്ളടക്ക ബന്ധങ്ങളിൽ} മറ്റൊന്നാണ് {നിങ്ങളുടെ ഉള്ളടക്ക ബന്ധങ്ങളിൽ} are}}</b> ഇതുവരെ പ്രസിദ്ധീകരിച്ചിട്ടില്ല.<br></br>ഇത് നിങ്ങളുടെ പ്രോജക്റ്റിൽ തകർന്ന ലിങ്കുകളും പിശകുകളും സൃഷ്ടിച്ചേക്കാം.",
"content-manager.popover.display-relations.label": "പ്രദർശന ബന്ധങ്ങൾ",
"content-manager.success.record.delete": "ഇല്ലാതാക്കപ്പെട്ടു",
"content-manager.success.record.publish": "പ്രസിദ്ധീകരിച്ചത്",
"content-manager.success.record.save": "സംരക്ഷിച്ചു",
"content-manager.success.record.unpublish": "പ്രസിദ്ധീകരിക്കാത്തത്",
"content-manager.utils.data-loaded": "{സംഖ്യ, ബഹുവചനം, =1 {എൻട്രി ഉണ്ട്} മറ്റ് {എൻട്രികൾ ഉണ്ട്}} വിജയകരമായി ലോഡ് ചെയ്തു",
"content-manager.apiError. ഈ ആട്രിബ്യൂട്ട് അദ്വിതീയമായിരിക്കണം": "{ഫീൽഡ്} അദ്വിതീയമായിരിക്കണം",
"form.button.continue": "തുടരുക",
"form.button.done": "പൂർത്തിയായി",
"global.actions": "പ്രവർത്തനങ്ങൾ",
"global.back": "ബാക്ക്",
"global.change-password": "പാസ്‌വേഡ് മാറ്റുക",
"global.content-manager": "ഉള്ളടക്ക മാനേജർ",
"global.continue": "തുടരുക",
"global.delete": "ഇല്ലാതാക്കുക",
"global.delete-target": "{ലക്ഷ്യം} ഇല്ലാതാക്കുക",
"global.description": "വിവരണം",
"global.details": "വിശദാംശങ്ങൾ",
"global.disabled": "അപ്രാപ്തമാക്കി",
"global.documentation": "ഡോക്യുമെന്റേഷൻ",
"global.enabled": "പ്രാപ്തമാക്കി",
"global.finish": "ഫിനിഷ്",
"global.marketplace": "Marketplace",
"global.name": "പേര്",
"global.none": "ഒന്നുമില്ല",
"global.password": "പാസ്‌വേഡ്",
"global.plugins": "പ്ലഗിനുകൾ",
"global.profile": "പ്രൊഫൈൽ",
"global.prompt.unsaved": "ഈ പേജ് വിടണമെന്ന് തീർച്ചയാണോ? നിങ്ങളുടെ എല്ലാ പരിഷ്‌ക്കരണങ്ങളും നഷ്‌ടമാകും",
"global.reset-password": "പാസ്‌വേഡ് പുനഃസജ്ജമാക്കുക",
"global.roles": "റോളുകൾ",
"global.save": "സംരക്ഷിക്കുക",
"global.see-more": "കൂടുതൽ കാണുക",
"global.select": "തിരഞ്ഞെടുക്കുക",
"global.select-all-entries": "എല്ലാ എൻട്രികളും തിരഞ്ഞെടുക്കുക",
"global.settings": "ക്രമീകരണങ്ങൾ",
"global.type": "തരം",
"global.users": "ഉപയോക്താക്കൾ",
"notification.contentType.relations.conflict": "ഉള്ളടക്ക തരത്തിന് പരസ്പരവിരുദ്ധമായ ബന്ധങ്ങളുണ്ട്",
"notification.default.title": "വിവരങ്ങൾ:",
"notification.error": "ഒരു പിശക് സംഭവിച്ചു",
"notification.error.layout": "ലേഔട്ട് വീണ്ടെടുക്കാൻ കഴിഞ്ഞില്ല",
"notification.form.error.fields": "ഫോമിൽ ചില പിശകുകൾ അടങ്ങിയിരിക്കുന്നു",
"notification.form.success.fields": "മാറ്റങ്ങൾ സംരക്ഷിച്ചു",
"notification.link-copied": "ലിങ്ക് ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി",
"notification.permission.not-allowed-read": "നിങ്ങൾക്ക് ഈ പ്രമാണം കാണാൻ അനുവാദമില്ല",
"notification.success.delete": "ഇനം ഇല്ലാതാക്കി",
"notification.success.saved": "സംരക്ഷിച്ചു",
"notification.success.title": "വിജയം:",
"notification.version.update.message": "സ്ട്രാപിയുടെ ഒരു പുതിയ പതിപ്പ് ലഭ്യമാണ്!",
"notification.warning.title": "മുന്നറിയിപ്പ്:",
"or": "അഥവാ",
"request.error.model.unknown": "ഈ മോഡൽ നിലവിലില്ല",
"skipToContent": "ഉള്ളടക്കത്തിലേക്ക് പോകുക",
"submit": "സമർപ്പിക്കുക"
}

View File

@ -3,6 +3,7 @@
"Auth.components.Oops.text": "你的帐号已经被停用。",
"Auth.components.Oops.text.admin": "如果这是个错误,请联系你的管理员。",
"Auth.components.Oops.title": "哎呀...",
"Auth.form.active.label": "激活",
"Auth.form.button.forgot-password": "发送电子邮件",
"Auth.form.button.go-home": "回到首页",
"Auth.form.button.login": "登录",
@ -126,7 +127,12 @@
"Settings.profile.form.section.experience.documentation": "文档",
"Settings.profile.form.section.experience.interfaceLanguage": "界面语言",
"Settings.profile.form.section.experience.interfaceLanguage.hint": "将会用所选择的语言显示你的界面",
"Settings.profile.form.section.experience.interfaceLanguageHelp": "当前的语言选择只会更改你当前帐号界面语言。 请参考此 {documentation} 为你的团队提供其他语言。",
"Settings.profile.form.section.experience.interfaceLanguageHelp": "当前的语言选择只会更改你当前帐号界面语言。 请参考此 {here} 为你的团队提供其他语言。",
"Settings.profile.form.section.experience.mode.label": "界面风格",
"Settings.profile.form.section.experience.mode.hint": "将会用所选择的风格显示你的界面",
"Settings.profile.form.section.experience.mode.option-label": "{name}界面",
"light": "浅色",
"dark": "深色",
"Settings.profile.form.section.experience.title": "体验",
"Settings.profile.form.section.helmet.title": "用户个人信息",
"Settings.profile.form.section.profile.page.title": "个人信息页面",
@ -196,7 +202,7 @@
"anErrorOccurred": "唉呀! 出错了。请再试一次。",
"app.component.CopyToClipboard.label": "复制到剪贴板",
"app.component.search.label": "搜索 {target}",
"app.component.table.duplicate": "创建副本 {target}",
"app.component.table.duplicate": "创建 {target} 的副本",
"app.component.table.edit": "编辑 {target}",
"app.component.table.select.one-entry": "选择 {target}",
"app.components.BlockLink.blog": "博客",
@ -239,7 +245,9 @@
"app.components.InstallPluginPage.description": "轻松地扩展你的应用程序。",
"app.components.LeftMenu.collapse": "收起导航栏",
"app.components.LeftMenu.expand": "展开导航栏",
"app.components.LeftMenu.general": "通用",
"app.components.LeftMenu.logout": "退出",
"app.components.LeftMenu.plugins": "插件",
"app.components.LeftMenu.navbrand.title": "Strapi 仪表盘",
"app.components.LeftMenu.navbrand.workplace": "工作空间",
"app.components.LeftMenuFooter.help": "帮助",
@ -371,11 +379,11 @@
"components.OverlayBlocker.description.serverError": "服务器已经重新启动,请在终端检查日志。",
"components.OverlayBlocker.title": "等待重新启动...",
"components.OverlayBlocker.title.serverError": "重新启动时间超过预期",
"components.PageFooter.select": "每页条目",
"components.PageFooter.select": "每页",
"components.ProductionBlocker.description": "为了安全起见,我们必须在其他环境下禁用这个插件。",
"components.ProductionBlocker.header": "这个插件只在开发环境中可用。",
"components.Search.placeholder": "搜索...",
"components.TableHeader.sort": "按 {label} 排序",
"components.TableHeader.sort": "按{label}排序",
"components.Wysiwyg.ToggleMode.markdown-mode": "Markdown 模式",
"components.Wysiwyg.ToggleMode.preview-mode": "预览模式",
"components.Wysiwyg.collapse": "收起",
@ -412,7 +420,7 @@
"content-manager.components.DraggableCard.delete.field": "删除 {item}",
"content-manager.components.DraggableCard.edit.field": "编辑 {item}",
"content-manager.components.DraggableCard.move.field": "移动 {item}",
"content-manager.components.DynamicTable.row-line": "项 行 {number}",
"content-manager.components.DynamicTable.row-line": "第 {number} 条记录",
"content-manager.components.DynamicZone.ComponentPicker-label": "选择一个组件",
"content-manager.components.DynamicZone.add-component": "添加组件 {componentName}",
"content-manager.components.DynamicZone.delete-label": "删除 {name}",
@ -468,11 +476,11 @@
"content-manager.containers.Edit.delete-entry": "删除该条目",
"content-manager.containers.Edit.editing": "编辑中...",
"content-manager.containers.Edit.information": "信息",
"content-manager.containers.Edit.information.by": "",
"content-manager.containers.Edit.information.created": "创建",
"content-manager.containers.Edit.information.by": "操作人",
"content-manager.containers.Edit.information.created": "创建",
"content-manager.containers.Edit.information.draftVersion": "草稿版本",
"content-manager.containers.Edit.information.editing": "编辑中",
"content-manager.containers.Edit.information.lastUpdate": "最后更新",
"content-manager.containers.Edit.information.lastUpdate": "更新",
"content-manager.containers.Edit.information.publishedVersion": "已发布版本",
"content-manager.containers.Edit.pluginHeader.title.new": "创建新条目",
"content-manager.containers.Edit.reset": "重置",
@ -588,6 +596,7 @@
"content-manager.popUpwarning.warning.has-draft-relations.button-confirm": "是, 发布",
"content-manager.popUpwarning.warning.has-draft-relations.message": "<b>{count, plural, =0 { 个关联的内容} one { 个关联的内容} other { 个关联的内容}}</b> 尚未发布。<br></br>它可能会在你的项目上产生关联失效和错误。",
"content-manager.popover.display-relations.label": "显示关联",
"content-manager.select.currently.selected": "已选中 {count} 项",
"content-manager.success.record.delete": "已删除",
"content-manager.success.record.publish": "已发布",
"content-manager.success.record.save": "已保存",
@ -605,17 +614,55 @@
"content-type-builder.plugin.name": "模型构建器",
"form.button.done": "完成",
"global.search": "搜索",
"global.active": "已激活",
"global.inactive": "未激活",
"global.back": "返回",
"global.cancel": "取消",
"global.change-password": "修改密码",
"global.content-manager": "内容管理",
"global.delete": "删除",
"global.delete-target": "删除 {target}",
"global.description": "描述",
"global.details": "详情",
"global.documentation": "文档",
"global.finish": "完成",
"global.marketplace": "市场",
"global.name": "名称",
"global.password": "密码",
"global.plugins": "插件",
"global.plugins.content-manager": "内容管理",
"global.plugins.content-manager.description": "在你的数据库里,快速的查看、编辑和删除数据。",
"global.plugins.content-type-builder": "模型构建器",
"global.plugins.content-type-builder.description": "对你的 API 数据结构进行建模。在短短的一分钟内创建新的字段和关系。这些文件会在你的项目中自动创建和更新。",
"global.plugins.email": "电子邮件",
"global.plugins.email.description": "配置你的应用程序来发送电子邮件。",
"global.plugins.upload": "媒体库",
"global.plugins.upload.description": "媒体文件管理。",
"global.plugins.graphql": "GraphQL",
"global.plugins.graphql.description": "添加具有默认 API 方法的 GraphQL 端点",
"global.plugins.documentation": "文档",
"global.plugins.documentation.description": "创建一个 OpenAPI 文档,用 SWAGGER UI 来可视化你的 API。",
"global.plugins.i18n": "国际化",
"global.plugins.i18n.description": "这个插件可以从管理面板和 API 中创建、阅读和更新不同语言的内容。",
"global.plugins.sentry": "Sentry",
"global.plugins.sentry.description": "将 Strapi 错误事件发送给 Sentry。",
"global.plugins.users-permissions": "角色和权限",
"global.plugins.users-permissions.description": "用一个基于 JWT 的完整认证过程来保护你的 API。这个插件还带有一个 ACL 策略,允许你管理用户组之间的权限。",
"global.profile": "个人资料",
"global.prompt.unsaved": "您确定要离开这个页面吗?您所有的未保存的修改都将丢失",
"global.roles": "角色列表",
"global.save": "保存",
"global.settings": "设置",
"global.strapi-super-admin": "超级管理员",
"global.strapi-editor": "编辑",
"global.strapi-author": "作者",
"global.table.header.email": "电子邮件",
"global.table.header.firstname": "名字",
"global.table.header.isActive": "是否激活",
"global.table.header.lastname": "姓氏",
"global.table.header.roles": "用户角色",
"global.table.header.username": "用户名",
"global.users": "用户列表",
"global.type": "类型",
"notification.contentType.relations.conflict": "内容类型有关联冲突",
"notification.default.title": "通知:",

View File

@ -0,0 +1,10 @@
{
"extends": "@strapi/typescript-utils/tsconfigs/admin",
"include": [
"./",
"../../../**/admin/src/**/*",
"../../../../plugins/documentation/admin/src/**/*"
],
"exclude": ["node_modules", "**/*.test.js", "*.js"]
}

View File

@ -1,5 +1,5 @@
import React, { useRef, useState } from 'react';
import moment from 'moment';
import { format } from 'date-fns';
import {
CheckPagePermissions,
Form,
@ -40,7 +40,7 @@ const UsersRoleNumber = styled.div`
color: ${({ theme }) => theme.colors.primary600};
border-radius: ${({ theme }) => theme.borderRadius};
font-size: ${12 / 16}rem;
font-width: bold;
font-weight: bold;
`;
const CreatePage = () => {
@ -114,7 +114,7 @@ const CreatePage = () => {
const defaultDescription = `${formatMessage({
id: 'Settings.roles.form.created',
defaultMessage: 'Created',
})} ${moment().format('LL')}`;
})} ${format(new Date(), 'PPP')}`;
return (
<Main>

View File

@ -774,7 +774,7 @@ exports[`<CreatePage /> renders and matches the snapshot 1`] = `
color: #4945ff;
border-radius: 4px;
font-size: 0.75rem;
font-width: bold;
font-weight: bold;
}
@media (max-width:68.75rem) {
@ -1008,7 +1008,7 @@ exports[`<CreatePage /> renders and matches the snapshot 1`] = `
id="textarea-1"
name="description"
>
Created 20210130T12:34:56+00:00
Created April 1st, 2020
</textarea>
</div>
</div>

View File

@ -9,22 +9,12 @@ import { render } from '@testing-library/react';
import { IntlProvider } from 'react-intl';
import { Router, Switch, Route } from 'react-router-dom';
import { createMemoryHistory } from 'history';
import moment from 'moment';
import { lightTheme, darkTheme } from '@strapi/design-system';
import Theme from '../../../../../../../../admin/src/components/Theme';
import ThemeToggleProvider from '../../../../../../../../admin/src/components/ThemeToggleProvider';
import { CreatePage } from '../index';
jest.mock('moment', () => {
const mMoment = {
format: jest.fn().mockReturnThis(),
valueOf: jest.fn(),
};
return jest.fn(() => mMoment);
});
jest.mock('@strapi/helper-plugin', () => ({
...jest.requireActual('@strapi/helper-plugin'),
useNotification: jest.fn(() => jest.fn()),
@ -57,10 +47,16 @@ const makeApp = history => (
);
describe('<CreatePage />', () => {
beforeAll(() => {
jest.useFakeTimers('modern');
jest.setSystemTime(new Date(2020, 3, 1));
});
afterAll(() => {
jest.useRealTimers();
});
it('renders and matches the snapshot', () => {
moment()
.format.mockReturnValueOnce('20210130T12:34:56+00:00')
.mockReturnValueOnce('0130-2021');
const history = createMemoryHistory();
const App = makeApp(history);
const { container } = render(App);

View File

@ -9,7 +9,7 @@ import { render, screen } from '@testing-library/react';
import { createMemoryHistory } from 'history';
import { Router } from 'react-router-dom';
import { IntlProvider } from 'react-intl';
import { useRBAC } from '@strapi/helper-plugin';
import { useRBAC, TrackingContext } from '@strapi/helper-plugin';
import { lightTheme, darkTheme } from '@strapi/design-system';
import { useRolesList } from '../../../../../../../../admin/src/hooks';
@ -33,13 +33,15 @@ jest.mock('../../../../../../../../admin/src/hooks', () => ({
const makeApp = history => (
<IntlProvider messages={{}} textComponent="span" locale="en">
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<ListPage />
</Router>
</Theme>
</ThemeToggleProvider>
<TrackingContext.Provider value={{ uuid: null, telemetryProperties: undefined }}>
<ThemeToggleProvider themes={{ light: lightTheme, dark: darkTheme }}>
<Theme>
<Router history={history}>
<ListPage />
</Router>
</Theme>
</ThemeToggleProvider>
</TrackingContext.Provider>
</IntlProvider>
);

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