Bläddra i källkod

Merge branch 'master' into minor

Michael Bromley 9 månader sedan
förälder
incheckning
616086a2de
100 ändrade filer med 3198 tillägg och 4389 borttagningar
  1. 1 1
      docs/docs/guides/deployment/using-docker.md
  2. 80 233
      docs/docs/guides/developer-guide/scheduled-tasks/index.md
  3. 0 12
      docs/docs/reference/graphql-api/admin/input-types.md
  4. 0 9
      docs/docs/reference/graphql-api/admin/mutations.md
  5. 0 26
      docs/docs/reference/graphql-api/admin/object-types.md
  6. 0 9
      docs/docs/reference/graphql-api/admin/queries.md
  7. 0 36
      docs/docs/reference/graphql-api/shop/object-types.md
  8. 0 24
      docs/docs/reference/graphql-api/shop/queries.md
  9. 1 1
      docs/docs/reference/typescript-api/assets/asset-options.md
  10. 1 1
      docs/docs/reference/typescript-api/auth/auth-options.md
  11. 1 1
      docs/docs/reference/typescript-api/auth/cookie-options.md
  12. 1 1
      docs/docs/reference/typescript-api/auth/superadmin-credentials.md
  13. 1 1
      docs/docs/reference/typescript-api/common/permission.md
  14. 1 1
      docs/docs/reference/typescript-api/configuration/api-options.md
  15. 1 1
      docs/docs/reference/typescript-api/configuration/entity-options.md
  16. 1 7
      docs/docs/reference/typescript-api/configuration/runtime-vendure-config.md
  17. 1 1
      docs/docs/reference/typescript-api/configuration/system-options.md
  18. 1 7
      docs/docs/reference/typescript-api/configuration/vendure-config.md
  19. 1 1
      docs/docs/reference/typescript-api/import-export/import-export-options.md
  20. 1 1
      docs/docs/reference/typescript-api/job-queue/job-queue-options.md
  21. 1 1
      docs/docs/reference/typescript-api/orders/order-options.md
  22. 1 1
      docs/docs/reference/typescript-api/payment/payment-options.md
  23. 1 1
      docs/docs/reference/typescript-api/products-stock/catalog-options.md
  24. 1 1
      docs/docs/reference/typescript-api/promotions/promotion-options.md
  25. 0 44
      docs/docs/reference/typescript-api/scheduled-tasks/clean-sessions-task.md
  26. 0 83
      docs/docs/reference/typescript-api/scheduled-tasks/default-scheduler-plugin.md
  27. 0 68
      docs/docs/reference/typescript-api/scheduled-tasks/default-scheduler-strategy.md
  28. 0 14
      docs/docs/reference/typescript-api/scheduled-tasks/index.md
  29. 0 164
      docs/docs/reference/typescript-api/scheduled-tasks/scheduled-task.md
  30. 0 41
      docs/docs/reference/typescript-api/scheduled-tasks/scheduler-options.md
  31. 0 54
      docs/docs/reference/typescript-api/scheduled-tasks/scheduler-service.md
  32. 0 119
      docs/docs/reference/typescript-api/scheduled-tasks/scheduler-strategy.md
  33. 5 23
      docs/docs/reference/typescript-api/services/session-service.md
  34. 1 1
      docs/docs/reference/typescript-api/shipping/shipping-options.md
  35. 1 1
      docs/docs/reference/typescript-api/tax/tax-options.md
  36. 1257 360
      package-lock.json
  37. 3 3
      packages/admin-ui-plugin/package.json
  38. 4 1
      packages/admin-ui-plugin/src/plugin.ts
  39. 0 3
      packages/admin-ui/.eslintrc.json
  40. 52 52
      packages/admin-ui/i18n-coverage.json
  41. 2 2
      packages/admin-ui/scripts/extract-translations.js
  42. 0 37
      packages/admin-ui/src/lib/core/src/common/generated-types.ts
  43. 0 6
      packages/admin-ui/src/lib/core/src/components/base-nav/base-nav.component.ts
  44. 2 2
      packages/admin-ui/src/lib/core/src/shared/pipes/locale-base.pipe.ts
  45. 39 52
      packages/admin-ui/src/lib/static/i18n-messages/ar.json
  46. 198 211
      packages/admin-ui/src/lib/static/i18n-messages/cs.json
  47. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/de.json
  48. 7 16
      packages/admin-ui/src/lib/static/i18n-messages/en.json
  49. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/es.json
  50. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/fa.json
  51. 6 19
      packages/admin-ui/src/lib/static/i18n-messages/fr.json
  52. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/he.json
  53. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/hr.json
  54. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/it.json
  55. 8 17
      packages/admin-ui/src/lib/static/i18n-messages/ja.json
  56. 7 22
      packages/admin-ui/src/lib/static/i18n-messages/nb.json
  57. 15 28
      packages/admin-ui/src/lib/static/i18n-messages/ne.json
  58. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/pl.json
  59. 2 15
      packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json
  60. 5 17
      packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json
  61. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/ru.json
  62. 11 31
      packages/admin-ui/src/lib/static/i18n-messages/sv.json
  63. 813 826
      packages/admin-ui/src/lib/static/i18n-messages/tr.json
  64. 4 17
      packages/admin-ui/src/lib/static/i18n-messages/uk.json
  65. 224 237
      packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json
  66. 356 364
      packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json
  67. 0 96
      packages/admin-ui/src/lib/system/src/components/scheduled-tasks/scheduled-task-list.component.html
  68. 0 8
      packages/admin-ui/src/lib/system/src/components/scheduled-tasks/scheduled-task-list.component.scss
  69. 0 72
      packages/admin-ui/src/lib/system/src/components/scheduled-tasks/scheduled-task-list.component.ts
  70. 0 1
      packages/admin-ui/src/lib/system/src/public_api.ts
  71. 1 7
      packages/admin-ui/src/lib/system/src/system.module.ts
  72. 0 8
      packages/admin-ui/src/lib/system/src/system.routes.ts
  73. 0 23
      packages/asset-server-plugin/e2e/graphql/generated-e2e-asset-server-plugin-types.ts
  74. 2 2
      packages/asset-server-plugin/package.json
  75. 0 25
      packages/common/src/generated-types.ts
  76. 0 23
      packages/core/e2e/graphql/generated-e2e-admin-types.ts
  77. 8 11
      packages/core/package.json
  78. 0 4
      packages/core/src/api/api-internal-modules.ts
  79. 0 22
      packages/core/src/api/resolvers/admin/scheduled-task.resolver.ts
  80. 1 1
      packages/core/src/api/schema/admin-api/province.api.graphql
  81. 0 24
      packages/core/src/api/schema/admin-api/scheduled-task.api.graphql
  82. 13 1
      packages/core/src/config/asset-storage-strategy/asset-storage-strategy.ts
  83. 0 2
      packages/core/src/config/config.module.ts
  84. 0 5
      packages/core/src/config/config.service.ts
  85. 2 7
      packages/core/src/config/default-config.ts
  86. 0 33
      packages/core/src/config/vendure-config.ts
  87. 3 1
      packages/core/src/i18n/i18n.service.ts
  88. 0 1
      packages/core/src/index.ts
  89. 0 2
      packages/core/src/plugin/default-scheduler-plugin/constants.ts
  90. 0 174
      packages/core/src/plugin/default-scheduler-plugin/default-scheduler-strategy.ts
  91. 0 59
      packages/core/src/plugin/default-scheduler-plugin/default-scheduler.plugin.ts
  92. 0 26
      packages/core/src/plugin/default-scheduler-plugin/scheduled-task-record.entity.ts
  93. 0 17
      packages/core/src/plugin/default-scheduler-plugin/types.ts
  94. 0 1
      packages/core/src/plugin/index.ts
  95. 17 19
      packages/core/src/plugin/plugin-utils.ts
  96. 0 4
      packages/core/src/scheduler/index.ts
  97. 0 25
      packages/core/src/scheduler/noop-scheduler-strategy.ts
  98. 0 138
      packages/core/src/scheduler/scheduled-task.ts
  99. 0 71
      packages/core/src/scheduler/scheduler-strategy.ts
  100. 0 12
      packages/core/src/scheduler/scheduler.module.ts

+ 1 - 1
docs/docs/guides/deployment/using-docker.md

@@ -10,7 +10,7 @@ weight: 3
 The default installation with `@vendure/create` includes a sample Dockerfile:
 The default installation with `@vendure/create` includes a sample Dockerfile:
 
 
 ```dockerfile title="Dockerfile"
 ```dockerfile title="Dockerfile"
-FROM node:16
+FROM node:22
 
 
 WORKDIR /usr/src/app
 WORKDIR /usr/src/app
 
 

+ 80 - 233
docs/docs/guides/developer-guide/scheduled-tasks/index.md

@@ -1,9 +1,9 @@
 ---
 ---
-title: 'Scheduled Tasks'
+title: "Scheduled Tasks"
 showtoc: true
 showtoc: true
 ---
 ---
 
 
-Scheduled tasks are a way of executing some code at pre-defined intervals. There are many examples of work that can be done using scheduled tasks,
+Scheduled tasks are a way of executing some code at pre-defined intervals. There are many examples of work that can be done using scheduled tasks, 
 such as:
 such as:
 
 
 - Generating a sitemap
 - Generating a sitemap
@@ -11,284 +11,131 @@ such as:
 - Sending abandoned cart emails
 - Sending abandoned cart emails
 - Cleaning up old data
 - Cleaning up old data
 
 
-Since Vendure v3.3, there is a built-in mechanism which allows you to define scheduled tasks in a convenient and powerful way.
-
-:::info
-All the information on page applies to Vendure v3.3+
-
-For older versions, there is no built-in support for scheduled tasks, but you can
-instead use a [stand-alone script](/guides/developer-guide/stand-alone-scripts/) triggered by a cron job.
-:::
-
-## Setting up the DefaultSchedulerPlugin
-
-In your Vendure config, import and add the [DefaultSchedulerPlugin](/reference/typescript-api/scheduled-tasks/default-scheduler-plugin) to your
-plugins array. If you created your project with a version newer than v3.3, this should already be configured.
-
-```ts title="vendure-config.ts"
-import { DefaultSchedulerPlugin, VendureConfig } from '@vendure/core';
-
-export const config: VendureConfig = {
-    // ...
-    plugins: [DefaultSchedulerPlugin.init()],
-};
-```
-
-When you first add this plugin to your config, you'll need to [generate a migration](/guides/developer-guide/migrations/) because the
-plugin will make use of a new database table in order to guarantee only-once execution of tasks.
-
-You can then start adding tasks. Vendure ships with a task that will clean up old sessions from the database.
-
-:::note
-The `cleanSessionsTask` task is actually configured by default from v3.3+, so normally you won't have to specify this
-manually unless you wish to change any of the default configuration using the `.configure()` method.
-:::
-
-```ts title="vendure-config.ts"
-import { cleanSessionsTask, DefaultSchedulerPlugin, VendureConfig } from '@vendure/core';
-
-export const config: VendureConfig = {
-    // ...
-    schedulerOptions: {
-        tasks: [
-            // Use the task as is
-            cleanSessionsTask,
-            // or further configure the task
-            cleanSessionsTask.configure({
-                // Run the task every day at 3:00am
-                // The default schedule is every day at 00:00am
-                schedule: cron => cron.everyDayAt(3, 0),
-                params: {
-                    // How many sessions to process in each batch
-                    // Default: 10_000
-                    batchSize: 5_000,
-                },
-            }),
-        ],
-    },
-    plugins: [DefaultSchedulerPlugin.init()],
-};
-```
+In Vendure you can create scheduled tasks by defining a [standalone script](/guides/developer-guide/stand-alone-scripts/) which can then 
+be executed via any scheduling mechanism you like, such as a cron job or similar mechanism provided by your hosting provider.
 
 
 ## Creating a Scheduled Task
 ## Creating a Scheduled Task
 
 
-Let's imagine that you have created a `SitemapPlugin` that exposes a `SitemapService` which generates a sitemap for your store. You want to run this
-task every night at midnight.
-
-Inside the plugin, you would first define a new [ScheduledTask](/reference/typescript-api/scheduled-tasks/scheduled-task) instance:
-
-```ts title="/plugins/sitemap/config/generate-sitemap-task.ts"
-import { ScheduledTask, RequestContextService } from '@vendure/core';
-
-import { SitemapService } from '../services/sitemap.service';
-
-export const generateSitemapTask = new ScheduledTask({
-    // Give your task a unique ID
-    id: 'generate-sitemap',
-    // A human-readable description of the task
-    description: 'Generates a sitemap file',
-    // Params can be used to further configure aspects of the
-    // task. They get passed in to the `execute` function as the
-    // second argument.
-    // They can be later modified using the `.configure()` method on the instance
-    params: {
-        shopBaseUrl: 'https://www.myshop.com',
-    },
-    // Define a default schedule. This can be modified using the
-    // `.configure()` method on the instance later.
-    schedule: cron => cron.everyDayAt(0, 0),
-    // This is the function that will be executed per the schedule.
-    async execute(injector, params) {
-        // Using `app.get()` we can grab an instance of _any_ provider defined in the
-        // Vendure core as well as by our plugins.
-        const sitemapService = app.get(SitemapService);
-
-        // For most service methods, we'll need to pass a RequestContext object.
-        // We can use the RequestContextService to create one.
-        const ctx = await app.get(RequestContextService).create({
-            apiType: 'admin',
-        });
+Let's imagine that you have created a plugin that exposes a `SitemapService` which generates a sitemap for your store. You want to run this
+task every night at midnight. 
 
 
-        // Here's the actual work we want to perform.
-        const result = await sitemapService.generateSitemap(ctx);
+First we need to create a standalone script which will run the task. This script will look something like this:
 
 
-        // The return value from the `execute` function will be available
-        // as the `lastResult` property when viewing tasks.
-        return { result };
-    },
-});
-```
+```ts title="scheduled-tasks.ts"
+import { bootstrapWorker, Logger, RequestContextService } from '@vendure/core';
+import { SitemapService } from './plugins/sitemap';
 
 
-## Using a task
-
-Now that the task has been defined, we need to tell Vendure to use it.
-
-To do so we need to add it to the [schedulerOptions.tasks](/reference/typescript-api/scheduled-tasks/scheduler-options#tasks) array.
-
-### Adding directly in Vendure config
-
-This can be done directly in your Vendure config file:
-
-```ts title="vendure-config.ts"
-import { cleanSessionsTask, DefaultSchedulerPlugin, VendureConfig } from '@vendure/core';
-
-// highlight-next-line
-import { SitemapPlugin, generateSitemapTask } from './plugins/sitemap';
-
-export const config: VendureConfig = {
-    // ...
-    schedulerOptions: {
-        tasks: [
-            cleanSessionsTask,
-            // highlight-start
-            // Here's an example of overriding the
-            // default params using the `configure()` method.
-            generateSitemapTask.configure({
-                params: {
-                    shopBaseUrl: 'https://www.shoes.com'
-                }
-            }),
-            // highlight-end
-        ],
-    },
-    plugins: [
-        // highlight-next-line
-        SitemapPlugin,
-        DefaultSchedulerPlugin.init()
-    ],
-};
-```
+import { config } from './vendure-config';
 
 
-### Adding in plugin configuration function
-
-An alternative is that a plugin can automatically add the task to the config using the
-plugin's [configuration function](/reference/typescript-api/plugin/vendure-plugin-metadata#configuration), which allows plugins to alter the Vendure config.
-
-This allows a plugin to encapsulate any scheduled tasks so that the plugin consumer only needs to add the plugin, and not worry about
-separately adding the task to the tasks array.
-
-```ts title="src/plugins/sitemap/sitemap.plugin.ts"
-import { VendurePlugin, PluginCommonModule, Type, ScheduledTask, VendureConfig } from '@vendure/core';
-
-import { PLUGIN_OPTIONS } from './constants';
-import { SitemapPluginOptions } from './types';
-import { SitemapService } from './services/sitemap.service';
-import { generateSitemapTask } from './config/generate-sitemap-task';
-
-@VendurePlugin({
-    imports: [PluginCommonModule],
-    providers: [SitemapService],
-    configuration: (config: VendureConfig) => {
-        // highlight-start
-        // Add the task to the schedulerOptions.tasks array
-        config.schedulerOptions.tasks.push(
-            generateSitemapTask.configure({
-                params: {
-                    shopBaseUrl: SitemapPlugin.options.shopBaseUrl,
-                }
-            })
-        );
-        // highlight-end
-        return config;
-    },
-})
-export class SitemapPlugin {
-    static options: SitemapPluginOptions;
-
-    static init(options?: SitemapPluginOptions) {
-        this.options = {
-            shopBaseUrl: '',
-            ...(options ?? {}),
-        }
-    }
+if (require.main === module) {
+    generateSitemap()
+        .then(() => process.exit(0))
+        .catch(err => {
+            Logger.error(err);
+            process.exit(1);
+        });
 }
 }
-```
 
 
-This plugin can now be consumed like this:
-
-```ts title="vendure-config.ts"
-import { DefaultSchedulerPlugin, VendureConfig } from '@vendure/core';
-
-// highlight-next-line
-import { SitemapPlugin } from './plugins/sitemap';
-
-export const config: VendureConfig = {
-    // ...
-    plugins: [
-        // highlight-start
-        SitemapPlugin.init({
-            shopBaseUrl: 'https://www.shoes.com'
-        }),
-        // highlight-end
-        DefaultSchedulerPlugin.init()
-    ],
-};
+async function generateSitemap() {
+    // This will bootstrap an instance of the Vendure Worker, providing
+    // us access to all of the services defined in the Vendure core.
+    // (but without the unnecessary overhead of the API layer).
+    const { app } = await bootstrapWorker(config);
+
+    // Using `app.get()` we can grab an instance of _any_ provider defined in the
+    // Vendure core as well as by our plugins.
+    const sitemapService = app.get(SitemapService);
+
+    // For most service methods, we'll need to pass a RequestContext object.
+    // We can use the RequestContextService to create one.
+    const ctx = await app.get(RequestContextService).create({
+        apiType: 'admin',
+    });
+    
+    await sitemapService.generateSitemap(ctx);
+
+    Logger.info(`Completed sitemap generation`);
+}
 ```
 ```
 
 
-## How scheduled tasks work
+### Schedule the task
 
 
-The key problems solved by Vendure's task scheduler are:
+Each hosting provider has its own way of scheduling tasks. A common way is to use a cron job. 
+For example, to run the above script every night at midnight, you could add the following line to your crontab:
 
 
-- Ensuring that a task is only run a single time per scheduled execution, even when you have multiple instances of servers and workers running.
-- Keeping scheduled task work away from the server instances, so that it does not affect API responsiveness.
+```bash
+0 0 * * * node /path/to/scheduled-tasks.js
+```
 
 
-The first problem is handled by the [SchedulerStrategy](/reference/typescript-api/scheduled-tasks/scheduler-strategy), which implements a locking
-mechanism to ensure that the task is executed only once.
+This will run the script `/path/to/scheduled-tasks.js` every night at midnight.
 
 
-The second problem is handled by having tasks only executed on worker processes.
+### Long-running tasks
 
 
-## Scheduled tasks vs job queue
+What if the scheduled task does a significant amount of work that would take many minutes to complete? In this case
+you should consider using the [job queue](/guides/developer-guide/worker-job-queue/#using-job-queues-in-a-plugin) to
+execute the work on the worker.
 
 
-There is some overlap between the use of a scheduled task and a [job queue job](/guides/developer-guide/worker-job-queue/). They both perform some
-task on the worker, independent of requests coming in to the server.
+Taking the above example, let's now imagine that the `SitemapService` exposes a `triggerGenerate()` method which
+adds a new job to the job queue. The job queue will then execute the task in the background, allowing the scheduled
+task to complete quickly.
 
 
-The first difference is that jobs must be triggered explicitly, whereas scheduled tasks are triggered automatically according to the schedule.
+```ts title="scheduled-tasks.ts"
+import { bootstrapWorker, Logger, RequestContextService } from '@vendure/core';
+import { SitemapService } from './plugins/sitemap';
 
 
-Secondly, jobs are put in a _queue_ and executed once any prior pending jobs have been processed. On the other hand, scheduled tasks are executed
-as soon as the schedule dictates.
+import { config } from './vendure-config';
 
 
-It is possible to combine the two: namely, you can define a scheduled task which adds a job to the job queue. This is, for instance, how the
-built-in [cleanSessionsTask](/reference/typescript-api/scheduled-tasks/clean-sessions-task) works. This pattern is something you should
-consider if the scheduled task may take a significant amount of time or resources and you want to let the job queue manage that.
+if (require.main === module) {
+    generateSitemap()
+        .then(() => process.exit(0))
+        .catch(err => {
+            Logger.error(err);
+            process.exit(1);
+        });
+}
 
 
-It also has the advantage of giving you a record of results for that work that has been put on the job queue, whereas scheduled tasks
-only record that result of the last execution.
+async function generateSitemap() {
+    const { app } = await bootstrapWorker(config);
+    const sitemapService = app.get(SitemapService);
+    const ctx = await app.get(RequestContextService).create({
+        apiType: 'admin',
+    });
+    
+    await sitemapService.triggerGenerate(ctx);
 
 
+    Logger.info(`Sitemap generation triggered`);
+}
+```
 
 
-## A note on @nestjs/schedule
+## Using @nestjs/schedule
 
 
-NestJS provides a [dedicated package for scheduling tasks](https://docs.nestjs.com/techniques/task-scheduling), called `@nestjs/schedule`.
+NestJS provides a [dedicated package for scheduling tasks](https://docs.nestjs.com/techniques/task-scheduling), called `@nestjs/schedule`. 
 
 
 You can also use this approach to schedule tasks, but you need to aware of a very important caveat:
 You can also use this approach to schedule tasks, but you need to aware of a very important caveat:
 
 
 :::warning
 :::warning
 When using `@nestjs/schedule`, any method decorated with the `@Cron()` decorator will run
 When using `@nestjs/schedule`, any method decorated with the `@Cron()` decorator will run
-on _all_ instances of the application. This means it will run on the server _and_ on the
+on _all_ instances of the application. This means it will run on the server _and_ on the 
 worker. If you are running multiple instances, then it will run on all instances.
 worker. If you are running multiple instances, then it will run on all instances.
-
-This is the specific issue solved by the built-in ScheduledTask system described above.
-Therefore it is not recommended to use the `@nestjs/schedule` package under normal
-circumstances.
 :::
 :::
 
 
-You can, for instance, inject the [ProcessContext](/reference/typescript-api/common/process-context) into the service and check if the current instance is the worker or the server.
+You can, for instance, inject the ProcessContext into the service and check if the current instance is the worker or the server.
 
 
 ```ts
 ```ts
 import { Injectable } from '@nestjs/common';
 import { Injectable } from '@nestjs/common';
 import { Cron } from '@nestjs/schedule';
 import { Cron } from '@nestjs/schedule';
 
 
+
 @Injectable()
 @Injectable()
 export class SitemapService {
 export class SitemapService {
     constructor(private processContext: ProcessContext) {}
     constructor(private processContext: ProcessContext) {}
 
 
     @Cron('0 0 * * *')
     @Cron('0 0 * * *')
     async generateSitemap() {
     async generateSitemap() {
-        // highlight-start
         if (this.processContext.isWorker) {
         if (this.processContext.isWorker) {
             // Only run on the worker
             // Only run on the worker
             await this.triggerGenerate();
             await this.triggerGenerate();
         }
         }
-        // highlight-end
     }
     }
 }
 }
 ```
 ```

+ 0 - 12
docs/docs/reference/graphql-api/admin/input-types.md

@@ -4321,18 +4321,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">channelIds: [<a href="/reference/graphql-api/admin/object-types#id">ID</a>!]</div>
 <div class="graphql-code-line ">channelIds: [<a href="/reference/graphql-api/admin/object-types#id">ID</a>!]</div>
 
 
 
 
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## UpdateScheduledTaskInput
-
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">input <span class="graphql-code-identifier">UpdateScheduledTaskInput</span> &#123;</div>
-<div class="graphql-code-line ">id: <a href="/reference/graphql-api/admin/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">enabled: <a href="/reference/graphql-api/admin/object-types#boolean">Boolean</a></div>
-
-
 <div class="graphql-code-line top-level">&#125;</div>
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 </div>
 
 

+ 0 - 9
docs/docs/reference/graphql-api/admin/mutations.md

@@ -1838,15 +1838,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">updateRole(input: <a href="/reference/graphql-api/admin/input-types#updateroleinput">UpdateRoleInput</a>!): <a href="/reference/graphql-api/admin/object-types#role">Role</a>!</div>
 <div class="graphql-code-line ">updateRole(input: <a href="/reference/graphql-api/admin/input-types#updateroleinput">UpdateRoleInput</a>!): <a href="/reference/graphql-api/admin/object-types#role">Role</a>!</div>
 
 
 
 
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## updateScheduledTask
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Mutation</span> &#123;</div>
-<div class="graphql-code-line ">updateScheduledTask(input: <a href="/reference/graphql-api/admin/input-types#updatescheduledtaskinput">UpdateScheduledTaskInput</a>!): <a href="/reference/graphql-api/admin/object-types#scheduledtask">ScheduledTask</a>!</div>
-
-
 <div class="graphql-code-line top-level">&#125;</div>
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 </div>
 
 

+ 0 - 26
docs/docs/reference/graphql-api/admin/object-types.md

@@ -3519,32 +3519,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">customFields: <a href="/reference/graphql-api/admin/object-types#json">JSON</a></div>
 <div class="graphql-code-line ">customFields: <a href="/reference/graphql-api/admin/object-types#json">JSON</a></div>
 
 
 
 
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## ScheduledTask
-
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">ScheduledTask</span> &#123;</div>
-<div class="graphql-code-line ">id: <a href="/reference/graphql-api/admin/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">description: <a href="/reference/graphql-api/admin/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">schedule: <a href="/reference/graphql-api/admin/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">scheduleDescription: <a href="/reference/graphql-api/admin/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">lastExecutedAt: <a href="/reference/graphql-api/admin/object-types#datetime">DateTime</a></div>
-
-<div class="graphql-code-line ">nextExecutionAt: <a href="/reference/graphql-api/admin/object-types#datetime">DateTime</a></div>
-
-<div class="graphql-code-line ">isRunning: <a href="/reference/graphql-api/admin/object-types#boolean">Boolean</a>!</div>
-
-<div class="graphql-code-line ">lastResult: <a href="/reference/graphql-api/admin/object-types#json">JSON</a></div>
-
-<div class="graphql-code-line ">enabled: <a href="/reference/graphql-api/admin/object-types#boolean">Boolean</a>!</div>
-
-
 <div class="graphql-code-line top-level">&#125;</div>
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 </div>
 
 

+ 0 - 9
docs/docs/reference/graphql-api/admin/queries.md

@@ -517,15 +517,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">roles(options: <a href="/reference/graphql-api/admin/input-types#rolelistoptions">RoleListOptions</a>): <a href="/reference/graphql-api/admin/object-types#rolelist">RoleList</a>!</div>
 <div class="graphql-code-line ">roles(options: <a href="/reference/graphql-api/admin/input-types#rolelistoptions">RoleListOptions</a>): <a href="/reference/graphql-api/admin/object-types#rolelist">RoleList</a>!</div>
 
 
 
 
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## scheduledTasks
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Query</span> &#123;</div>
-<div class="graphql-code-line ">scheduledTasks: [<a href="/reference/graphql-api/admin/object-types#scheduledtask">ScheduledTask</a>!]!</div>
-
-
 <div class="graphql-code-line top-level">&#125;</div>
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 </div>
 
 

+ 0 - 36
docs/docs/reference/graphql-api/shop/object-types.md

@@ -2432,42 +2432,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">totalItems: <a href="/reference/graphql-api/shop/object-types#int">Int</a>!</div>
 <div class="graphql-code-line ">totalItems: <a href="/reference/graphql-api/shop/object-types#int">Int</a>!</div>
 
 
 
 
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## PublicPaymentMethod
-
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">PublicPaymentMethod</span> &#123;</div>
-<div class="graphql-code-line ">id: <a href="/reference/graphql-api/shop/object-types#id">ID</a>!</div>
-
-<div class="graphql-code-line ">code: <a href="/reference/graphql-api/shop/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">name: <a href="/reference/graphql-api/shop/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">description: <a href="/reference/graphql-api/shop/object-types#string">String</a></div>
-
-<div class="graphql-code-line ">translations: [<a href="/reference/graphql-api/shop/object-types#paymentmethodtranslation">PaymentMethodTranslation</a>!]!</div>
-
-
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## PublicShippingMethod
-
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">PublicShippingMethod</span> &#123;</div>
-<div class="graphql-code-line ">id: <a href="/reference/graphql-api/shop/object-types#id">ID</a>!</div>
-
-<div class="graphql-code-line ">code: <a href="/reference/graphql-api/shop/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">name: <a href="/reference/graphql-api/shop/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">description: <a href="/reference/graphql-api/shop/object-types#string">String</a></div>
-
-<div class="graphql-code-line ">translations: [<a href="/reference/graphql-api/shop/object-types#shippingmethodtranslation">ShippingMethodTranslation</a>!]!</div>
-
-
 <div class="graphql-code-line top-level">&#125;</div>
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 </div>
 
 

+ 0 - 24
docs/docs/reference/graphql-api/shop/queries.md

@@ -47,30 +47,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">activeOrder: <a href="/reference/graphql-api/shop/object-types#order">Order</a></div>
 <div class="graphql-code-line ">activeOrder: <a href="/reference/graphql-api/shop/object-types#order">Order</a></div>
 
 
 
 
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## activePaymentMethods
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level comment">Get active payment methods</div>
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Query</span> &#123;</div>
-<div class="graphql-code-line ">activePaymentMethods: [<a href="/reference/graphql-api/shop/object-types#publicpaymentmethod">PublicPaymentMethod</a>]!</div>
-
-
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## activeShippingMethods
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level comment">Get active shipping methods</div>
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Query</span> &#123;</div>
-<div class="graphql-code-line ">activeShippingMethods: [<a href="/reference/graphql-api/shop/object-types#publicshippingmethod">PublicShippingMethod</a>]!</div>
-
-
 <div class="graphql-code-line top-level">&#125;</div>
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 </div>
 
 

+ 1 - 1
docs/docs/reference/typescript-api/assets/asset-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## AssetOptions
 ## AssetOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="650" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="648" packageName="@vendure/core" />
 
 
 The AssetOptions define how assets (images and other files) are named and stored, and how preview images are generated.
 The AssetOptions define how assets (images and other files) are named and stored, and how preview images are generated.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/auth/auth-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## AuthOptions
 ## AuthOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="335" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="333" packageName="@vendure/core" />
 
 
 The AuthOptions define how authentication and authorization is managed.
 The AuthOptions define how authentication and authorization is managed.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/auth/cookie-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## CookieOptions
 ## CookieOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="230" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="228" packageName="@vendure/core" />
 
 
 Options for the handling of the cookies used to track sessions (only applicable if
 Options for the handling of the cookies used to track sessions (only applicable if
 `authOptions.tokenMethod` is set to `'cookie'`). These options are passed directly
 `authOptions.tokenMethod` is set to `'cookie'`). These options are passed directly

+ 1 - 1
docs/docs/reference/typescript-api/auth/superadmin-credentials.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## SuperadminCredentials
 ## SuperadminCredentials
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="826" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="824" packageName="@vendure/core" />
 
 
 These credentials will be used to create the Superadmin user & administrator
 These credentials will be used to create the Superadmin user & administrator
 when Vendure first bootstraps.
 when Vendure first bootstraps.

+ 1 - 1
docs/docs/reference/typescript-api/common/permission.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## Permission
 ## Permission
 
 
-<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="4443" packageName="@vendure/common" />
+<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="4437" packageName="@vendure/common" />
 
 
 Permissions for administrators and customers. Used to control access to
 Permissions for administrators and customers. Used to control access to
 GraphQL resolvers via the <a href='/reference/typescript-api/request/allow-decorator#allow'>Allow</a> decorator.
 GraphQL resolvers via the <a href='/reference/typescript-api/request/allow-decorator#allow'>Allow</a> decorator.

+ 1 - 1
docs/docs/reference/typescript-api/configuration/api-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ApiOptions
 ## ApiOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="73" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="71" packageName="@vendure/core" />
 
 
 The ApiOptions define how the Vendure GraphQL APIs are exposed, as well as allowing the API layer
 The ApiOptions define how the Vendure GraphQL APIs are exposed, as well as allowing the API layer
 to be extended with middleware.
 to be extended with middleware.

+ 1 - 1
docs/docs/reference/typescript-api/configuration/entity-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## EntityOptions
 ## EntityOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="999" packageName="@vendure/core" since="1.3.0" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="974" packageName="@vendure/core" since="1.3.0" />
 
 
 Options relating to the internal handling of entities.
 Options relating to the internal handling of entities.
 
 

+ 1 - 7
docs/docs/reference/typescript-api/configuration/runtime-vendure-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## RuntimeVendureConfig
 ## RuntimeVendureConfig
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1262" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1230" packageName="@vendure/core" />
 
 
 This interface represents the VendureConfig object available at run-time, i.e. the user-supplied
 This interface represents the VendureConfig object available at run-time, i.e. the user-supplied
 config values have been merged with the <a href='/reference/typescript-api/configuration/default-config#defaultconfig'>defaultConfig</a> values.
 config values have been merged with the <a href='/reference/typescript-api/configuration/default-config#defaultconfig'>defaultConfig</a> values.
@@ -26,7 +26,6 @@ interface RuntimeVendureConfig extends Required<VendureConfig> {
     entityOptions: Required<Omit<EntityOptions, 'entityIdStrategy'>> & EntityOptions;
     entityOptions: Required<Omit<EntityOptions, 'entityIdStrategy'>> & EntityOptions;
     importExportOptions: Required<ImportExportOptions>;
     importExportOptions: Required<ImportExportOptions>;
     jobQueueOptions: Required<JobQueueOptions>;
     jobQueueOptions: Required<JobQueueOptions>;
-    schedulerOptions: Required<SchedulerOptions>;
     orderOptions: Required<OrderOptions>;
     orderOptions: Required<OrderOptions>;
     promotionOptions: Required<PromotionOptions>;
     promotionOptions: Required<PromotionOptions>;
     shippingOptions: Required<ShippingOptions>;
     shippingOptions: Required<ShippingOptions>;
@@ -80,11 +79,6 @@ interface RuntimeVendureConfig extends Required<VendureConfig> {
 <MemberInfo kind="property" type={`Required&#60;<a href='/reference/typescript-api/job-queue/job-queue-options#jobqueueoptions'>JobQueueOptions</a>&#62;`}   />
 <MemberInfo kind="property" type={`Required&#60;<a href='/reference/typescript-api/job-queue/job-queue-options#jobqueueoptions'>JobQueueOptions</a>&#62;`}   />
 
 
 
 
-### schedulerOptions
-
-<MemberInfo kind="property" type={`Required&#60;<a href='/reference/typescript-api/scheduled-tasks/scheduler-options#scheduleroptions'>SchedulerOptions</a>&#62;`}   />
-
-
 ### orderOptions
 ### orderOptions
 
 
 <MemberInfo kind="property" type={`Required&#60;<a href='/reference/typescript-api/orders/order-options#orderoptions'>OrderOptions</a>&#62;`}   />
 <MemberInfo kind="property" type={`Required&#60;<a href='/reference/typescript-api/orders/order-options#orderoptions'>OrderOptions</a>&#62;`}   />

+ 1 - 1
docs/docs/reference/typescript-api/configuration/system-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## SystemOptions
 ## SystemOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1088" packageName="@vendure/core" since="1.6.0" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1063" packageName="@vendure/core" since="1.6.0" />
 
 
 Options relating to system functions.
 Options relating to system functions.
 
 

+ 1 - 7
docs/docs/reference/typescript-api/configuration/vendure-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## VendureConfig
 ## VendureConfig
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1125" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1100" packageName="@vendure/core" />
 
 
 All possible configuration options are defined by the
 All possible configuration options are defined by the
 [`VendureConfig`](https://github.com/vendure-ecommerce/vendure/blob/master/packages/core/src/config/vendure-config.ts) interface.
 [`VendureConfig`](https://github.com/vendure-ecommerce/vendure/blob/master/packages/core/src/config/vendure-config.ts) interface.
@@ -37,7 +37,6 @@ interface VendureConfig {
     logger?: VendureLogger;
     logger?: VendureLogger;
     taxOptions?: TaxOptions;
     taxOptions?: TaxOptions;
     jobQueueOptions?: JobQueueOptions;
     jobQueueOptions?: JobQueueOptions;
-    schedulerOptions?: SchedulerOptions;
     systemOptions?: SystemOptions;
     systemOptions?: SystemOptions;
 }
 }
 ```
 ```
@@ -148,11 +147,6 @@ Configures how taxes are calculated on products.
 <MemberInfo kind="property" type={`<a href='/reference/typescript-api/job-queue/job-queue-options#jobqueueoptions'>JobQueueOptions</a>`}   />
 <MemberInfo kind="property" type={`<a href='/reference/typescript-api/job-queue/job-queue-options#jobqueueoptions'>JobQueueOptions</a>`}   />
 
 
 Configures how the job queue is persisted and processed.
 Configures how the job queue is persisted and processed.
-### schedulerOptions
-
-<MemberInfo kind="property" type={`<a href='/reference/typescript-api/scheduled-tasks/scheduler-options#scheduleroptions'>SchedulerOptions</a>`}  since="3.3.0"  />
-
-Configures the scheduler mechanism and tasks.
 ### systemOptions
 ### systemOptions
 
 
 <MemberInfo kind="property" type={`<a href='/reference/typescript-api/configuration/system-options#systemoptions'>SystemOptions</a>`}  since="1.6.0"  />
 <MemberInfo kind="property" type={`<a href='/reference/typescript-api/configuration/system-options#systemoptions'>SystemOptions</a>`}  since="1.6.0"  />

+ 1 - 1
docs/docs/reference/typescript-api/import-export/import-export-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ImportExportOptions
 ## ImportExportOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="911" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="909" packageName="@vendure/core" />
 
 
 Options related to importing & exporting data.
 Options related to importing & exporting data.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/job-queue/job-queue-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## JobQueueOptions
 ## JobQueueOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="935" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="933" packageName="@vendure/core" />
 
 
 Options related to the built-in job queue.
 Options related to the built-in job queue.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/orders/order-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## OrderOptions
 ## OrderOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="496" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="494" packageName="@vendure/core" />
 
 
 
 
 
 

+ 1 - 1
docs/docs/reference/typescript-api/payment/payment-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## PaymentOptions
 ## PaymentOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="848" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="846" packageName="@vendure/core" />
 
 
 Defines payment-related options in the <a href='/reference/typescript-api/configuration/vendure-config#vendureconfig'>VendureConfig</a>.
 Defines payment-related options in the <a href='/reference/typescript-api/configuration/vendure-config#vendureconfig'>VendureConfig</a>.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/products-stock/catalog-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## CatalogOptions
 ## CatalogOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="697" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="695" packageName="@vendure/core" />
 
 
 Options related to products and collections.
 Options related to products and collections.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/promotions/promotion-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## PromotionOptions
 ## PromotionOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="759" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="757" packageName="@vendure/core" />
 
 
 
 
 
 

+ 0 - 44
docs/docs/reference/typescript-api/scheduled-tasks/clean-sessions-task.md

@@ -1,44 +0,0 @@
----
-title: "CleanSessionsTask"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## cleanSessionsTask
-
-<GenerationInfo sourceFile="packages/core/src/scheduler/tasks/clean-sessions-task.ts" sourceLine="37" packageName="@vendure/core" since="3.3.0" />
-
-A scheduled task that cleans expired & inactive sessions from the database.
-
-*Example*
-
-```ts
-import { cleanSessionsTask, VendureConfig } from '@vendure/core';
-
-export const config: VendureConfig = {
-  // ...
-  schedulerOptions: {
-    tasks: [
-      // Use the task as is
-      cleanSessionsTask,
-      // or configure the task
-      cleanSessionsTask.configure({
-        // Run the task every day at 3:00am
-        // The default schedule is every day at 00:00am
-        schedule: cron => cron.everyDayAt(3, 0),
-        params: {
-          // How many sessions to process in each batch
-          // Default: 10_000
-          batchSize: 5_000,
-        },
-      }),
-    ],
-  },
-};
-```
-

+ 0 - 83
docs/docs/reference/typescript-api/scheduled-tasks/default-scheduler-plugin.md

@@ -1,83 +0,0 @@
----
-title: "DefaultSchedulerPlugin"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DefaultSchedulerPlugin
-
-<GenerationInfo sourceFile="packages/core/src/plugin/default-scheduler-plugin/default-scheduler.plugin.ts" sourceLine="35" packageName="@vendure/core" since="3.3.0" />
-
-This plugin configures a default scheduling strategy that executes scheduled
-tasks using the database to ensure that each task is executed exactly once
-at the scheduled time, even if there are multiple instances of the worker
-running.
-
-*Example*
-
-```ts
-import { DefaultSchedulerPlugin, VendureConfig } from '@vendure/core';
-
-export const config: VendureConfig = {
-  plugins: [
-    DefaultSchedulerPlugin.init({
-      // The default is 60s, but you can override it here
-      defaultTimeout: '10s',
-    }),
-  ],
-};
-```
-
-```ts title="Signature"
-class DefaultSchedulerPlugin {
-    static options: DefaultSchedulerPluginOptions = {
-        defaultTimeout: DEFAULT_TIMEOUT,
-    };
-    init(config: DefaultSchedulerPluginOptions) => ;
-}
-```
-
-<div className="members-wrapper">
-
-### options
-
-<MemberInfo kind="property" type={`<a href='/reference/typescript-api/scheduled-tasks/default-scheduler-plugin#defaultschedulerpluginoptions'>DefaultSchedulerPluginOptions</a>`}   />
-
-
-### init
-
-<MemberInfo kind="method" type={`(config: <a href='/reference/typescript-api/scheduled-tasks/default-scheduler-plugin#defaultschedulerpluginoptions'>DefaultSchedulerPluginOptions</a>) => `}   />
-
-
-
-
-</div>
-
-
-## DefaultSchedulerPluginOptions
-
-<GenerationInfo sourceFile="packages/core/src/plugin/default-scheduler-plugin/types.ts" sourceLine="9" packageName="@vendure/core" since="3.3.0" />
-
-The options for the <a href='/reference/typescript-api/scheduled-tasks/default-scheduler-plugin#defaultschedulerplugin'>DefaultSchedulerPlugin</a>.
-
-```ts title="Signature"
-interface DefaultSchedulerPluginOptions {
-    defaultTimeout?: string | number;
-}
-```
-
-<div className="members-wrapper">
-
-### defaultTimeout
-
-<MemberInfo kind="property" type={`string | number`} default={`60_000ms`}   />
-
-The default timeout for scheduled tasks.
-
-
-</div>

+ 0 - 68
docs/docs/reference/typescript-api/scheduled-tasks/default-scheduler-strategy.md

@@ -1,68 +0,0 @@
----
-title: "DefaultSchedulerStrategy"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DefaultSchedulerStrategy
-
-<GenerationInfo sourceFile="packages/core/src/plugin/default-scheduler-plugin/default-scheduler-strategy.ts" sourceLine="25" packageName="@vendure/core" since="3.3.0" />
-
-The default <a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#schedulerstrategy'>SchedulerStrategy</a> implementation that uses the database to
-execute scheduled tasks. This strategy is configured when you use the
-<a href='/reference/typescript-api/scheduled-tasks/default-scheduler-plugin#defaultschedulerplugin'>DefaultSchedulerPlugin</a>.
-
-```ts title="Signature"
-class DefaultSchedulerStrategy implements SchedulerStrategy {
-    init(injector: Injector) => ;
-    destroy() => ;
-    executeTask(task: ScheduledTask) => ;
-    getTasks() => Promise<TaskReport[]>;
-    getTask(id: string) => Promise<TaskReport | undefined>;
-    updateTask(input: UpdateScheduledTaskInput) => Promise<TaskReport>;
-}
-```
-* Implements: <code><a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#schedulerstrategy'>SchedulerStrategy</a></code>
-
-
-
-<div className="members-wrapper">
-
-### init
-
-<MemberInfo kind="method" type={`(injector: <a href='/reference/typescript-api/common/injector#injector'>Injector</a>) => `}   />
-
-
-### destroy
-
-<MemberInfo kind="method" type={`() => `}   />
-
-
-### executeTask
-
-<MemberInfo kind="method" type={`(task: <a href='/reference/typescript-api/scheduled-tasks/scheduled-task#scheduledtask'>ScheduledTask</a>) => `}   />
-
-
-### getTasks
-
-<MemberInfo kind="method" type={`() => Promise&#60;<a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#taskreport'>TaskReport</a>[]&#62;`}   />
-
-
-### getTask
-
-<MemberInfo kind="method" type={`(id: string) => Promise&#60;<a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#taskreport'>TaskReport</a> | undefined&#62;`}   />
-
-
-### updateTask
-
-<MemberInfo kind="method" type={`(input: UpdateScheduledTaskInput) => Promise&#60;<a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#taskreport'>TaskReport</a>&#62;`}   />
-
-
-
-
-</div>

+ 0 - 14
docs/docs/reference/typescript-api/scheduled-tasks/index.md

@@ -1,14 +0,0 @@
----
-title: "Scheduled Tasks"
-isDefaultIndex: true
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-import DocCardList from '@theme/DocCardList';
-
-<DocCardList />

+ 0 - 164
docs/docs/reference/typescript-api/scheduled-tasks/scheduled-task.md

@@ -1,164 +0,0 @@
----
-title: "ScheduledTask"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## ScheduledTask
-
-<GenerationInfo sourceFile="packages/core/src/scheduler/scheduled-task.ts" sourceLine="90" packageName="@vendure/core" since="3.3.0" />
-
-Use this class to define a scheduled task that will be executed at a given cron schedule.
-
-*Example*
-
-```ts
-import { ScheduledTask } from '@vendure/core';
-
-const task = new ScheduledTask({
-    id: 'test-job',
-    schedule: cron => cron.every(2).minutes(),
-    execute: async (injector, params) => {
-        // some logic here
-    },
-});
-```
-
-```ts title="Signature"
-class ScheduledTask<C extends Record<string, any> = Record<string, any>> {
-    constructor(config: ScheduledTaskConfig<C>)
-    id: void
-    options: void
-    execute(injector: Injector) => ;
-    configure(additionalConfig: Partial<Pick<ScheduledTaskConfig<C>, 'schedule' | 'timeout' | 'params'>>) => ;
-}
-```
-
-<div className="members-wrapper">
-
-### constructor
-
-<MemberInfo kind="method" type={`(config: <a href='/reference/typescript-api/scheduled-tasks/scheduled-task#scheduledtaskconfig'>ScheduledTaskConfig</a>&#60;C&#62;) => ScheduledTask`}   />
-
-
-### id
-
-<MemberInfo kind="property" type={``}   />
-
-
-### options
-
-<MemberInfo kind="property" type={``}   />
-
-
-### execute
-
-<MemberInfo kind="method" type={`(injector: <a href='/reference/typescript-api/common/injector#injector'>Injector</a>) => `}   />
-
-
-### configure
-
-<MemberInfo kind="method" type={`(additionalConfig: Partial&#60;Pick&#60;<a href='/reference/typescript-api/scheduled-tasks/scheduled-task#scheduledtaskconfig'>ScheduledTaskConfig</a>&#60;C&#62;, 'schedule' | 'timeout' | 'params'&#62;&#62;) => `}   />
-
-This method allows you to further configure existing scheduled tasks. For example, you may
-wish to change the schedule or timeout of a task, without having to define a new task.
-
-*Example*
-
-```ts
-import { ScheduledTask } from '@vendure/core';
-
-const task = new ScheduledTask({
-    id: 'test-job',
-    schedule: cron => cron.every(2).minutes(),
-    execute: async (injector, params) => {
-        // some logic here
-    },
-});
-
-// later, you can configure the task
-task.configure({ schedule: cron => cron.every(5).minutes() });
-```
-
-
-</div>
-
-
-## ScheduledTaskConfig
-
-<GenerationInfo sourceFile="packages/core/src/scheduler/scheduled-task.ts" sourceLine="12" packageName="@vendure/core" since="3.3.0" />
-
-The configuration for a scheduled task.
-
-```ts title="Signature"
-interface ScheduledTaskConfig<C extends Record<string, any> = Record<string, any>> {
-    id: string;
-    description?: string;
-    params?: C;
-    schedule: string | ((cronTime: typeof CronTime) => string);
-    timeout?: number | string;
-    preventOverlap?: boolean;
-    execute(injector: Injector, config: C): Promise<any>;
-}
-```
-
-<div className="members-wrapper">
-
-### id
-
-<MemberInfo kind="property" type={`string`}   />
-
-The unique identifier for the scheduled task.
-### description
-
-<MemberInfo kind="property" type={`string`}   />
-
-The description for the scheduled task.
-### params
-
-<MemberInfo kind="property" type={`C`}   />
-
-Optional parameters that will be passed to the `execute` function.
-### schedule
-
-<MemberInfo kind="property" type={`string | ((cronTime: typeof CronTime) =&#62; string)`}   />
-
-The cron schedule for the scheduled task. This can be a standard cron expression or
-a function that returns a [cron-time-generator](https://www.npmjs.com/package/cron-time-generator)
-expression.
-
-*Example*
-
-```ts
-// Standard cron expression
-{ schedule: '0 0-23/5 * * *', } // every 5 hours
-{ schedule: '0 22 * * *', } // every day at 10:00 PM
-
-// Cron-time-generator expression
-{ schedule: cronTime => cronTime.every(2).minutes(), }
-{ schedule: cronTime => cronTime.every(5).hours(), }
-```
-### timeout
-
-<MemberInfo kind="property" type={`number | string`} default={`60_000ms`}   />
-
-The timeout for the scheduled task. If the task takes longer than the timeout, the task
-will be considered to have failed with a timeout error.
-### preventOverlap
-
-<MemberInfo kind="property" type={`boolean`} default={`true`}   />
-
-Whether the scheduled task should be prevented from running if it is already running.
-### execute
-
-<MemberInfo kind="method" type={`(injector: <a href='/reference/typescript-api/common/injector#injector'>Injector</a>, config: C) => Promise&#60;any&#62;`}   />
-
-The function that will be executed when the scheduled task is run.
-
-
-</div>

+ 0 - 41
docs/docs/reference/typescript-api/scheduled-tasks/scheduler-options.md

@@ -1,41 +0,0 @@
----
-title: "SchedulerOptions"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## SchedulerOptions
-
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="974" packageName="@vendure/core" since="3.3.0" />
-
-Options related to scheduled tasks..
-
-```ts title="Signature"
-interface SchedulerOptions {
-    schedulerStrategy?: SchedulerStrategy;
-    tasks?: ScheduledTask[];
-}
-```
-
-<div className="members-wrapper">
-
-### schedulerStrategy
-
-<MemberInfo kind="property" type={`<a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#schedulerstrategy'>SchedulerStrategy</a>`}   />
-
-The strategy used to execute scheduled tasks. If you are using the
-<a href='/reference/typescript-api/scheduled-tasks/default-scheduler-plugin#defaultschedulerplugin'>DefaultSchedulerPlugin</a> (which is recommended) then this will be set to the
-<a href='/reference/typescript-api/scheduled-tasks/default-scheduler-strategy#defaultschedulerstrategy'>DefaultSchedulerStrategy</a>.
-### tasks
-
-<MemberInfo kind="property" type={`<a href='/reference/typescript-api/scheduled-tasks/scheduled-task#scheduledtask'>ScheduledTask</a>[]`}   />
-
-The tasks to be executed.
-
-
-</div>

+ 0 - 54
docs/docs/reference/typescript-api/scheduled-tasks/scheduler-service.md

@@ -1,54 +0,0 @@
----
-title: "SchedulerService"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## SchedulerService
-
-<GenerationInfo sourceFile="packages/core/src/scheduler/scheduler.service.ts" sourceLine="33" packageName="@vendure/core" since="3.3.0" />
-
-The service that is responsible for setting up and querying the scheduled tasks.
-
-```ts title="Signature"
-class SchedulerService implements OnApplicationBootstrap {
-    constructor(configService: ConfigService)
-    onApplicationBootstrap() => ;
-    getTaskList() => Promise<TaskInfo[]>;
-    updateTask(input: UpdateScheduledTaskInput) => Promise<TaskInfo>;
-}
-```
-* Implements: <code>OnApplicationBootstrap</code>
-
-
-
-<div className="members-wrapper">
-
-### constructor
-
-<MemberInfo kind="method" type={`(configService: ConfigService) => SchedulerService`}   />
-
-
-### onApplicationBootstrap
-
-<MemberInfo kind="method" type={`() => `}   />
-
-
-### getTaskList
-
-<MemberInfo kind="method" type={`() => Promise&#60;TaskInfo[]&#62;`}   />
-
-Returns a list of all the scheduled tasks and their current status.
-### updateTask
-
-<MemberInfo kind="method" type={`(input: UpdateScheduledTaskInput) => Promise&#60;TaskInfo&#62;`}   />
-
-
-
-
-</div>

+ 0 - 119
docs/docs/reference/typescript-api/scheduled-tasks/scheduler-strategy.md

@@ -1,119 +0,0 @@
----
-title: "SchedulerStrategy"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## SchedulerStrategy
-
-<GenerationInfo sourceFile="packages/core/src/scheduler/scheduler-strategy.ts" sourceLine="42" packageName="@vendure/core" since="3.3.0" />
-
-This strategy is used to define the mechanism by which scheduled tasks are executed
-and how they are reported on. The main purpose of this strategy is to ensure
-that a given task is executed exactly once at the scheduled time, even if there
-are multiple instances of the worker running.
-
-To do this, the strategy must use some form of shared storage and a method of
-locking so that only a single worker is allowed to execute the task.
-
-By default, the <a href='/reference/typescript-api/scheduled-tasks/default-scheduler-strategy#defaultschedulerstrategy'>DefaultSchedulerStrategy</a> will use the database to enable
-this functionality.
-
-```ts title="Signature"
-interface SchedulerStrategy extends InjectableStrategy {
-    executeTask(task: ScheduledTask): (job: Cron) => Promise<any> | any;
-    getTasks(): Promise<TaskReport[]>;
-    getTask(id: string): Promise<TaskReport | undefined>;
-    updateTask(input: UpdateScheduledTaskInput): Promise<TaskReport>;
-}
-```
-* Extends: <code><a href='/reference/typescript-api/common/injectable-strategy#injectablestrategy'>InjectableStrategy</a></code>
-
-
-
-<div className="members-wrapper">
-
-### executeTask
-
-<MemberInfo kind="method" type={`(task: <a href='/reference/typescript-api/scheduled-tasks/scheduled-task#scheduledtask'>ScheduledTask</a>) => (job: Cron) =&#62; Promise&#60;any&#62; | any`}   />
-
-Execute a scheduled task. This method must also take care of
-ensuring that the task is executed exactly once at the scheduled time,
-even if there are multiple instances of the worker running.
-
-For instance, in the <a href='/reference/typescript-api/scheduled-tasks/default-scheduler-strategy#defaultschedulerstrategy'>DefaultSchedulerStrategy</a> we make use of a
-dedicated database table and a locking mechansim. If you implement a custom
-SchedulerStrategy, you must use some other form of shared locking mechanism
-that could make use of something like Redis etc. to ensure that the task
-is executed exactly once at the scheduled time.
-### getTasks
-
-<MemberInfo kind="method" type={`() => Promise&#60;<a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#taskreport'>TaskReport</a>[]&#62;`}   />
-
-Get all scheduled tasks.
-### getTask
-
-<MemberInfo kind="method" type={`(id: string) => Promise&#60;<a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#taskreport'>TaskReport</a> | undefined&#62;`}   />
-
-Get a single scheduled task by its id.
-### updateTask
-
-<MemberInfo kind="method" type={`(input: UpdateScheduledTaskInput) => Promise&#60;<a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#taskreport'>TaskReport</a>&#62;`}   />
-
-Update a scheduled task.
-
-
-</div>
-
-
-## TaskReport
-
-<GenerationInfo sourceFile="packages/core/src/scheduler/scheduler-strategy.ts" sourceLine="16" packageName="@vendure/core" since="3.3.0" />
-
-A report on the status of a scheduled task.
-
-```ts title="Signature"
-interface TaskReport {
-    id: string;
-    lastExecutedAt: Date | null;
-    isRunning: boolean;
-    lastResult: any;
-    enabled: boolean;
-}
-```
-
-<div className="members-wrapper">
-
-### id
-
-<MemberInfo kind="property" type={`string`}   />
-
-
-### lastExecutedAt
-
-<MemberInfo kind="property" type={`Date | null`}   />
-
-
-### isRunning
-
-<MemberInfo kind="property" type={`boolean`}   />
-
-
-### lastResult
-
-<MemberInfo kind="property" type={`any`}   />
-
-
-### enabled
-
-<MemberInfo kind="property" type={`boolean`}   />
-
-
-
-
-</div>

+ 5 - 23
docs/docs/reference/typescript-api/services/session-service.md

@@ -11,14 +11,13 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## SessionService
 ## SessionService
 
 
-<GenerationInfo sourceFile="packages/core/src/service/services/session.service.ts" sourceLine="31" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/service/services/session.service.ts" sourceLine="28" packageName="@vendure/core" />
 
 
 Contains methods relating to <a href='/reference/typescript-api/entities/session#session'>Session</a> entities.
 Contains methods relating to <a href='/reference/typescript-api/entities/session#session'>Session</a> entities.
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-class SessionService implements EntitySubscriberInterface, OnApplicationBootstrap {
-    constructor(connection: TransactionalConnection, configService: ConfigService, orderService: OrderService, jobQueueService: JobQueueService, requestContextService: RequestContextService)
-    onApplicationBootstrap() => ;
+class SessionService implements EntitySubscriberInterface {
+    constructor(connection: TransactionalConnection, configService: ConfigService, orderService: OrderService)
     createNewAuthenticatedSession(ctx: RequestContext, user: User, authenticationStrategyName: string) => Promise<AuthenticatedSession>;
     createNewAuthenticatedSession(ctx: RequestContext, user: User, authenticationStrategyName: string) => Promise<AuthenticatedSession>;
     createAnonymousSession() => Promise<CachedSession>;
     createAnonymousSession() => Promise<CachedSession>;
     getSessionFromToken(sessionToken: string) => Promise<CachedSession | undefined>;
     getSessionFromToken(sessionToken: string) => Promise<CachedSession | undefined>;
@@ -28,11 +27,9 @@ class SessionService implements EntitySubscriberInterface, OnApplicationBootstra
     setActiveChannel(serializedSession: CachedSession, channel: Channel) => Promise<CachedSession>;
     setActiveChannel(serializedSession: CachedSession, channel: Channel) => Promise<CachedSession>;
     deleteSessionsByUser(ctx: RequestContext, user: User) => Promise<void>;
     deleteSessionsByUser(ctx: RequestContext, user: User) => Promise<void>;
     deleteSessionsByActiveOrderId(ctx: RequestContext, activeOrderId: ID) => Promise<void>;
     deleteSessionsByActiveOrderId(ctx: RequestContext, activeOrderId: ID) => Promise<void>;
-    triggerCleanSessionsJob(batchSize: number) => ;
-    cleanExpiredSessions(ctx: RequestContext, batchSize: number) => ;
 }
 }
 ```
 ```
-* Implements: <code>EntitySubscriberInterface</code>, <code>OnApplicationBootstrap</code>
+* Implements: <code>EntitySubscriberInterface</code>
 
 
 
 
 
 
@@ -40,12 +37,7 @@ class SessionService implements EntitySubscriberInterface, OnApplicationBootstra
 
 
 ### constructor
 ### constructor
 
 
-<MemberInfo kind="method" type={`(connection: <a href='/reference/typescript-api/data-access/transactional-connection#transactionalconnection'>TransactionalConnection</a>, configService: ConfigService, orderService: <a href='/reference/typescript-api/services/order-service#orderservice'>OrderService</a>, jobQueueService: <a href='/reference/typescript-api/job-queue/job-queue-service#jobqueueservice'>JobQueueService</a>, requestContextService: <a href='/reference/typescript-api/request/request-context-service#requestcontextservice'>RequestContextService</a>) => SessionService`}   />
-
-
-### onApplicationBootstrap
-
-<MemberInfo kind="method" type={`() => `}   />
+<MemberInfo kind="method" type={`(connection: <a href='/reference/typescript-api/data-access/transactional-connection#transactionalconnection'>TransactionalConnection</a>, configService: ConfigService, orderService: <a href='/reference/typescript-api/services/order-service#orderservice'>OrderService</a>) => SessionService`}   />
 
 
 
 
 ### createNewAuthenticatedSession
 ### createNewAuthenticatedSession
@@ -94,16 +86,6 @@ Deletes all existing sessions for the given user.
 <MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, activeOrderId: <a href='/reference/typescript-api/common/id#id'>ID</a>) => Promise&#60;void&#62;`}   />
 <MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, activeOrderId: <a href='/reference/typescript-api/common/id#id'>ID</a>) => Promise&#60;void&#62;`}   />
 
 
 Deletes all existing sessions with the given activeOrder.
 Deletes all existing sessions with the given activeOrder.
-### triggerCleanSessionsJob
-
-<MemberInfo kind="method" type={`(batchSize: number) => `}   />
-
-Triggers the clean sessions job.
-### cleanExpiredSessions
-
-<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, batchSize: number) => `}   />
-
-Cleans expired sessions from the database & the session cache.
 
 
 
 
 </div>
 </div>

+ 1 - 1
docs/docs/reference/typescript-api/shipping/shipping-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ShippingOptions
 ## ShippingOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="775" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="773" packageName="@vendure/core" />
 
 
 
 
 
 

+ 1 - 1
docs/docs/reference/typescript-api/tax/tax-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## TaxOptions
 ## TaxOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="888" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="886" packageName="@vendure/core" />
 
 
 
 
 
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1257 - 360
package-lock.json


+ 3 - 3
packages/admin-ui-plugin/package.json

@@ -23,18 +23,18 @@
         "access": "public"
         "access": "public"
     },
     },
     "devDependencies": {
     "devDependencies": {
-        "@types/express": "^4.17.21",
+        "@types/express": "^5.0.1",
         "@types/fs-extra": "^11.0.4",
         "@types/fs-extra": "^11.0.4",
         "@vendure/admin-ui": "3.2.2",
         "@vendure/admin-ui": "3.2.2",
         "@vendure/common": "3.2.2",
         "@vendure/common": "3.2.2",
         "@vendure/core": "3.2.2",
         "@vendure/core": "3.2.2",
-        "express": "^4.18.3",
+        "express": "^5.1.0",
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
         "typescript": "5.8.2"
         "typescript": "5.8.2"
     },
     },
     "dependencies": {
     "dependencies": {
         "date-fns": "^2.30.0",
         "date-fns": "^2.30.0",
-        "express-rate-limit": "^7.4.0",
+        "express-rate-limit": "^7.5.0",
         "fs-extra": "^11.2.0"
         "fs-extra": "^11.2.0"
     }
     }
 }
 }

+ 4 - 1
packages/admin-ui-plugin/src/plugin.ts

@@ -253,7 +253,10 @@ export class AdminUiPlugin implements NestModule {
         });
         });
 
 
         const adminUiServer = express.Router();
         const adminUiServer = express.Router();
-        adminUiServer.use(limiter);
+        // This is a workaround for a type mismatch between express v5 (Vendure core)
+        // and express v4 (several transitive dependencies). Can be removed once the
+        // ecosystem has more significantly shifted to v5.
+        adminUiServer.use(limiter as any);
         adminUiServer.use(express.static(adminUiAppPath));
         adminUiServer.use(express.static(adminUiAppPath));
         adminUiServer.use((req, res) => {
         adminUiServer.use((req, res) => {
             res.sendFile(path.join(adminUiAppPath, 'index.html'));
             res.sendFile(path.join(adminUiAppPath, 'index.html'));

+ 0 - 3
packages/admin-ui/.eslintrc.json

@@ -39,9 +39,6 @@
             "style": "kebab-case"
             "style": "kebab-case"
           }
           }
         ],
         ],
-        "@angular-eslint/prefer-standalone": [
-          "off"
-        ],
         "@angular-eslint/no-input-rename": "off",
         "@angular-eslint/no-input-rename": "off",
         "@typescript-eslint/array-type": [
         "@typescript-eslint/array-type": [
           "error",
           "error",

+ 52 - 52
packages/admin-ui/i18n-coverage.json

@@ -1,116 +1,116 @@
 {
 {
-  "generatedOn": "2025-04-08T07:15:55.418Z",
-  "lastCommit": "6243ab84efd87ea325ecc4042db6df71476e1c82",
+  "generatedOn": "2025-03-07T07:52:20.824Z",
+  "lastCommit": "f59b60092015fc28f282a23ce9d60754d58f0b6b",
   "translationStatus": {
   "translationStatus": {
     "ar": {
     "ar": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 778,
       "percentage": 100
       "percentage": 100
     },
     },
     "cs": {
     "cs": {
-      "tokenCount": 793,
-      "translatedCount": 793,
-      "percentage": 100
+      "tokenCount": 780,
+      "translatedCount": 590,
+      "percentage": 76
     },
     },
     "de": {
     "de": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 778,
       "percentage": 100
       "percentage": 100
     },
     },
     "en": {
     "en": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 784,
+      "translatedCount": 783,
       "percentage": 100
       "percentage": 100
     },
     },
     "es": {
     "es": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 778,
       "percentage": 100
       "percentage": 100
     },
     },
     "fa": {
     "fa": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 778,
       "percentage": 100
       "percentage": 100
     },
     },
     "fr": {
     "fr": {
-      "tokenCount": 793,
-      "translatedCount": 793,
-      "percentage": 100
+      "tokenCount": 780,
+      "translatedCount": 776,
+      "percentage": 99
     },
     },
     "he": {
     "he": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 778,
       "percentage": 100
       "percentage": 100
     },
     },
     "hr": {
     "hr": {
-      "tokenCount": 793,
-      "translatedCount": 792,
+      "tokenCount": 780,
+      "translatedCount": 777,
       "percentage": 100
       "percentage": 100
     },
     },
     "it": {
     "it": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 778,
       "percentage": 100
       "percentage": 100
     },
     },
     "ja": {
     "ja": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 784,
+      "translatedCount": 784,
       "percentage": 100
       "percentage": 100
     },
     },
     "nb": {
     "nb": {
-      "tokenCount": 793,
-      "translatedCount": 793,
-      "percentage": 100
+      "tokenCount": 778,
+      "translatedCount": 773,
+      "percentage": 99
     },
     },
     "ne": {
     "ne": {
-      "tokenCount": 793,
-      "translatedCount": 793,
-      "percentage": 100
+      "tokenCount": 780,
+      "translatedCount": 767,
+      "percentage": 98
     },
     },
     "pl": {
     "pl": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 779,
       "percentage": 100
       "percentage": 100
     },
     },
     "pt_BR": {
     "pt_BR": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 780,
       "percentage": 100
       "percentage": 100
     },
     },
     "pt_PT": {
     "pt_PT": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 781,
+      "translatedCount": 781,
       "percentage": 100
       "percentage": 100
     },
     },
     "ru": {
     "ru": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 778,
       "percentage": 100
       "percentage": 100
     },
     },
     "sv": {
     "sv": {
-      "tokenCount": 793,
-      "translatedCount": 789,
+      "tokenCount": 773,
+      "translatedCount": 767,
       "percentage": 99
       "percentage": 99
     },
     },
     "tr": {
     "tr": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 780,
       "percentage": 100
       "percentage": 100
     },
     },
     "uk": {
     "uk": {
-      "tokenCount": 793,
-      "translatedCount": 793,
+      "tokenCount": 780,
+      "translatedCount": 778,
       "percentage": 100
       "percentage": 100
     },
     },
     "zh_Hans": {
     "zh_Hans": {
-      "tokenCount": 793,
-      "translatedCount": 793,
-      "percentage": 100
+      "tokenCount": 780,
+      "translatedCount": 560,
+      "percentage": 72
     },
     },
     "zh_Hant": {
     "zh_Hant": {
-      "tokenCount": 793,
-      "translatedCount": 793,
-      "percentage": 100
+      "tokenCount": 780,
+      "translatedCount": 407,
+      "percentage": 52
     }
     }
   }
   }
 }
 }

+ 2 - 2
packages/admin-ui/scripts/extract-translations.js

@@ -50,11 +50,11 @@ async function extractTranslations() {
 }
 }
 
 
 function runExtraction(locale) {
 function runExtraction(locale) {
-    const command = 'npx';
+    const command = 'npm';
     const args = getNgxTranslateExtractCommand(locale);
     const args = getNgxTranslateExtractCommand(locale);
     return new Promise((resolve, reject) => {
     return new Promise((resolve, reject) => {
         try {
         try {
-            const child = spawn(command, args, { stdio: ['inherit', 'inherit', 'inherit'] });
+            const child = spawn(`yarnpkg`, args, { stdio: ['inherit', 'inherit', 'inherit'] });
             child.on('close', x => {
             child.on('close', x => {
                 resolve();
                 resolve();
             });
             });

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 37
packages/admin-ui/src/lib/core/src/common/generated-types.ts


+ 0 - 6
packages/admin-ui/src/lib/core/src/components/base-nav/base-nav.component.ts

@@ -316,12 +316,6 @@ export class BaseNavComponent implements OnInit, OnDestroy {
                             })),
                             })),
                         ),
                         ),
                     },
                     },
-                    {
-                        id: 'scheduled-tasks',
-                        label: _('nav.scheduled-tasks'),
-                        routerLink: ['/system', 'scheduled-tasks'],
-                        icon: 'clock',
-                    },
                 ],
                 ],
             },
             },
         ]);
         ]);

+ 2 - 2
packages/admin-ui/src/lib/core/src/shared/pipes/locale-base.pipe.ts

@@ -19,7 +19,7 @@ export abstract class LocaleBasePipe implements OnDestroy, PipeTransform {
                 .mapStream(data => data.uiState)
                 .mapStream(data => data.uiState)
                 .subscribe(({ language, locale }) => {
                 .subscribe(({ language, locale }) => {
                     this.locale = language.replace(/_/g, '-');
                     this.locale = language.replace(/_/g, '-');
-                    if (locale && !this.locale.includes('-')) {
+                    if (locale) {
                         this.locale += `-${locale}`;
                         this.locale += `-${locale}`;
                     }
                     }
                     changeDetectorRef.markForCheck();
                     changeDetectorRef.markForCheck();
@@ -38,7 +38,7 @@ export abstract class LocaleBasePipe implements OnDestroy, PipeTransform {
      * is valid for the Intl API.
      * is valid for the Intl API.
      */
      */
     protected getActiveLocale(localeOverride?: unknown): string {
     protected getActiveLocale(localeOverride?: unknown): string {
-        const locale = typeof localeOverride === 'string' ? localeOverride : (this.locale ?? 'en');
+        const locale = typeof localeOverride === 'string' ? localeOverride : this.locale ?? 'en';
         const hyphenated = locale?.replace(/_/g, '-');
         const hyphenated = locale?.replace(/_/g, '-');
 
 
         // Check for a double-region string, containing 2 region codes like
         // Check for a double-region string, containing 2 region codes like

+ 39 - 52
packages/admin-ui/src/lib/static/i18n-messages/ar.json

@@ -4,9 +4,8 @@
   },
   },
   "asset": {
   "asset": {
     "add-asset": "إضافة أصل",
     "add-asset": "إضافة أصل",
-    "add-asset-with-count": "إضافة {count, plural, =0 {أصول} one {1 أصل} other {{count} أصول}}",
+    "add-asset-with-count": "إضافة {count , plural , = 0 {أصول} {1 أصل} {{count} أصول}}",
     "assets-selected-count": "{count} أصول محددة",
     "assets-selected-count": "{count} أصول محددة",
-    "change-asset": "تعديل الأصل",
     "dimensions": "أبعاد",
     "dimensions": "أبعاد",
     "focal-point": "النقطة المحورية",
     "focal-point": "النقطة المحورية",
     "notify-create-assets-success": "إنشاء {count, plural, one {أصل جديد} other {{count} أصول جديدة}}",
     "notify-create-assets-success": "إنشاء {count, plural, one {أصل جديد} other {{count} أصول جديدة}}",
@@ -17,7 +16,6 @@
     "select-assets": "حدد الأصول",
     "select-assets": "حدد الأصول",
     "set-as-featured-asset": "تعيين كأصل مميز",
     "set-as-featured-asset": "تعيين كأصل مميز",
     "set-focal-point": "تعيين نقطة بؤرية",
     "set-focal-point": "تعيين نقطة بؤرية",
-    "size": "الحجم",
     "source-file": "مصدر الملف",
     "source-file": "مصدر الملف",
     "unset-focal-point": "غير معرف",
     "unset-focal-point": "غير معرف",
     "update-focal-point": "نقطة التحديث",
     "update-focal-point": "نقطة التحديث",
@@ -47,7 +45,6 @@
     "profile": "حساب تعريفي",
     "profile": "حساب تعريفي",
     "promotions": "العروض",
     "promotions": "العروض",
     "roles": "الأدوار",
     "roles": "الأدوار",
-    "scheduled-tasks": "المهام المجدولة",
     "seller-orders": "أوامر البائع",
     "seller-orders": "أوامر البائع",
     "sellers": "البائعون",
     "sellers": "البائعون",
     "shipping-methods": "طرق الشحن",
     "shipping-methods": "طرق الشحن",
@@ -67,10 +64,10 @@
     "asset": "أصل",
     "asset": "أصل",
     "asset-preview-links": "روابط معاينة النماذج",
     "asset-preview-links": "روابط معاينة النماذج",
     "assets": "نماذج",
     "assets": "نماذج",
-    "assign-product-to-channel-success": "تم تعيينه بنجاح {count, plural, one {1 منتج} other {{count} منتجات}} إلى {channel}",
+    "assign-product-to-channel-success": "تم تعيينه بنجاح {count , الجمع , واحد {1 منتج} {{count} products}} إلى {channel}",
     "assign-products-to-channel": "تعيين المنتجات للقناة",
     "assign-products-to-channel": "تعيين المنتجات للقناة",
-    "assign-to-named-channel": "تعيين إلى {channelCode}",
-    "assign-variant-to-channel-success": "تم تعيين {count, plural, one {1 متغير المنتج} other {{count} متغيرات المنتج}} إلى {channel}",
+    "assign-to-named-channel": "تعيين إلى {ChannelCode}",
+    "assign-variant-to-channel-success": "تم تعيين {count , الجمع , واحد {1 متغير المنتج} {{count} متغيرات المنتج}} إلى {channel}",
     "assign-variants-to-channel": "تعيين متغيرات المنتج للقناة",
     "assign-variants-to-channel": "تعيين متغيرات المنتج للقناة",
     "auto-update-option-variant-name": "تحديث أسماء ProductVariants تلقائيًا باستخدام هذا الخيار",
     "auto-update-option-variant-name": "تحديث أسماء ProductVariants تلقائيًا باستخدام هذا الخيار",
     "auto-update-product-variant-name": "تحديث أسماء ProductVariants تلقائيًا",
     "auto-update-product-variant-name": "تحديث أسماء ProductVariants تلقائيًا",
@@ -83,12 +80,12 @@
     "collections": "مجموعات",
     "collections": "مجموعات",
     "confirm-bulk-delete-products": "حذف {count} منتجات؟",
     "confirm-bulk-delete-products": "حذف {count} منتجات؟",
     "confirm-cancel": "إلغاء؟",
     "confirm-cancel": "إلغاء؟",
-    "confirm-delete-assets": "حذف {count} {count, plural, one {أصل} other {أصول}}؟",
+    "confirm-delete-assets": "حذف {count} {count , الجمع , واحد {Asset} آخر {الأصول}}؟",
     "confirm-delete-facet-value": "حذف قيمة الفئة؟",
     "confirm-delete-facet-value": "حذف قيمة الفئة؟",
     "confirm-delete-product": "حذف المنتج؟",
     "confirm-delete-product": "حذف المنتج؟",
     "confirm-delete-product-option": "حذف خيار المنتج \" {name} \"؟",
     "confirm-delete-product-option": "حذف خيار المنتج \" {name} \"؟",
     "confirm-delete-product-option-group": "حذف مجموعة خيار المنتج \" {name} \"؟",
     "confirm-delete-product-option-group": "حذف مجموعة خيار المنتج \" {name} \"؟",
-    "confirm-delete-product-option-group-body": "يتم استخدام مجموعة الخيار هذه بواسطة {count} {count, plural, one {متغير} other {متغيرات}}. هل أنت متأكد أنك تريد حذفه؟",
+    "confirm-delete-product-option-group-body": "يتم استخدام مجموعة الخيار هذه بواسطة {count} {count , الجمع , واحد {variant} {{المتغيرات}}. هل أنت متأكد أنك تريد حذفه؟",
     "confirm-delete-product-variant": "حذف متغير المنتج \" {name} \"؟",
     "confirm-delete-product-variant": "حذف متغير المنتج \" {name} \"؟",
     "confirm-deletion-of-unused-variants-body": "تم إجراء متغيرات المنتج التالية قديمة بسبب إضافة خيارات جديدة. سيتم حذفها أثناء إنشاء متغيرات المنتج الجديدة.",
     "confirm-deletion-of-unused-variants-body": "تم إجراء متغيرات المنتج التالية قديمة بسبب إضافة خيارات جديدة. سيتم حذفها أثناء إنشاء متغيرات المنتج الجديدة.",
     "confirm-deletion-of-unused-variants-title": "حذف متغيرات المنتجات القديمة؟",
     "confirm-deletion-of-unused-variants-title": "حذف متغيرات المنتجات القديمة؟",
@@ -120,7 +117,7 @@
     "manage-variants": "إدارة المتغيرات",
     "manage-variants": "إدارة المتغيرات",
     "move-collection-to": "انتقل إلى {name}",
     "move-collection-to": "انتقل إلى {name}",
     "move-collections": "تحرك المجموعات",
     "move-collections": "تحرك المجموعات",
-    "move-collections-success": "تم نقل {count, plural, one {1 مجموعة} other {{count} مجموعات}}",
+    "move-collections-success": "تم نقل {count , الجمع , واحد {1 collection} {{count} collections}}",
     "move-down": "تحرك لأسفل",
     "move-down": "تحرك لأسفل",
     "move-to": "الانتقال إلى",
     "move-to": "الانتقال إلى",
     "move-up": "تحرك",
     "move-up": "تحرك",
@@ -130,7 +127,7 @@
     "no-selection": "لا اختيار",
     "no-selection": "لا اختيار",
     "no-stock-locations-available-on-current-channel": "لا توجد مواقع مخزون متوفرة على القناة الحالية. قم بإعداد موقع مخزون واحد على الأقل قبل إضافة منتجات.",
     "no-stock-locations-available-on-current-channel": "لا توجد مواقع مخزون متوفرة على القناة الحالية. قم بإعداد موقع مخزون واحد على الأقل قبل إضافة منتجات.",
     "notify-bulk-delete-products-success": "تم بنجاح إزالة {count, plural, one {منتج واحد} other {{count} منتجات}}",
     "notify-bulk-delete-products-success": "تم بنجاح إزالة {count, plural, one {منتج واحد} other {{count} منتجات}}",
-    "notify-remove-facets-from-channel-success": "تم بنجاح إزالة {count, plural, one {فئة واحدة} other {{count} فئات}} من {channelCode}",
+    "notify-remove-facets-from-channel-success": "تم بنجاح إزالة {count, plural, one {فئة واحدة} other {{count} فئات}} from { channelCode }",
     "notify-remove-product-from-channel-error": "لا يمكن إزالة المنتج من القناة",
     "notify-remove-product-from-channel-error": "لا يمكن إزالة المنتج من القناة",
     "notify-remove-product-from-channel-success": "تمت إزالة المنتج بنجاح من القناة",
     "notify-remove-product-from-channel-success": "تمت إزالة المنتج بنجاح من القناة",
     "notify-remove-variant-from-channel-error": "لا يمكن إزالة متغير المنتج من القناة",
     "notify-remove-variant-from-channel-error": "لا يمكن إزالة متغير المنتج من القناة",
@@ -159,16 +156,16 @@
     "quick-jump-placeholder": "القفزة السريعة إلى البديل",
     "quick-jump-placeholder": "القفزة السريعة إلى البديل",
     "rebuild-search-index": "إعادة بناء مؤشر البحث",
     "rebuild-search-index": "إعادة بناء مؤشر البحث",
     "reindex-error": "حدث خطأ أثناء إعادة بناء مؤشر البحث",
     "reindex-error": "حدث خطأ أثناء إعادة بناء مؤشر البحث",
-    "reindex-successful": "مفهرسة {count, plural, one {متغير المنتج} other {{count} متغيرات المنتج}} في {time} ms",
+    "reindex-successful": "مفهرسة {count , الجمع , واحد {متغير المنتج} آخر {{count} متغيرات المنتج}} في {time} ms",
     "reindexing": "إعادة بناء مؤشر البحث",
     "reindexing": "إعادة بناء مؤشر البحث",
-    "remove-from-channel": "إزالة من {channelCode, plural, one {قناة} other {القنوات}}",
+    "remove-from-channel": "إزالة من {channelcode , حدد , غير محدد {Channel} {{{channelcode}}}",
     "remove-option": "إزالة الخيار",
     "remove-option": "إزالة الخيار",
     "remove-product-from-channel": "إزالة المنتج من القناة",
     "remove-product-from-channel": "إزالة المنتج من القناة",
     "remove-product-variant-from-channel": "إزالة متغير المنتج من القناة",
     "remove-product-variant-from-channel": "إزالة متغير المنتج من القناة",
     "reorder-collection": "إعادة الترتيب",
     "reorder-collection": "إعادة الترتيب",
     "root-collection": "مجموعة الجذر",
     "root-collection": "مجموعة الجذر",
-    "run-pending-search-index-updates": "فهرس البحث: تشغيل {count, plural, one {1 تحديث معلق} other {{count} تحديثات معلقة}}",
-    "running-search-index-updates": "تشغيل {count, plural, one {1 تحديث} other {{count} تحديثات}} للبحث عن فهرس",
+    "run-pending-search-index-updates": "فهرس البحث: تشغيل {count , الجمع , واحد {1 معلق تحديث} {{count} تحديثات معلقة}}",
+    "running-search-index-updates": "تشغيل {count , الجمع , واحد {1 تحديث} {{count} تحديثات}}} للبحث عن فهرس",
     "search-asset-name-or-tag": "ابحث باسم النماذج أو العلامات",
     "search-asset-name-or-tag": "ابحث باسم النماذج أو العلامات",
     "search-for-term": "ابحث عن المصطلح",
     "search-for-term": "ابحث عن المصطلح",
     "search-product-name-or-code": "البحث حسب اسم المنتج أو الرمز",
     "search-product-name-or-code": "البحث حسب اسم المنتج أو الرمز",
@@ -193,7 +190,7 @@
     "use-global-value": "استخدام القيمة العالمية",
     "use-global-value": "استخدام القيمة العالمية",
     "values": "قيم",
     "values": "قيم",
     "variant": "البديل",
     "variant": "البديل",
-    "variant-count": "{count, plural, one {1 متغير} other {{count} متغيرات}}",
+    "variant-count": "{count , الجمع , واحد {1 متغير} {{count} المتغيرات}}",
     "view-contents": "عرض المحتويات",
     "view-contents": "عرض المحتويات",
     "visibility": "الرؤية"
     "visibility": "الرؤية"
   },
   },
@@ -240,14 +237,12 @@
     "delete": "إزالة",
     "delete": "إزالة",
     "description": "وصف",
     "description": "وصف",
     "details": "تفاصيل",
     "details": "تفاصيل",
-    "disable": "إيقاف",
     "disabled": "عاجز",
     "disabled": "عاجز",
     "discard-changes": "تجاهل التغييرات",
     "discard-changes": "تجاهل التغييرات",
     "duplicate": "تكرار",
     "duplicate": "تكرار",
     "edit": "تحرير",
     "edit": "تحرير",
     "edit-field": "تحرير الحقل",
     "edit-field": "تحرير الحقل",
     "edit-note": "تحرير مذكرة",
     "edit-note": "تحرير مذكرة",
-    "enable": "تمكين",
     "enabled": "تمكين",
     "enabled": "تمكين",
     "end-date": "تاريخ الانتهاء",
     "end-date": "تاريخ الانتهاء",
     "expand-entries": "توسيع إدخالات",
     "expand-entries": "توسيع إدخالات",
@@ -261,7 +256,7 @@
     "id": "بطاقة تعريف",
     "id": "بطاقة تعريف",
     "image": "صورة",
     "image": "صورة",
     "items-per-page-option": "{count} لكل صفحة",
     "items-per-page-option": "{count} لكل صفحة",
-    "items-selected-count": "{count} {count, plural, one {عنصر} other {عناصر}} المحددة",
+    "items-selected-count": "{count} {count , الجمع , واحد {item} آخر {العناصر}} المحددة",
     "keep-editing": "استمر في التحرير",
     "keep-editing": "استمر في التحرير",
     "language": "لغة",
     "language": "لغة",
     "launch-extension": "تمديد الإطلاق",
     "launch-extension": "تمديد الإطلاق",
@@ -279,21 +274,21 @@
     "name": "اسم",
     "name": "اسم",
     "no-alerts": "لا تنبيهات",
     "no-alerts": "لا تنبيهات",
     "no-bulk-actions-available": "لا توجد إجراءات كبيرة متوفرة",
     "no-bulk-actions-available": "لا توجد إجراءات كبيرة متوفرة",
-    "no-channel-selected": "لا يوجد قناة",
+    "no-channel-selected": "",
     "no-results": "لا توجد نتائج",
     "no-results": "لا توجد نتائج",
     "not-applicable": "غير قابل للتطبيق",
     "not-applicable": "غير قابل للتطبيق",
     "not-set": "غير مضبوط",
     "not-set": "غير مضبوط",
-    "notify-assign-to-channel-success-with-count": "تم تعيينه بنجاح {count, plural, one {1 عنصر} other {{count} عناصر}} إلى {channelCode}",
+    "notify-assign-to-channel-success-with-count": "تم تعيينه بنجاح {count , الجمع , واحد {1 عنصر} {{count} العناصر}} إلى {channelcode}",
     "notify-bulk-update-success": "تم تحديث {count} { entity }",
     "notify-bulk-update-success": "تم تحديث {count} { entity }",
     "notify-create-error": "حدث خطأ , لم يستطع إنشاء { entity }",
     "notify-create-error": "حدث خطأ , لم يستطع إنشاء { entity }",
     "notify-create-success": "تم إنشاء { entity }",
     "notify-create-success": "تم إنشاء { entity }",
     "notify-delete-error": "حدث خطأ , لم يستطع حذف { entity }",
     "notify-delete-error": "حدث خطأ , لم يستطع حذف { entity }",
-    "notify-delete-error-with-count": "لا يمكن حذف {count, plural, one {1 عنصر} other {{count} عناصر}}",
+    "notify-delete-error-with-count": "لا يمكن حذف {count , الجمع , واحد {1 عنصر} {{count} العناصر}}",
     "notify-delete-success": "تم حذف { entity }",
     "notify-delete-success": "تم حذف { entity }",
-    "notify-delete-success-with-count": "تم حذفه بنجاح {count, plural, one {1 عنصر} other {{count} عناصر}}",
+    "notify-delete-success-with-count": "تم حذفه بنجاح {count , الجمع , واحد {1 item} {{count} head}}",
     "notify-duplicate-error": "تعذر تكرار { name } بسبب خطأ: { error }",
     "notify-duplicate-error": "تعذر تكرار { name } بسبب خطأ: { error }",
-    "notify-duplicate-error-excess": "تعذر تكرار {count} {count, plural, one {عنصر} other {عناصر}} إضافي{count, plural, one {} other {ن}} بسبب أخطاء",
-    "notify-duplicate-success": "تم تكرار {count, plural, one {عنصر واحد} other {{count} عناصر}} بنجاح: {names}",
+    "notify-duplicate-error-excess": "تعذر تكرار { count } {count, plural, one {عنصر} other {عناصر}} إضافي{count, plural, one {} other {ن}} بسبب أخطاء",
+    "notify-duplicate-success": "تم تكرار {count, plural, one {عنصر واحد} other {{count} عناصر}} بنجاح: { names }",
     "notify-remove-from-channel-success-with-count": "تم إزالته بنجاح {count} عناصر من القناة",
     "notify-remove-from-channel-success-with-count": "تم إزالته بنجاح {count} عناصر من القناة",
     "notify-save-changes-error": "حدث خطأ , لم يستطع حفظ التغييرات",
     "notify-save-changes-error": "حدث خطأ , لم يستطع حفظ التغييرات",
     "notify-saved-changes": "التغييرات المحفوظة",
     "notify-saved-changes": "التغييرات المحفوظة",
@@ -321,14 +316,14 @@
     "remove-item-from-list": "إزالة العنصر من القائمة",
     "remove-item-from-list": "إزالة العنصر من القائمة",
     "rename-filter-preset": "إعادة تسمية الضبط",
     "rename-filter-preset": "إعادة تسمية الضبط",
     "reset-columns": "إعادة تعيين الأعمدة",
     "reset-columns": "إعادة تعيين الأعمدة",
-    "results-count": "{count} {count, plural, one {نتيجة واحدة} other {من النتائج}}",
+    "results-count": "{ count } {count, plural, one {نتيجة واحدة} other {من النتائج}}",
     "sample-formatting": "تنسيق العينة",
     "sample-formatting": "تنسيق العينة",
     "save-filter-preset": "حفظ كإعداد مُسبق للتصفية",
     "save-filter-preset": "حفظ كإعداد مُسبق للتصفية",
     "search-and-filter-list": "البحث وتصفية هذه القائمة",
     "search-and-filter-list": "البحث وتصفية هذه القائمة",
     "search-by-name": "البحث عن طريق الإسم",
     "search-by-name": "البحث عن طريق الإسم",
     "select": "يختار...",
     "select": "يختار...",
     "select-display-language": "حدد لغة العرض",
     "select-display-language": "حدد لغة العرض",
-    "select-items-with-count": "حدد {count} {count, plural, one {عنصر} other {عناصر}}",
+    "select-items-with-count": "حدد {count} {count , الجمع , واحد {item} آخر {عناصر}}",
     "select-products": "اختيار المنتجات",
     "select-products": "اختيار المنتجات",
     "select-relation-id": "حدد معرف العلاقة",
     "select-relation-id": "حدد معرف العلاقة",
     "select-table-columns": "حدد أعمدة الجدول",
     "select-table-columns": "حدد أعمدة الجدول",
@@ -359,8 +354,8 @@
     "add-customer-to-group": "أضف العميل إلى مجموعة",
     "add-customer-to-group": "أضف العميل إلى مجموعة",
     "add-customer-to-groups-with-count": "أضف العميل إلى {count, plural, one {مجموعة واحدة} other {{count} مجموعات}}",
     "add-customer-to-groups-with-count": "أضف العميل إلى {count, plural, one {مجموعة واحدة} other {{count} مجموعات}}",
     "add-customers-to-group": "أضف العملاء إلى مجموعة",
     "add-customers-to-group": "أضف العملاء إلى مجموعة",
-    "add-customers-to-group-success": "تمت إضافة {customercount, plural, one {1 عميل} other {{customercount} عملاء}} إلى \"{groupname}\"",
-    "add-customers-to-group-with-count": "إضافة {count, plural, one {1 عميل} other {{count} عملاء}}",
+    "add-customers-to-group-success": "تمت إضافة {customercount , الجمع , واحد {1 عميل} آخر {{customercount} العملاء}} إلى \" {groupname} \"",
+    "add-customers-to-group-with-count": "إضافة {count , الجمع , واحد {1 عميل} {{count} عملاء}}",
     "add-customers-to-group-with-name": "إضافة العملاء إلى \" {groupName} \"",
     "add-customers-to-group-with-name": "إضافة العملاء إلى \" {groupName} \"",
     "addresses": "عناوين",
     "addresses": "عناوين",
     "city": "مدينة",
     "city": "مدينة",
@@ -411,7 +406,7 @@
     "postal-code": "رمز بريدي",
     "postal-code": "رمز بريدي",
     "province": "مقاطعة",
     "province": "مقاطعة",
     "registered": "مسجل",
     "registered": "مسجل",
-    "remove-customers-from-group-success": "تمت إزالة {customercount, plural, one {1 عميل} other {{customercount} عملاء}} من \"{groupname}\"",
+    "remove-customers-from-group-success": "تمت إزالة {customercount , الجمع , واحد {1 customer} {{customercount}}}} من \" {groupname} \"",
     "remove-from-group": "إزالة من هذه المجموعة",
     "remove-from-group": "إزالة من هذه المجموعة",
     "search-customers-by-email": "البحث عن طريق عنوان البريد الإلكتروني",
     "search-customers-by-email": "البحث عن طريق عنوان البريد الإلكتروني",
     "search-customers-by-email-last-name-postal-code": "ابحث عن طريق البريد الإلكتروني / الاسم الأخير / الرمز البريدي",
     "search-customers-by-email-last-name-postal-code": "ابحث عن طريق البريد الإلكتروني / الاسم الأخير / الرمز البريدي",
@@ -480,17 +475,15 @@
     "year": "سنة"
     "year": "سنة"
   },
   },
   "editor": {
   "editor": {
-    "height": "الارتفاع",
     "image-alt": "الوصف (بديل)",
     "image-alt": "الوصف (بديل)",
     "image-src": "مصدر",
     "image-src": "مصدر",
     "image-title": "عنوان",
     "image-title": "عنوان",
     "insert-image": "إدراج صورة",
     "insert-image": "إدراج صورة",
-    "link-href": "رابط الهدف",
+    "link-href": "Link Href",
     "link-target": "رابط الهدف",
     "link-target": "رابط الهدف",
     "link-title": "عنوان الرابط",
     "link-title": "عنوان الرابط",
     "remove-link": "إزالة",
     "remove-link": "إزالة",
-    "set-link": "تعيين الرابط",
-    "width": "العرض"
+    "set-link": "Set Link"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "أنت غير مخول حاليًا للوصول إلى \" {path} \". إما أنك تفتقر إلى الأذونات , أو انتهت جلستك.",
     "403-forbidden": "أنت غير مخول حاليًا للوصول إلى \" {path} \". إما أنك تفتقر إلى الأذونات , أو انتهت جلستك.",
@@ -535,7 +528,6 @@
     "promotions": "العروض",
     "promotions": "العروض",
     "roles": "الأدوار",
     "roles": "الأدوار",
     "sales": "مبيعات",
     "sales": "مبيعات",
-    "scheduled-tasks": "المهام المجدولة",
     "sellers": "البائعون",
     "sellers": "البائعون",
     "settings": "إعدادات",
     "settings": "إعدادات",
     "shipping-methods": "طرق الشحن",
     "shipping-methods": "طرق الشحن",
@@ -569,7 +561,7 @@
     "cancel-selected-items": "إلغاء العناصر المحددة",
     "cancel-selected-items": "إلغاء العناصر المحددة",
     "cancel-specified-items": "إلغاء العناصر المحددة",
     "cancel-specified-items": "إلغاء العناصر المحددة",
     "cancellation-reason": "سبب الإلغاء",
     "cancellation-reason": "سبب الإلغاء",
-    "cancelled-order-items-success": "تم إلغاء {count} {count, plural, one {عنصر} other {عناصر}} من الطلب",
+    "cancelled-order-items-success": "تم إلغاء { count } { count, plural, one {عنصر} other {عناصر} } من الطلب",
     "cancelled-order-success": "الطلب الذي تم إلغاؤه بنجاح",
     "cancelled-order-success": "الطلب الذي تم إلغاؤه بنجاح",
     "complete-draft-order": "إنهاء المسودة",
     "complete-draft-order": "إنهاء المسودة",
     "confirm-modifications": "تأكيد التعديلات",
     "confirm-modifications": "تأكيد التعديلات",
@@ -596,7 +588,7 @@
     "history-fulfillment-delivered": "الوفاء بتسليم",
     "history-fulfillment-delivered": "الوفاء بتسليم",
     "history-fulfillment-shipped": "تم شحن الوفاء",
     "history-fulfillment-shipped": "تم شحن الوفاء",
     "history-fulfillment-transition": "تم نقل الوفاء من {من} إلى {إلى}",
     "history-fulfillment-transition": "تم نقل الوفاء من {من} إلى {إلى}",
-    "history-items-cancelled": "{count} {count, plural, one {عنصر} other {عناصر}} تم إلغاؤه",
+    "history-items-cancelled": "{count} {count , الجمع , واحد {item} آخر {العناصر}} تم إلغاؤه",
     "history-order-cancelled": "تم الغاء الأمر او الطلب",
     "history-order-cancelled": "تم الغاء الأمر او الطلب",
     "history-order-created": "أجل خلق",
     "history-order-created": "أجل خلق",
     "history-order-fulfilled": "أمر تم تحقيقه",
     "history-order-fulfilled": "أمر تم تحقيقه",
@@ -604,16 +596,16 @@
     "history-order-transition": "تم نقل الطلب من {من} إلى {إلى}",
     "history-order-transition": "تم نقل الطلب من {من} إلى {إلى}",
     "history-payment-settled": "الدفع المستقر",
     "history-payment-settled": "الدفع المستقر",
     "history-payment-transition": "الدفع #{id} انتقل من {من} إلى {إلى}",
     "history-payment-transition": "الدفع #{id} انتقل من {من} إلى {إلى}",
-    "history-refund-transition": "REFUND #{id} انتقل من {من} إلى {إلى}",
-    "item-count": "{count} {count, plural, one {عنصر} other {عناصر}}",
+    "history-refund-transition": "REWNDUND #{id} انتقل من {من} إلى {إلى}",
+    "item-count": "{count} {count , الجمع , واحد {item} آخر {عناصر}}",
     "line-fulfillment-all": "جميع العناصر التي تم الوفاء بها",
     "line-fulfillment-all": "جميع العناصر التي تم الوفاء بها",
     "line-fulfillment-none": "لا توجد عناصر تحققت",
     "line-fulfillment-none": "لا توجد عناصر تحققت",
     "line-fulfillment-partial": "{count} من العناصر {total} تم الوفاء بها",
     "line-fulfillment-partial": "{count} من العناصر {total} تم الوفاء بها",
     "manually-transition-to-state": "الانتقال يدويًا إلى الدولة ...",
     "manually-transition-to-state": "الانتقال يدويًا إلى الدولة ...",
     "manually-transition-to-state-message": "نقل الأمر يدويًا إلى دولة أخرى. لاحظ أن حالات النظام تخضع لقواعد قد تمنع بعض التحولات.",
     "manually-transition-to-state-message": "نقل الأمر يدويًا إلى دولة أخرى. لاحظ أن حالات النظام تخضع لقواعد قد تمنع بعض التحولات.",
-    "modification-adding-items": "إضافة {count} {count, plural, one {عنصر} other {عناصر}}",
-    "modification-adding-surcharges": "إضافة {count} {count, plural, one {رسوم إضافية} other {رسوم إضافية}}",
-    "modification-adjusting-lines": "ضبط {count} {count, plural, one {سطر} other {أسطر}}",
+    "modification-adding-items": "إضافة {count} {count , الجمع , واحد {item} آخر {العناصر}}",
+    "modification-adding-surcharges": "إضافة {count} {count , الجمع , واحد {رسوم إضافية} {surghres}}",
+    "modification-adjusting-lines": "ضبط {count} {count , الجمع , واحد {line} آخر {lines}}",
     "modification-not-settled": "ليس مستقر",
     "modification-not-settled": "ليس مستقر",
     "modification-recalculate-shipping": "إعادة حساب الشحن",
     "modification-recalculate-shipping": "إعادة حساب الشحن",
     "modification-settled": "تسوية",
     "modification-settled": "تسوية",
@@ -672,7 +664,7 @@
     "refund-total-warning": "يرجى تحديد مبالغ الاسترداد التي تساوي إجمالي الاسترداد.",
     "refund-total-warning": "يرجى تحديد مبالغ الاسترداد التي تساوي إجمالي الاسترداد.",
     "refund-with-amount": "المبلغ المسترد}",
     "refund-with-amount": "المبلغ المسترد}",
     "refundable-amount": "المبلغ القابل للاسترداد",
     "refundable-amount": "المبلغ القابل للاسترداد",
-    "refunded-count": "{count} {count, plural, one {عنصر} other {عناصر}} مسترد",
+    "refunded-count": "{count} {count , الجمع , واحد {item} آخر {العناصر}}",
     "removed-items": "العناصر التي تمت إزالتها",
     "removed-items": "العناصر التي تمت إزالتها",
     "return-to-stock": "العودة إلى المخزون",
     "return-to-stock": "العودة إلى المخزون",
     "search-by-order-filters": "ابحث بالاسم / الكود / معرف المعاملة",
     "search-by-order-filters": "ابحث بالاسم / الكود / معرف المعاملة",
@@ -683,7 +675,7 @@
     "set-billing-address": "تعيين عنوان الفواتير",
     "set-billing-address": "تعيين عنوان الفواتير",
     "set-coupon-codes": "تعيين رموز القسيمة",
     "set-coupon-codes": "تعيين رموز القسيمة",
     "set-customer-for-order": "تعيين العميل",
     "set-customer-for-order": "تعيين العميل",
-    "set-customer-success": "تم تعيين العميل بنجاح",
+    "set-customer-success": "",
     "set-fulfillment-state": "مارك كـ {state}",
     "set-fulfillment-state": "مارك كـ {state}",
     "set-shipping-address": "تعيين عنوان الشحن",
     "set-shipping-address": "تعيين عنوان الشحن",
     "set-shipping-method": "تعيين طريقة الشحن",
     "set-shipping-method": "تعيين طريقة الشحن",
@@ -718,7 +710,7 @@
   },
   },
   "settings": {
   "settings": {
     "add-countries-to-zone": "أضف البلدان إلى {zonename}",
     "add-countries-to-zone": "أضف البلدان إلى {zonename}",
-    "add-countries-to-zone-success": "تمت إضافة {countryCount, plural, one {1 بلد} other {{countryCount} بلدان}} إلى المنطقة \"{zoneName}\"",
+    "add-countries-to-zone-success": "تمت إضافة {CountryCount} {CountryCount , الجمع , واحد {Country} آخر {البلدان}} إلى Zone \" {Zonename} \"",
     "add-products-to-test-order": "إضافة منتجات إلى ترتيب الاختبار",
     "add-products-to-test-order": "إضافة منتجات إلى ترتيب الاختبار",
     "administrator": "مدير",
     "administrator": "مدير",
     "channel": "قناة",
     "channel": "قناة",
@@ -756,7 +748,7 @@
     "prices-include-tax": "تشمل الأسعار ضريبة على المنطقة الافتراضية",
     "prices-include-tax": "تشمل الأسعار ضريبة على المنطقة الافتراضية",
     "profile": "حساب تعريفي",
     "profile": "حساب تعريفي",
     "rate": "معدل",
     "rate": "معدل",
-    "remove-countries-from-zone-success": "تمت إزالة {countryCount, plural, one {1 بلد} other {{countryCount} بلدان}} من المنطقة \"{zoneName}\"",
+    "remove-countries-from-zone-success": "تمت إزالة {CountryCount} {CountryCount , الجمع , واحد {Country} آخر {البلدان}} من Zone \" {Zonename} \"",
     "remove-from-zone": "إزالة من المنطقة",
     "remove-from-zone": "إزالة من المنطقة",
     "role": "دور",
     "role": "دور",
     "roles": "الأدوار",
     "roles": "الأدوار",
@@ -817,11 +809,6 @@
     "job-state-completed": "تمت",
     "job-state-completed": "تمت",
     "job-state-failed": "فشل",
     "job-state-failed": "فشل",
     "job-state-pending": "قيد الانتظار",
     "job-state-pending": "قيد الانتظار",
-    "job-state-running": "قيد التشغيل",
-    "last-executed-at": "آخر تنفيذ",
-    "last-result": "آخر نتيجة",
-    "next-execution-at": "التالي",
-    "schedule": "الجدول",
-    "task-id": "معرف المهمة"
+    "job-state-running": "قيد التشغيل"
   }
   }
 }
 }

+ 198 - 211
packages/admin-ui/src/lib/static/i18n-messages/cs.json

@@ -6,18 +6,16 @@
     "add-asset": "Přidat médium",
     "add-asset": "Přidat médium",
     "add-asset-with-count": "Přidat {count, plural, =0 {médium} =1 {médium} few {{count} média} other {{count} médií}}",
     "add-asset-with-count": "Přidat {count, plural, =0 {médium} =1 {médium} few {{count} média} other {{count} médií}}",
     "assets-selected-count": "{ count } médií vybráno",
     "assets-selected-count": "{ count } médií vybráno",
-    "change-asset": "Změnit médium",
     "dimensions": "Rozměry",
     "dimensions": "Rozměry",
     "focal-point": "Ohnisko",
     "focal-point": "Ohnisko",
     "notify-create-assets-success": "{count, plural, =1 {Vytvořeno} few {Vytvořena} other {Vytvořeno}} {count, plural, =1 {médium} few {{count} média} other {{count} médií}}",
     "notify-create-assets-success": "{count, plural, =1 {Vytvořeno} few {Vytvořena} other {Vytvořeno}} {count, plural, =1 {médium} few {{count} média} other {{count} médií}}",
     "original-asset-size": "Originální velikost",
     "original-asset-size": "Originální velikost",
     "preview": "Náhled",
     "preview": "Náhled",
     "remove-asset": "Smazat médium",
     "remove-asset": "Smazat médium",
-    "select-asset": "Vybrat médium",
+    "select-asset": "",
     "select-assets": "Vybrat média",
     "select-assets": "Vybrat média",
     "set-as-featured-asset": "Zvýraznit médium",
     "set-as-featured-asset": "Zvýraznit médium",
     "set-focal-point": "Nastavit ohnisko",
     "set-focal-point": "Nastavit ohnisko",
-    "size": "Velikost",
     "source-file": "Zdrojový soubor",
     "source-file": "Zdrojový soubor",
     "unset-focal-point": "Odebrat",
     "unset-focal-point": "Odebrat",
     "update-focal-point": "Aktualizovat ohnisko",
     "update-focal-point": "Aktualizovat ohnisko",
@@ -42,14 +40,13 @@
     "modifying-order": "Modifikace objednávky",
     "modifying-order": "Modifikace objednávky",
     "orders": "Objednávky",
     "orders": "Objednávky",
     "payment-methods": "Platební metody",
     "payment-methods": "Platební metody",
-    "product-options": "Volby produktu",
+    "product-options": "",
     "products": "Produkty",
     "products": "Produkty",
     "profile": "Profil",
     "profile": "Profil",
     "promotions": "Propagace",
     "promotions": "Propagace",
     "roles": "Role",
     "roles": "Role",
-    "scheduled-tasks": "Úlohy",
-    "seller-orders": "Objednávky prodávajícího",
-    "sellers": "Prodávající",
+    "seller-orders": "",
+    "sellers": "",
     "shipping-methods": "Dopravní metody",
     "shipping-methods": "Dopravní metody",
     "stock-locations": "Místa skladování",
     "stock-locations": "Místa skladování",
     "system-status": "Status systému",
     "system-status": "Status systému",
@@ -61,12 +58,12 @@
     "add-facet-value": "Přidat hodnotu atributu",
     "add-facet-value": "Přidat hodnotu atributu",
     "add-facets": "Přidat atribut",
     "add-facets": "Přidat atribut",
     "add-option": "Přidat možnost",
     "add-option": "Přidat možnost",
-    "add-price-in-another-currency": "Přidat cenu v jiné měně",
-    "add-stock-location": "Přidat místo skladování",
-    "add-stock-to-location": "Přidat sklad",
-    "asset": "Médium",
-    "asset-preview-links": "Náhledy médií",
-    "assets": "Média",
+    "add-price-in-another-currency": "",
+    "add-stock-location": "",
+    "add-stock-to-location": "",
+    "asset": "",
+    "asset-preview-links": "",
+    "assets": "",
     "assign-product-to-channel-success": "Produkt byl úspěšně přiřazen do \"{ channel }\"",
     "assign-product-to-channel-success": "Produkt byl úspěšně přiřazen do \"{ channel }\"",
     "assign-products-to-channel": "Přiřadit produkty do kanálu",
     "assign-products-to-channel": "Přiřadit produkty do kanálu",
     "assign-to-named-channel": "Přiřadit do { channelCode }",
     "assign-to-named-channel": "Přiřadit do { channelCode }",
@@ -76,87 +73,87 @@
     "auto-update-product-variant-name": "Automaticky aktualizovat jména variant",
     "auto-update-product-variant-name": "Automaticky aktualizovat jména variant",
     "calculated-price": "Vypočtená cena",
     "calculated-price": "Vypočtená cena",
     "calculated-price-tooltip": "Je zde konfigurován vlastní výpočet ceny, který upravuje cenu nastavenou výše:",
     "calculated-price-tooltip": "Je zde konfigurován vlastní výpočet ceny, který upravuje cenu nastavenou výše:",
-    "cannot-create-variants-without-options": "Nelze vytvořit varianty bez volb",
+    "cannot-create-variants-without-options": "",
     "channel-price-preview": "Náhled ceny v kanálu",
     "channel-price-preview": "Náhled ceny v kanálu",
-    "collection": "Kolekce",
+    "collection": "",
     "collection-contents": "Obsah kolekce",
     "collection-contents": "Obsah kolekce",
-    "collections": "Kolekce",
-    "confirm-bulk-delete-products": "Smazat {count} {count, plural, one {produkt} few {produkty} other {produktů}}?",
-    "confirm-cancel": "Zrušit",
+    "collections": "",
+    "confirm-bulk-delete-products": "",
+    "confirm-cancel": "",
     "confirm-delete-assets": "Smazat {count} {count, plural, one {médium} few {média} other {médií}}?",
     "confirm-delete-assets": "Smazat {count} {count, plural, one {médium} few {média} other {médií}}?",
     "confirm-delete-facet-value": "Smazat hodnotu atributu?",
     "confirm-delete-facet-value": "Smazat hodnotu atributu?",
     "confirm-delete-product": "Smazat produkt?",
     "confirm-delete-product": "Smazat produkt?",
-    "confirm-delete-product-option": "Smazat volbu?",
-    "confirm-delete-product-option-group": "Smazat skupinu volby?",
-    "confirm-delete-product-option-group-body": "Opravdu chcete smazat skupinu volby \"{ groupName }\"?",
+    "confirm-delete-product-option": "",
+    "confirm-delete-product-option-group": "",
+    "confirm-delete-product-option-group-body": "",
     "confirm-delete-product-variant": "Smazat variantu produktu?",
     "confirm-delete-product-variant": "Smazat variantu produktu?",
-    "confirm-deletion-of-unused-variants-body": "Opravdu chcete smazat {count} {count, plural, one {nepoužitou variantu} few {nepoužité varianty} other {nepoužitých variant}}?",
-    "confirm-deletion-of-unused-variants-title": "Smazat nepoužité varianty",
-    "create-draft-order": "Vytvořit návrh objednávky",
+    "confirm-deletion-of-unused-variants-body": "",
+    "confirm-deletion-of-unused-variants-title": "",
+    "create-draft-order": "",
     "create-facet-value": "Vytvořit novou hodnotu atributu",
     "create-facet-value": "Vytvořit novou hodnotu atributu",
     "create-new-collection": "Vytvořit kolekci",
     "create-new-collection": "Vytvořit kolekci",
     "create-new-facet": "Vytvořit nový atribut",
     "create-new-facet": "Vytvořit nový atribut",
     "create-new-product": "Nový produkt",
     "create-new-product": "Nový produkt",
-    "create-new-stock-location": "Vytvořit nové místo skladování",
-    "create-product-option-group": "Vytvořit skupinu volby",
-    "create-product-variant": "Vytvořit variantu produktu",
-    "default-currency": "Výchozí měna",
-    "do-not-inherit-filters": "Nezdědit filtry",
+    "create-new-stock-location": "",
+    "create-product-option-group": "",
+    "create-product-variant": "",
+    "default-currency": "",
+    "do-not-inherit-filters": "",
     "drop-files-to-upload": "Přetáhněte soubory k nahrávání",
     "drop-files-to-upload": "Přetáhněte soubory k nahrávání",
     "duplicate-collections": "Duplikovat kolekce",
     "duplicate-collections": "Duplikovat kolekce",
     "duplicate-facets": "Duplikovat prvky",
     "duplicate-facets": "Duplikovat prvky",
     "duplicate-products": "Duplikovat produkty",
     "duplicate-products": "Duplikovat produkty",
-    "edit-facet-values": "Upravit hodnoty atributu",
-    "edit-options": "Upravit volby",
-    "facet": "Atribut",
-    "facet-value-not-available": "Hodnota atributu není k dispozici",
+    "edit-facet-values": "",
+    "edit-options": "",
+    "facet": "",
+    "facet-value-not-available": "",
     "facet-values": "Hodnoty atributů",
     "facet-values": "Hodnoty atributů",
-    "facets": "Atributy",
+    "facets": "",
     "filter-by-name": "Filtrovat dle jména",
     "filter-by-name": "Filtrovat dle jména",
-    "filter-inheritance": "Zdědit filtry",
+    "filter-inheritance": "",
     "filters": "Filtry",
     "filters": "Filtry",
-    "inherit-filters-from-parent": "Zdědit filtry z nadřazené kolekce",
-    "live-preview-contents": "Živý náhled obsahu",
+    "inherit-filters-from-parent": "",
+    "live-preview-contents": "",
     "manage-variants": "Správa variant",
     "manage-variants": "Správa variant",
-    "move-collection-to": "Přesunout kolekci",
-    "move-collections": "Přesunout kolekce",
-    "move-collections-success": "Kolekce byla úspěšně přesunuta",
+    "move-collection-to": "",
+    "move-collections": "",
+    "move-collections-success": "",
     "move-down": "Posunout dolů",
     "move-down": "Posunout dolů",
     "move-to": "Posunout",
     "move-to": "Posunout",
     "move-up": "Posunout nahoru",
     "move-up": "Posunout nahoru",
-    "name": "Jméno",
+    "name": "",
     "no-channel-selected": "Žádný kanál nevybrán",
     "no-channel-selected": "Žádný kanál nevybrán",
     "no-featured-asset": "Žádné zvýrazněné médium",
     "no-featured-asset": "Žádné zvýrazněné médium",
     "no-selection": "Žádný výběr",
     "no-selection": "Žádný výběr",
-    "no-stock-locations-available-on-current-channel": "Žádné místo skladování není k dispozici na aktuálním kanálu",
-    "notify-bulk-delete-products-success": "Produkty byly úspěšně smazány",
-    "notify-remove-facets-from-channel-success": "Atributy byly úspěšně odebrány z kanálu",
+    "no-stock-locations-available-on-current-channel": "",
+    "notify-bulk-delete-products-success": "",
+    "notify-remove-facets-from-channel-success": "",
     "notify-remove-product-from-channel-error": "Produkt se nepovedlo odebrat z kanálu",
     "notify-remove-product-from-channel-error": "Produkt se nepovedlo odebrat z kanálu",
     "notify-remove-product-from-channel-success": "Produkt byl úspěšně odebrán z kanálu",
     "notify-remove-product-from-channel-success": "Produkt byl úspěšně odebrán z kanálu",
     "notify-remove-variant-from-channel-error": "Variantu se nepovedlo odebrat z kanálu",
     "notify-remove-variant-from-channel-error": "Variantu se nepovedlo odebrat z kanálu",
     "notify-remove-variant-from-channel-success": "Varianta byla úspěšně odebrána z kanálu",
     "notify-remove-variant-from-channel-success": "Varianta byla úspěšně odebrána z kanálu",
-    "number-of-variants": "Počet variant",
+    "number-of-variants": "",
     "option": "Volba",
     "option": "Volba",
     "option-name": "Jméno volby",
     "option-name": "Jméno volby",
     "option-values": "Hodnoty volby",
     "option-values": "Hodnoty volby",
     "out-of-stock-threshold": "Prahová hodnota pro vyprodání zásob",
     "out-of-stock-threshold": "Prahová hodnota pro vyprodání zásob",
     "out-of-stock-threshold-tooltip": "Nastaví hodnotu skladu, při které je tato varianta považována za vyprodanou. Použití záporné hodnoty umožňuje objednávat \"na objednávku\".",
     "out-of-stock-threshold-tooltip": "Nastaví hodnotu skladu, při které je tato varianta považována za vyprodanou. Použití záporné hodnoty umožňuje objednávat \"na objednávku\".",
-    "page-description-options-editor": "Upravit popis stránky",
+    "page-description-options-editor": "",
     "price": "Cena",
     "price": "Cena",
-    "price-and-tax": "Cena a daň",
+    "price-and-tax": "",
     "price-conversion-factor": "Přepočítávací koeficient ceny",
     "price-conversion-factor": "Přepočítávací koeficient ceny",
     "price-in-channel": "Cena v { channel }",
     "price-in-channel": "Cena v { channel }",
     "price-includes-tax-at": "Včetně daně { rate }%",
     "price-includes-tax-at": "Včetně daně { rate }%",
     "price-with-tax-in-default-zone": "Včetně { rate }% daně: { price }",
     "price-with-tax-in-default-zone": "Včetně { rate }% daně: { price }",
     "private": "Soukromý",
     "private": "Soukromý",
-    "product": "Produkt",
+    "product": "",
     "product-name": "Jméno produktu",
     "product-name": "Jméno produktu",
-    "product-options": "Volby produktu",
-    "product-variant-exists": "Varianta produktu již existuje",
+    "product-options": "",
+    "product-variant-exists": "",
     "product-variants": "Varianty produktu",
     "product-variants": "Varianty produktu",
     "products": "Produkty",
     "products": "Produkty",
     "public": "Veřejný",
     "public": "Veřejný",
-    "quick-jump-placeholder": "Hledat produkt",
+    "quick-jump-placeholder": "",
     "rebuild-search-index": "Obnovit vyhledávací index",
     "rebuild-search-index": "Obnovit vyhledávací index",
     "reindex-error": "Při regeneraci vyhledávacího indexu došlo k chybě",
     "reindex-error": "Při regeneraci vyhledávacího indexu došlo k chybě",
     "reindex-successful": "Zaindexováno: {count, plural, one {varianta produktu} other {{count} variant produktu}} během {time}ms",
     "reindex-successful": "Zaindexováno: {count, plural, one {varianta produktu} other {{count} variant produktu}} během {time}ms",
@@ -165,21 +162,21 @@
     "remove-option": "Odebrat volbu",
     "remove-option": "Odebrat volbu",
     "remove-product-from-channel": "Odebrat produkt z kanálu",
     "remove-product-from-channel": "Odebrat produkt z kanálu",
     "remove-product-variant-from-channel": "Odebrat variantu z kanálu",
     "remove-product-variant-from-channel": "Odebrat variantu z kanálu",
-    "reorder-collection": "Přeřadit kolekci",
-    "root-collection": "Hlavní kolekce",
-    "run-pending-search-index-updates": "Spustit aktualizace vyhledávacího indexu",
-    "running-search-index-updates": "Aktualizace vyhledávacího indexu",
-    "search-asset-name-or-tag": "Hledat médium dle jména nebo tagu",
+    "reorder-collection": "",
+    "root-collection": "",
+    "run-pending-search-index-updates": "",
+    "running-search-index-updates": "",
+    "search-asset-name-or-tag": "",
     "search-for-term": "Hledat výraz",
     "search-for-term": "Hledat výraz",
     "search-product-name-or-code": "Hledat produkt dle jména, nebo kódu",
     "search-product-name-or-code": "Hledat produkt dle jména, nebo kódu",
-    "select-product": "Vybrat produkt",
-    "select-product-variant": "Vybrat variantu produktu",
+    "select-product": "",
+    "select-product-variant": "",
     "sku": "SKU",
     "sku": "SKU",
     "slug": "Odkaz",
     "slug": "Odkaz",
     "slug-pattern-error": "Špatný formát odkazu",
     "slug-pattern-error": "Špatný formát odkazu",
     "stock-allocated": "Alokováno",
     "stock-allocated": "Alokováno",
-    "stock-levels": "Úrovně skladu",
-    "stock-location": "Místo skladování",
+    "stock-levels": "",
+    "stock-location": "",
     "stock-locations": "Místa skladování",
     "stock-locations": "Místa skladování",
     "stock-on-hand": "Sklad",
     "stock-on-hand": "Sklad",
     "tax-category": "Skupina daní",
     "tax-category": "Skupina daní",
@@ -193,41 +190,41 @@
     "use-global-value": "Dle globálního nastavení",
     "use-global-value": "Dle globálního nastavení",
     "values": "Hodnoty",
     "values": "Hodnoty",
     "variant": "Varianta",
     "variant": "Varianta",
-    "variant-count": "Počet variant",
+    "variant-count": "",
     "view-contents": "Zobrazit obsah",
     "view-contents": "Zobrazit obsah",
     "visibility": "Viditelnost"
     "visibility": "Viditelnost"
   },
   },
   "common": {
   "common": {
     "ID": "ID",
     "ID": "ID",
-    "add-filter": "Přidat filtr",
+    "add-filter": "",
     "add-item-to-list": "Přidat položku do seznamu",
     "add-item-to-list": "Přidat položku do seznamu",
     "add-note": "Přidat poznámku",
     "add-note": "Přidat poznámku",
-    "apply": "Použít",
-    "assign-to-channel": "Přiřadit do { channelCode }",
+    "apply": "",
+    "assign-to-channel": "",
     "assign-to-channels": "Přiřadit k {count, plural, one {kanálu} other {kanálům}}",
     "assign-to-channels": "Přiřadit k {count, plural, one {kanálu} other {kanálům}}",
-    "available-currencies": "Dostupné měny",
+    "available-currencies": "",
     "available-languages": "Dostupné jazyky",
     "available-languages": "Dostupné jazyky",
-    "boolean-and": "A",
-    "boolean-false": "Ne",
-    "boolean-or": "Nebo",
-    "boolean-true": "Ano",
-    "breadcrumb": "Cesta",
-    "browser-default": "Výchozí prohlížeč",
+    "boolean-and": "",
+    "boolean-false": "",
+    "boolean-or": "",
+    "boolean-true": "",
+    "breadcrumb": "",
+    "browser-default": "",
     "cancel": "Zrušit",
     "cancel": "Zrušit",
     "cancel-navigation": "Zrušit navigaci",
     "cancel-navigation": "Zrušit navigaci",
-    "change-selection": "Změnit výběr",
+    "change-selection": "",
     "channel": "Kanál",
     "channel": "Kanál",
     "channels": "Kanály",
     "channels": "Kanály",
-    "clear-selection": "Vymazat výběr",
+    "clear-selection": "",
     "code": "Kód",
     "code": "Kód",
     "collapse-entries": "Schovat vstupy",
     "collapse-entries": "Schovat vstupy",
     "confirm": "Potvrdit",
     "confirm": "Potvrdit",
-    "confirm-bulk-assign-to-channel": "Přiřadit do kanálu",
-    "confirm-bulk-delete": "Smazat",
-    "confirm-bulk-remove-from-channel": "Odebrat z kanálu",
+    "confirm-bulk-assign-to-channel": "",
+    "confirm-bulk-delete": "",
+    "confirm-bulk-remove-from-channel": "",
     "confirm-delete-note": "Smazat poznámku?",
     "confirm-delete-note": "Smazat poznámku?",
     "confirm-navigation": "Potvrdit navigaci",
     "confirm-navigation": "Potvrdit navigaci",
-    "contents": "Obsah",
+    "contents": "",
     "create": "Vytvořit",
     "create": "Vytvořit",
     "created-at": "Vytvořeno",
     "created-at": "Vytvořeno",
     "custom-fields": "Extra pole",
     "custom-fields": "Extra pole",
@@ -236,111 +233,109 @@
     "data-table-filter-date-relative": "Relativní datum",
     "data-table-filter-date-relative": "Relativní datum",
     "default-channel": "Výchozí kanál",
     "default-channel": "Výchozí kanál",
     "default-language": "Výchozí jazyk",
     "default-language": "Výchozí jazyk",
-    "default-tax-category": "Výchozí skupina daní",
+    "default-tax-category": "",
     "delete": "Smazat",
     "delete": "Smazat",
     "description": "Popis",
     "description": "Popis",
     "details": "Detaily",
     "details": "Detaily",
-    "disable": "Vypnout",
     "disabled": "Vypnuto",
     "disabled": "Vypnuto",
     "discard-changes": "Zrušit změny",
     "discard-changes": "Zrušit změny",
     "duplicate": "Duplikovat",
     "duplicate": "Duplikovat",
     "edit": "Upravit",
     "edit": "Upravit",
     "edit-field": "Upravit pole",
     "edit-field": "Upravit pole",
     "edit-note": "Upravit poznámku",
     "edit-note": "Upravit poznámku",
-    "enable": "Zapnout",
     "enabled": "Zapnuto",
     "enabled": "Zapnuto",
-    "end-date": "Datum konce",
+    "end-date": "",
     "expand-entries": "Otevřít vstupy",
     "expand-entries": "Otevřít vstupy",
     "extension-running-in-separate-window": "Rozšíření běží v novém okně",
     "extension-running-in-separate-window": "Rozšíření běží v novém okně",
-    "filter": "Filtr",
+    "filter": "",
     "filter-preset-name": "Název předvolby filtru",
     "filter-preset-name": "Název předvolby filtru",
-    "force-delete": "Vynutit smazat",
-    "force-remove": "Vynutit odebrat",
-    "general": "Obecné",
+    "force-delete": "",
+    "force-remove": "",
+    "general": "",
     "guest": "Host",
     "guest": "Host",
-    "id": "ID",
-    "image": "Obrázek",
+    "id": "",
+    "image": "",
     "items-per-page-option": "{ count } na stránku",
     "items-per-page-option": "{ count } na stránku",
-    "items-selected-count": "Vybrané { count } {count, plural, one {položka} other {položek}}",
-    "keep-editing": "Pokračovat v úpravách",
+    "items-selected-count": "",
+    "keep-editing": "",
     "language": "Jazyk",
     "language": "Jazyk",
     "launch-extension": "Spustit rozšíření",
     "launch-extension": "Spustit rozšíření",
-    "list-items-and-n-more": "Seznam { count } {count, plural, one {položka} other {položek}} a dalších",
+    "list-items-and-n-more": "",
     "live-update": "Živé aktualizace",
     "live-update": "Živé aktualizace",
-    "locale": "Místní nastavení",
+    "locale": "",
     "log-out": "Odhlásit",
     "log-out": "Odhlásit",
     "login": "Přihlásit",
     "login": "Přihlásit",
-    "login-image-title": "Přihlásit se",
-    "login-title": "Přihlásit se",
-    "manage-tags": "Spravovat tagy",
-    "manage-tags-description": "Přidat, upravit nebo smazat tagy",
-    "medium-date": "Měsíc, den, rok",
+    "login-image-title": "",
+    "login-title": "",
+    "manage-tags": "",
+    "manage-tags-description": "",
+    "medium-date": "",
     "more": "Více...",
     "more": "Více...",
     "name": "jméno",
     "name": "jméno",
-    "no-alerts": "Žádné upozornění",
-    "no-bulk-actions-available": "Žádné dostupné akce",
-    "no-channel-selected": "Žádný kanál nevybrán",
+    "no-alerts": "",
+    "no-bulk-actions-available": "",
+    "no-channel-selected": "",
     "no-results": "Žádné výsledky",
     "no-results": "Žádné výsledky",
-    "not-applicable": "Neplatné",
+    "not-applicable": "",
     "not-set": "Nenastaveno",
     "not-set": "Nenastaveno",
-    "notify-assign-to-channel-success-with-count": "Přiřazeno do { count } {count, plural, one {kanálu} other {kanálů}}",
-    "notify-bulk-update-success": "Úspěšně aktualizováno { count } {count, plural, one {položka} other {položek}}",
+    "notify-assign-to-channel-success-with-count": "",
+    "notify-bulk-update-success": "",
     "notify-create-error": "Vyskytla se chyba, nebylo vytvořeno: { entity }",
     "notify-create-error": "Vyskytla se chyba, nebylo vytvořeno: { entity }",
     "notify-create-success": "Vytvořeno: { entity }",
     "notify-create-success": "Vytvořeno: { entity }",
     "notify-delete-error": "Vyskytla se chyba, nebylo smazáno: { entity }",
     "notify-delete-error": "Vyskytla se chyba, nebylo smazáno: { entity }",
-    "notify-delete-error-with-count": "Vyskytla se chyba, nebylo smazáno: { count } {count, plural, one {položka} other {položek}}",
+    "notify-delete-error-with-count": "",
     "notify-delete-success": "Smazáno: { entity }",
     "notify-delete-success": "Smazáno: { entity }",
-    "notify-delete-success-with-count": "Smazáno: { count } {count, plural, one {položka} other {položek}}",
+    "notify-delete-success-with-count": "",
     "notify-duplicate-error": "Nelze duplikovat { name } kvůli chybě: { error }",
     "notify-duplicate-error": "Nelze duplikovat { name } kvůli chybě: { error }",
     "notify-duplicate-error-excess": "Nelze duplikovat dalších { count } {count, plural, one {položka} other {položek}} kvůli chybám",
     "notify-duplicate-error-excess": "Nelze duplikovat dalších { count } {count, plural, one {položka} other {položek}} kvůli chybám",
     "notify-duplicate-success": "Bylo úspěšně zduplikováno {count, plural, one {1 položka} other {{count} položek}}: { names }",
     "notify-duplicate-success": "Bylo úspěšně zduplikováno {count, plural, one {1 položka} other {{count} položek}}: { names }",
-    "notify-remove-from-channel-success-with-count": "Odebráno z { count } {count, plural, one {kanálu} other {kanálů}}",
+    "notify-remove-from-channel-success-with-count": "",
     "notify-save-changes-error": "Vyskytla se chyba, nebylo možné uložit změny",
     "notify-save-changes-error": "Vyskytla se chyba, nebylo možné uložit změny",
     "notify-saved-changes": "Změny uloženy",
     "notify-saved-changes": "Změny uloženy",
     "notify-update-error": "Vyskytla se chyba, nebylo aktualizováno: { entity }",
     "notify-update-error": "Vyskytla se chyba, nebylo aktualizováno: { entity }",
     "notify-update-success": "Aktualizováno: { entity }",
     "notify-update-success": "Aktualizováno: { entity }",
-    "notify-updated-tags-success": "Úspěšně aktualizováno { count } {count, plural, one {tag} other {tagů}}",
-    "okay": "V pořádku",
-    "operator-contains": "Obsahuje",
-    "operator-eq": "Je rovno",
-    "operator-gt": "Je větší než",
-    "operator-lt": "Je menší než",
-    "operator-not-contains": "Neobsahuje",
-    "operator-not-eq": "Není rovno",
-    "operator-notContains": "Neobsahuje",
-    "operator-regex": "Vyhledávání podle regulárního výrazu",
+    "notify-updated-tags-success": "",
+    "okay": "",
+    "operator-contains": "",
+    "operator-eq": "",
+    "operator-gt": "",
+    "operator-lt": "",
+    "operator-not-contains": "",
+    "operator-not-eq": "",
+    "operator-notContains": "",
+    "operator-regex": "",
     "password": "Heslo",
     "password": "Heslo",
-    "position": "Pozice",
+    "position": "",
     "price": "Cena",
     "price": "Cena",
     "price-with-tax": "Cena s daní",
     "price-with-tax": "Cena s daní",
     "private": "Soukromé",
     "private": "Soukromé",
     "public": "Veřejné",
     "public": "Veřejné",
     "remember-me": "Zapamatovat",
     "remember-me": "Zapamatovat",
     "remove": "Smazat",
     "remove": "Smazat",
-    "remove-from-channel": "Odebrat z kanálu",
+    "remove-from-channel": "",
     "remove-item-from-list": "Odebrat položku ze seznamu",
     "remove-item-from-list": "Odebrat položku ze seznamu",
     "rename-filter-preset": "Přejmenovat předvolbu",
     "rename-filter-preset": "Přejmenovat předvolbu",
-    "reset-columns": "Obnovit sloupce",
+    "reset-columns": "",
     "results-count": "{ count } {count, plural, one {výsledek} other {výsledků/y}}",
     "results-count": "{ count } {count, plural, one {výsledek} other {výsledků/y}}",
-    "sample-formatting": "Ukázka formátování",
+    "sample-formatting": "",
     "save-filter-preset": "Uložit jako předvolbu",
     "save-filter-preset": "Uložit jako předvolbu",
-    "search-and-filter-list": "Vyhledat a filtrovat seznam",
-    "search-by-name": "Vyhledat podle jména",
+    "search-and-filter-list": "",
+    "search-by-name": "",
     "select": "Vybrat...",
     "select": "Vybrat...",
     "select-display-language": "Vyberte jazyk",
     "select-display-language": "Vyberte jazyk",
-    "select-items-with-count": "Vybrat { count } {count, plural, one {položku} other {položek}}",
-    "select-products": "Vybrat produkty",
-    "select-relation-id": "Vybrat relaci",
-    "select-table-columns": "Vybrat sloupce",
+    "select-items-with-count": "",
+    "select-products": "",
+    "select-relation-id": "",
+    "select-table-columns": "",
     "select-today": "Vybrat dnešní datum",
     "select-today": "Vybrat dnešní datum",
-    "select-variants": "Vybrat varianty",
-    "seller": "Prodávající",
-    "set-language": "Nastavit jazyk",
-    "short-date": "Měsíc, den, rok",
-    "slug": "Odkaz",
-    "start-date": "Datum začátku",
-    "status": "Stav",
-    "tags": "Tagy",
+    "select-variants": "",
+    "seller": "",
+    "set-language": "",
+    "short-date": "",
+    "slug": "",
+    "start-date": "",
+    "status": "",
+    "tags": "",
     "theme": "Motiv",
     "theme": "Motiv",
     "there-are-unsaved-changes": "Provedené změny nebyly uloženy. Přechod na jinou stránku způsobí ztrátu těchto změn.",
     "there-are-unsaved-changes": "Provedené změny nebyly uloženy. Přechod na jinou stránku způsobí ztrátu těchto změn.",
     "toggle-all": "Přepnout vše",
     "toggle-all": "Přepnout vše",
@@ -348,11 +343,11 @@
     "update": "Aktualizovat",
     "update": "Aktualizovat",
     "updated-at": "Aktualizováno",
     "updated-at": "Aktualizováno",
     "username": "Uživatelské jméno",
     "username": "Uživatelské jméno",
-    "value": "Hodnota",
-    "view-contents": "Zobrazit obsah",
+    "value": "",
+    "view-contents": "",
     "view-next-month": "Další měsíc",
     "view-next-month": "Další měsíc",
     "view-previous-month": "Předchozí měsíc",
     "view-previous-month": "Předchozí měsíc",
-    "visibility": "Viditelnost",
+    "visibility": "",
     "with-selected": "S vybranými..."
     "with-selected": "S vybranými..."
   },
   },
   "customer": {
   "customer": {
@@ -364,18 +359,18 @@
     "add-customers-to-group-with-name": "Add customers to \"{ groupName }\"",
     "add-customers-to-group-with-name": "Add customers to \"{ groupName }\"",
     "addresses": "Adresy",
     "addresses": "Adresy",
     "city": "Město",
     "city": "Město",
-    "company": "Firma",
-    "confirm-remove-customer-from-group": "Odebrat zákazníka ze skupiny?",
+    "company": "",
+    "confirm-remove-customer-from-group": "Remove customer from group?",
     "country": "Země",
     "country": "Země",
-    "create-customer-group": "Vytvořit skupinu zákazníka",
-    "create-new-address": "Vytvořit novou adresu",
-    "create-new-customer": "Vytvořit nového zákazníka",
-    "create-new-customer-group": "Vytvořit novou skupinu zákazníka",
-    "customer": "Zákazník",
-    "customer-group": "Skupina zákazníka",
+    "create-customer-group": "Create customer group",
+    "create-new-address": "Create new address",
+    "create-new-customer": "Create new customer",
+    "create-new-customer-group": "Create new customer group",
+    "customer": "",
+    "customer-group": "",
     "customer-groups": "Skupiny zákazníka",
     "customer-groups": "Skupiny zákazníka",
     "customer-history": "Historie zákazníka",
     "customer-history": "Historie zákazníka",
-    "customers": "Zákazníci",
+    "customers": "",
     "default-billing-address": "Výchozí fakturační",
     "default-billing-address": "Výchozí fakturační",
     "default-shipping-address": "Výchozí dodací",
     "default-shipping-address": "Výchozí dodací",
     "email-address": "E-mailová adresa",
     "email-address": "E-mailová adresa",
@@ -414,8 +409,8 @@
     "remove-customers-from-group-success": "Odebrán: {customerCount, plural, one {1 zákazník} other {{customerCount} zákazníci/zákazníků}} z \"{ groupName }\"",
     "remove-customers-from-group-success": "Odebrán: {customerCount, plural, one {1 zákazník} other {{customerCount} zákazníci/zákazníků}} z \"{ groupName }\"",
     "remove-from-group": "Odebrat ze skupiny",
     "remove-from-group": "Odebrat ze skupiny",
     "search-customers-by-email": "Hledat podle e-mailové adresy",
     "search-customers-by-email": "Hledat podle e-mailové adresy",
-    "search-customers-by-email-last-name-postal-code": "Hledat podle e-mailové adresy, příjmení a PSČ",
-    "select-customer": "Vybrat zákazníka",
+    "search-customers-by-email-last-name-postal-code": "",
+    "select-customer": "",
     "set-as-default-billing-address": "Nastavit jako výchozí fakturační adresu",
     "set-as-default-billing-address": "Nastavit jako výchozí fakturační adresu",
     "set-as-default-shipping-address": "Nastavit jako výchozí dodací adresu",
     "set-as-default-shipping-address": "Nastavit jako výchozí dodací adresu",
     "street-line-1": "Adresa",
     "street-line-1": "Adresa",
@@ -428,10 +423,10 @@
   "dashboard": {
   "dashboard": {
     "add-widget": "Přidat widget",
     "add-widget": "Přidat widget",
     "latest-orders": "Poslední objednávky",
     "latest-orders": "Poslední objednávky",
-    "metric-average-order-value": "Průměrná hodnota objednávky",
-    "metric-number-of-orders": "Počet objednávek",
-    "metric-order-total-value": "Celková hodnota objednávek",
-    "metrics": "Metriky",
+    "metric-average-order-value": "",
+    "metric-number-of-orders": "",
+    "metric-order-total-value": "",
+    "metrics": "",
     "orders-summary": "Souhrn objednávek",
     "orders-summary": "Souhrn objednávek",
     "remove-widget": "Odebrat widget",
     "remove-widget": "Odebrat widget",
     "thisMonth": "Tento měsíc",
     "thisMonth": "Tento měsíc",
@@ -480,17 +475,15 @@
     "year": "rok"
     "year": "rok"
   },
   },
   "editor": {
   "editor": {
-    "height": "Výška",
     "image-alt": "Popisek (alt)",
     "image-alt": "Popisek (alt)",
     "image-src": "Zdroj",
     "image-src": "Zdroj",
     "image-title": "Titulek",
     "image-title": "Titulek",
     "insert-image": "Vložit obrázek",
     "insert-image": "Vložit obrázek",
     "link-href": "Odkaz",
     "link-href": "Odkaz",
-    "link-target": "Cíl odkazu",
+    "link-target": "",
     "link-title": "Odkaz titulky",
     "link-title": "Odkaz titulky",
     "remove-link": "Odebrat odkaz",
     "remove-link": "Odebrat odkaz",
-    "set-link": "Nastavit odkaz",
-    "width": "Šířka"
+    "set-link": "Nastavit odkaz"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Neautorizovaný přístup k \"{ path }\". Buďto nemáte oprávnění, nebo Vaše relace vypršela.",
     "403-forbidden": "Neautorizovaný přístup k \"{ path }\". Buďto nemáte oprávnění, nebo Vaše relace vypršela.",
@@ -510,8 +503,8 @@
     "ends-at": "Končí",
     "ends-at": "Končí",
     "per-customer-limit": "Limit za zákazníka",
     "per-customer-limit": "Limit za zákazníka",
     "per-customer-limit-tooltip": "Maximální počet použití tohoto promočního kódu jedním zákazníkem",
     "per-customer-limit-tooltip": "Maximální počet použití tohoto promočního kódu jedním zákazníkem",
-    "promotion": "Propagace",
-    "search-by-name-or-coupon-code": "Hledat podle jména nebo kódu kupónu",
+    "promotion": "",
+    "search-by-name-or-coupon-code": "",
     "starts-at": "Začíná",
     "starts-at": "Začíná",
     "usage-limit": "Celkový limit použití",
     "usage-limit": "Celkový limit použití",
     "usage-limit-tooltip": "Maximální počet použití tohoto promočního kódu celkově"
     "usage-limit-tooltip": "Maximální počet použití tohoto promočního kódu celkově"
@@ -535,8 +528,7 @@
     "promotions": "Propagace",
     "promotions": "Propagace",
     "roles": "Role",
     "roles": "Role",
     "sales": "Prodeje",
     "sales": "Prodeje",
-    "scheduled-tasks": "Naplánované úlohy",
-    "sellers": "Prodávající",
+    "sellers": "",
     "settings": "Nastavení",
     "settings": "Nastavení",
     "shipping-methods": "Dopravní metody",
     "shipping-methods": "Dopravní metody",
     "stock-locations": "Místa skladování",
     "stock-locations": "Místa skladování",
@@ -555,36 +547,36 @@
     "add-surcharge": "Přidat příplatek",
     "add-surcharge": "Přidat příplatek",
     "added-items": "Přidat položky",
     "added-items": "Přidat položky",
     "amount": "Částka",
     "amount": "Částka",
-    "arrange-additional-payment": "Přidat další platbu",
+    "arrange-additional-payment": "",
     "assign-order-to-another-customer": "Přiřadit objednávku jinému zákazníkovi",
     "assign-order-to-another-customer": "Přiřadit objednávku jinému zákazníkovi",
     "billing-address": "Fakturační adresa",
     "billing-address": "Fakturační adresa",
     "cancel": "Zrušit",
     "cancel": "Zrušit",
-    "cancel-entire-order": "Zrušit celou objednávku",
+    "cancel-entire-order": "",
     "cancel-fulfillment": "Zrušit zpracování",
     "cancel-fulfillment": "Zrušit zpracování",
     "cancel-modification": "Zrušit úpravy",
     "cancel-modification": "Zrušit úpravy",
     "cancel-order": "Zrušit objednávku",
     "cancel-order": "Zrušit objednávku",
-    "cancel-payment": "Zrušit platbu",
+    "cancel-payment": "",
     "cancel-reason-customer-request": "Požadavek zákazníka",
     "cancel-reason-customer-request": "Požadavek zákazníka",
     "cancel-reason-not-available": "Neuveden",
     "cancel-reason-not-available": "Neuveden",
     "cancel-selected-items": "Zrušit vybrané položky",
     "cancel-selected-items": "Zrušit vybrané položky",
-    "cancel-specified-items": "Zrušit určené položky",
+    "cancel-specified-items": "",
     "cancellation-reason": "Důvod zrušení",
     "cancellation-reason": "Důvod zrušení",
     "cancelled-order-items-success": "Storno { count } { count, plural, one {položka} other {položky} } z objednávky",
     "cancelled-order-items-success": "Storno { count } { count, plural, one {položka} other {položky} } z objednávky",
     "cancelled-order-success": "Objednávka úspěšně zrušena",
     "cancelled-order-success": "Objednávka úspěšně zrušena",
-    "complete-draft-order": "Dokončit objednávku",
+    "complete-draft-order": "",
     "confirm-modifications": "Potvrdit úpravy",
     "confirm-modifications": "Potvrdit úpravy",
     "contents": "Obsah",
     "contents": "Obsah",
     "create-fulfillment": "Zpracovat",
     "create-fulfillment": "Zpracovat",
     "create-fulfillment-success": "Zpracováno",
     "create-fulfillment-success": "Zpracováno",
     "customer": "Zákazník",
     "customer": "Zákazník",
-    "delete-draft-order": "Odstranit návrh objednávky",
-    "draft-order": "Návrh objednávky",
+    "delete-draft-order": "",
+    "draft-order": "",
     "edit-billing-address": "Upravit fakturační adresu",
     "edit-billing-address": "Upravit fakturační adresu",
     "edit-shipping-address": "Upravit dodací adresu",
     "edit-shipping-address": "Upravit dodací adresu",
-    "error-message": "Chyba",
-    "existing-address": "Existující adresa",
-    "existing-customer": "Existující zákazník",
-    "filter-is-active": "Filtr je aktivní",
+    "error-message": "",
+    "existing-address": "",
+    "existing-customer": "",
+    "filter-is-active": "",
     "fulfill": "Zpracovat",
     "fulfill": "Zpracovat",
     "fulfill-order": "Zpracovat objednávku",
     "fulfill-order": "Zpracovat objednávku",
     "fulfillment": "Zpracování",
     "fulfillment": "Zpracování",
@@ -630,22 +622,22 @@
     "note-is-private": "Interní poznámka",
     "note-is-private": "Interní poznámka",
     "note-only-visible-to-administrators": "Pouze pro adminy",
     "note-only-visible-to-administrators": "Pouze pro adminy",
     "note-visible-to-customer": "Pro adminy i zákazníka",
     "note-visible-to-customer": "Pro adminy i zákazníka",
-    "order": "Objednávka",
+    "order": "",
     "order-history": "Historie objednávky",
     "order-history": "Historie objednávky",
-    "order-is-empty": "Objednávka je prázdná",
+    "order-is-empty": "",
     "order-state-diagram": "Přehled stavu objednávky",
     "order-state-diagram": "Přehled stavu objednávky",
-    "order-type": "Typ objednávky",
-    "order-type-aggregate": "Agregovaná objednávka",
-    "order-type-regular": "Obecná objednávka",
-    "order-type-seller": "Prodávající",
-    "orders": "Objednávky",
+    "order-type": "",
+    "order-type-aggregate": "",
+    "order-type-regular": "",
+    "order-type-seller": "",
+    "orders": "",
     "original-quantity-at-checkout": "Původní množství při pokladně",
     "original-quantity-at-checkout": "Původní množství při pokladně",
     "payment": "Platba",
     "payment": "Platba",
     "payment-amount": "Částka platby",
     "payment-amount": "Částka platby",
     "payment-metadata": "Data platby",
     "payment-metadata": "Data platby",
     "payment-method": "Platební metoda",
     "payment-method": "Platební metoda",
     "payment-state": "Stav",
     "payment-state": "Stav",
-    "payments": "Platby",
+    "payments": "",
     "placed-at": "Datum objednávky",
     "placed-at": "Datum objednávky",
     "preview-changes": "Náhled změn",
     "preview-changes": "Náhled změn",
     "previous-customer": "Předchozí zákazník",
     "previous-customer": "Předchozí zákazník",
@@ -660,8 +652,8 @@
     "refund-cancellation-reason": "Důvod refundace/zrušení",
     "refund-cancellation-reason": "Důvod refundace/zrušení",
     "refund-cancellation-reason-required": "Uvedení důvodu refundace/zrušení je povinné",
     "refund-cancellation-reason-required": "Uvedení důvodu refundace/zrušení je povinné",
     "refund-metadata": "Data refundace",
     "refund-metadata": "Data refundace",
-    "refund-order-failed": "Neúspěšná refundace objednávky",
-    "refund-order-success": "Objednávka úspěšně refundována",
+    "refund-order-failed": "",
+    "refund-order-success": "Successfully refunded order",
     "refund-reason": "Důvod refundace",
     "refund-reason": "Důvod refundace",
     "refund-reason-customer-request": "Požadavek zákazníka",
     "refund-reason-customer-request": "Požadavek zákazníka",
     "refund-reason-not-available": "Neuveden",
     "refund-reason-not-available": "Neuveden",
@@ -676,17 +668,17 @@
     "removed-items": "Odebrané položky",
     "removed-items": "Odebrané položky",
     "return-to-stock": "Vrátit do skladu",
     "return-to-stock": "Vrátit do skladu",
     "search-by-order-filters": "Hledat na základě kódu objednávky / Příjmení / ID transakce",
     "search-by-order-filters": "Hledat na základě kódu objednávky / Příjmení / ID transakce",
-    "select-address": "Vybrat adresu",
-    "select-shipping-method": "Vybrat dodací metodu",
+    "select-address": "",
+    "select-shipping-method": "",
     "select-state": "Vyberte stav",
     "select-state": "Vyberte stav",
-    "seller-orders": "Objednávky prodávajícího",
-    "set-billing-address": "Nastavit fakturační adresu",
-    "set-coupon-codes": "Nastavit kupónové kódy",
-    "set-customer-for-order": "Nastavit zákazníka pro objednávku",
-    "set-customer-success": "Zákazník úspěšně nastaven",
+    "seller-orders": "",
+    "set-billing-address": "",
+    "set-coupon-codes": "",
+    "set-customer-for-order": "",
+    "set-customer-success": "",
     "set-fulfillment-state": "Označit jako {state}",
     "set-fulfillment-state": "Označit jako {state}",
-    "set-shipping-address": "Nastavit dodací adresu",
-    "set-shipping-method": "Nastavit dodací metodu",
+    "set-shipping-address": "",
+    "set-shipping-method": "",
     "settle-payment": "Vypořádání platby",
     "settle-payment": "Vypořádání platby",
     "settle-payment-error": "Nelze vyřídit platbu",
     "settle-payment-error": "Nelze vyřídit platbu",
     "settle-payment-success": "Platba úspěšně vypořádana",
     "settle-payment-success": "Platba úspěšně vypořádana",
@@ -695,7 +687,7 @@
     "settle-refund-success": "Úspěšně vypořádana refundace",
     "settle-refund-success": "Úspěšně vypořádana refundace",
     "shipping": "Dodání",
     "shipping": "Dodání",
     "shipping-address": "Dodací adresa",
     "shipping-address": "Dodací adresa",
-    "shipping-cancelled": "Dodání zrušeno",
+    "shipping-cancelled": "",
     "shipping-method": "Dodací metoda",
     "shipping-method": "Dodací metoda",
     "state": "Stav",
     "state": "Stav",
     "sub-total": "Mezisoučet",
     "sub-total": "Mezisoučet",
@@ -710,7 +702,7 @@
     "tracking-code": "Kód sledování zásilky",
     "tracking-code": "Kód sledování zásilky",
     "transaction-id": "ID transakce",
     "transaction-id": "ID transakce",
     "transition-to-state": "Změna stavu na { state }",
     "transition-to-state": "Změna stavu na { state }",
-    "transitioned-payment-to-state-success": "Platba úspěšně přesunuta do stavu { state }",
+    "transitioned-payment-to-state-success": "",
     "transitioned-to-state-success": "Stav úspěšně změněn na { state }",
     "transitioned-to-state-success": "Stav úspěšně změněn na { state }",
     "unable-to-transition-to-state-try-another": "Objednávka nemohla být přesunuta do stavu \"{state}\". Prosím, vyberte jiný stav.",
     "unable-to-transition-to-state-try-another": "Objednávka nemohla být přesunuta do stavu \"{state}\". Prosím, vyberte jiný stav.",
     "unfulfilled": "Nevyřízeno",
     "unfulfilled": "Nevyřízeno",
@@ -720,48 +712,48 @@
     "add-countries-to-zone": "Přidat země do { zoneName }",
     "add-countries-to-zone": "Přidat země do { zoneName }",
     "add-countries-to-zone-success": "Přidáno: { countryCount } {countryCount, plural, one {země} other {země}} do zóny \"{ zoneName }\"",
     "add-countries-to-zone-success": "Přidáno: { countryCount } {countryCount, plural, one {země} other {země}} do zóny \"{ zoneName }\"",
     "add-products-to-test-order": "Přidat produkty do testovací objednávky",
     "add-products-to-test-order": "Přidat produkty do testovací objednávky",
-    "administrator": "Administrátor",
+    "administrator": "",
     "channel": "Kanál",
     "channel": "Kanál",
     "channel-token": "Token kanálu",
     "channel-token": "Token kanálu",
-    "country": "Země",
+    "country": "",
     "create-new-channel": "Vytvořit kanál",
     "create-new-channel": "Vytvořit kanál",
     "create-new-country": "Vytvořit zemi",
     "create-new-country": "Vytvořit zemi",
-    "create-new-payment-method": "Vytvořit platební metodu",
+    "create-new-payment-method": "",
     "create-new-role": "Vytvořit roli",
     "create-new-role": "Vytvořit roli",
-    "create-new-seller": "Vytvořit prodávajícího",
+    "create-new-seller": "",
     "create-new-shipping-method": "Vytvořit dodací metodu",
     "create-new-shipping-method": "Vytvořit dodací metodu",
     "create-new-tax-category": "Vytvořit daňovou kategorii",
     "create-new-tax-category": "Vytvořit daňovou kategorii",
     "create-new-tax-rate": "Vytvořit daňovou sazbu",
     "create-new-tax-rate": "Vytvořit daňovou sazbu",
     "create-new-zone": "Vytvořit zónu",
     "create-new-zone": "Vytvořit zónu",
-    "default-currency": "Výchozí měna",
+    "default-currency": "",
     "default-role-label": "Toto je výchozí role a nemůže být změněna.",
     "default-role-label": "Toto je výchozí role a nemůže být změněna.",
     "default-shipping-zone": "Výchozí dodací zóna",
     "default-shipping-zone": "Výchozí dodací zóna",
     "default-tax-zone": "Výchozí daňová zóna",
     "default-tax-zone": "Výchozí daňová zóna",
-    "defaults": "Výchozí",
+    "defaults": "",
     "eligible": "Způsobilé",
     "eligible": "Způsobilé",
     "email-address": "E-mailová adresa",
     "email-address": "E-mailová adresa",
-    "email-address-or-identifier": "E-mailová adresa nebo identifikátor",
+    "email-address-or-identifier": "",
     "first-name": "Jméno",
     "first-name": "Jméno",
     "fulfillment-handler": "Způsob zpracování",
     "fulfillment-handler": "Způsob zpracování",
-    "global-available-languages-tooltip": "Dostupné jazyky",
+    "global-available-languages-tooltip": "",
     "global-out-of-stock-threshold": "Globální prahová hodnota pro vyprodání zásob",
     "global-out-of-stock-threshold": "Globální prahová hodnota pro vyprodání zásob",
     "global-out-of-stock-threshold-tooltip": "Nastaví hodnotu skladu, při které je tato varianta považována za vyprodanou. Použití záporné hodnoty umožňuje objednávat \"na objednávku\". Lze přepsat u jednotlivých variant produktu.",
     "global-out-of-stock-threshold-tooltip": "Nastaví hodnotu skladu, při které je tato varianta považována za vyprodanou. Použití záporné hodnoty umožňuje objednávat \"na objednávku\". Lze přepsat u jednotlivých variant produktu.",
     "last-name": "Příjmení",
     "last-name": "Příjmení",
     "no-eligible-shipping-methods": "Nezpůsobilé pro žádnou dodací metodu",
     "no-eligible-shipping-methods": "Nezpůsobilé pro žádnou dodací metodu",
     "password": "Heslo",
     "password": "Heslo",
-    "payment-eligibility-checker": "Kontrola způsobilosti pro platbu",
-    "payment-handler": "Způsob zpracování platby",
-    "payment-method": "Platební metoda",
+    "payment-eligibility-checker": "",
+    "payment-handler": "",
+    "payment-method": "",
     "permissions": "Oprávnění",
     "permissions": "Oprávnění",
     "prices-include-tax": "Zadávané ceny jsou včetně daně pro výchozí zónu",
     "prices-include-tax": "Zadávané ceny jsou včetně daně pro výchozí zónu",
     "profile": "Profil",
     "profile": "Profil",
     "rate": "Sazba",
     "rate": "Sazba",
     "remove-countries-from-zone-success": "Odebráno: { countryCount } {countryCount, plural, one {země} other {země}} ze zóny \"{ zoneName }\"",
     "remove-countries-from-zone-success": "Odebráno: { countryCount } {countryCount, plural, one {země} other {země}} ze zóny \"{ zoneName }\"",
     "remove-from-zone": "Odebrat ze zóny",
     "remove-from-zone": "Odebrat ze zóny",
-    "role": "Rola",
+    "role": "",
     "roles": "Role",
     "roles": "Role",
     "search-by-product-name-or-sku": "Hledat dle názvu nebo SKU produktu",
     "search-by-product-name-or-sku": "Hledat dle názvu nebo SKU produktu",
-    "seller": "Prodávající",
+    "seller": "",
     "shipping-calculator": "Kalkulátor poštovného",
     "shipping-calculator": "Kalkulátor poštovného",
     "shipping-eligibility-checker": "Test způsobilosti k dodací metodě",
     "shipping-eligibility-checker": "Test způsobilosti k dodací metodě",
     "shipping-method": "Dodací metoda",
     "shipping-method": "Dodací metoda",
@@ -784,7 +776,7 @@
     "created": "Vytvořeno",
     "created": "Vytvořeno",
     "declined": "Odmítnuto",
     "declined": "Odmítnuto",
     "delivered": "Doručeno",
     "delivered": "Doručeno",
-    "draft": "Návrh",
+    "draft": "",
     "error": "Chyba",
     "error": "Chyba",
     "failed": "Selhalo",
     "failed": "Selhalo",
     "modifying": "Upravuje se",
     "modifying": "Upravuje se",
@@ -817,11 +809,6 @@
     "job-state-completed": "Dokončeno",
     "job-state-completed": "Dokončeno",
     "job-state-failed": "Selhalo",
     "job-state-failed": "Selhalo",
     "job-state-pending": "Čeká",
     "job-state-pending": "Čeká",
-    "job-state-running": "Běží",
-    "last-executed-at": "Poslední spuštění",
-    "last-result": "Poslední výsledek",
-    "next-execution-at": "Další spuštění",
-    "schedule": "Plán",
-    "task-id": "ID úlohy"
+    "job-state-running": "Běží"
   }
   }
 }
 }

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/de.json

@@ -6,7 +6,6 @@
     "add-asset": "Asset hinzufügen",
     "add-asset": "Asset hinzufügen",
     "add-asset-with-count": "{count, plural, =0 {Assets} one {1 Asset} other {{count} Assets}} hinzufügen",
     "add-asset-with-count": "{count, plural, =0 {Assets} one {1 Asset} other {{count} Assets}} hinzufügen",
     "assets-selected-count": "{count, plural, =0 {Kein Asset} one {1 Asset} other {{count} Assets}} ausgewählt",
     "assets-selected-count": "{count, plural, =0 {Kein Asset} one {1 Asset} other {{count} Assets}} ausgewählt",
-    "change-asset": "Asset ändern",
     "dimensions": "Abmessungen",
     "dimensions": "Abmessungen",
     "focal-point": "Fokuspunkt",
     "focal-point": "Fokuspunkt",
     "notify-create-assets-success": "{count, plural, one {Neues Asset} other {{count} neue Assets}} erstellt",
     "notify-create-assets-success": "{count, plural, one {Neues Asset} other {{count} neue Assets}} erstellt",
@@ -17,7 +16,6 @@
     "select-assets": "Assets auswählen",
     "select-assets": "Assets auswählen",
     "set-as-featured-asset": "Als \"Featured Asset\" festlegen",
     "set-as-featured-asset": "Als \"Featured Asset\" festlegen",
     "set-focal-point": "Fokuspunkt setzen",
     "set-focal-point": "Fokuspunkt setzen",
-    "size": "Größe",
     "source-file": "Quelldatei",
     "source-file": "Quelldatei",
     "unset-focal-point": "Zurücksetzen",
     "unset-focal-point": "Zurücksetzen",
     "update-focal-point": "Punkt aktualisieren",
     "update-focal-point": "Punkt aktualisieren",
@@ -47,7 +45,6 @@
     "profile": "Profil",
     "profile": "Profil",
     "promotions": "Promotionen",
     "promotions": "Promotionen",
     "roles": "Rollen",
     "roles": "Rollen",
-    "scheduled-tasks": "Geplante Aufgaben",
     "seller-orders": "Verkäufer Bestellungen",
     "seller-orders": "Verkäufer Bestellungen",
     "sellers": "Verkäufer",
     "sellers": "Verkäufer",
     "shipping-methods": "Versandarten",
     "shipping-methods": "Versandarten",
@@ -240,14 +237,12 @@
     "delete": "Löschen",
     "delete": "Löschen",
     "description": "Beschreibung",
     "description": "Beschreibung",
     "details": "Details",
     "details": "Details",
-    "disable": "Deaktivieren",
     "disabled": "Deaktiviert",
     "disabled": "Deaktiviert",
     "discard-changes": "Änderungen verwerfen",
     "discard-changes": "Änderungen verwerfen",
     "duplicate": "Duplizieren",
     "duplicate": "Duplizieren",
     "edit": "Bearbeiten",
     "edit": "Bearbeiten",
     "edit-field": "Feld bearbeiten",
     "edit-field": "Feld bearbeiten",
     "edit-note": "Notiz bearbeiten",
     "edit-note": "Notiz bearbeiten",
-    "enable": "Aktivieren",
     "enabled": "Aktiviert",
     "enabled": "Aktiviert",
     "end-date": "Enddatum",
     "end-date": "Enddatum",
     "expand-entries": "Einträge erweitern",
     "expand-entries": "Einträge erweitern",
@@ -279,7 +274,7 @@
     "name": "Name",
     "name": "Name",
     "no-alerts": "Keine Alarme",
     "no-alerts": "Keine Alarme",
     "no-bulk-actions-available": "Keine Sammelaktionen verfügbar",
     "no-bulk-actions-available": "Keine Sammelaktionen verfügbar",
-    "no-channel-selected": "Kein Kanal ausgewählt",
+    "no-channel-selected": "",
     "no-results": "Keine Ergebnisse",
     "no-results": "Keine Ergebnisse",
     "not-applicable": "Nicht zutreffend",
     "not-applicable": "Nicht zutreffend",
     "not-set": "Nicht festgelegt",
     "not-set": "Nicht festgelegt",
@@ -480,7 +475,6 @@
     "year": "Jahr"
     "year": "Jahr"
   },
   },
   "editor": {
   "editor": {
-    "height": "Höhe",
     "image-alt": "Beschreibung ('alt')",
     "image-alt": "Beschreibung ('alt')",
     "image-src": "Quelle",
     "image-src": "Quelle",
     "image-title": "Titel",
     "image-title": "Titel",
@@ -489,8 +483,7 @@
     "link-target": "Link 'target'",
     "link-target": "Link 'target'",
     "link-title": "Link 'title'",
     "link-title": "Link 'title'",
     "remove-link": "Entfernen",
     "remove-link": "Entfernen",
-    "set-link": "Link setzen",
-    "width": "Breite"
+    "set-link": "Link setzen"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Sie sind derzeit nicht berechtigt, auf \"{ path }\" zuzugreifen. Entweder fehlen Ihnen die Berechtigungen, oder Ihre Sitzung ist abgelaufen.",
     "403-forbidden": "Sie sind derzeit nicht berechtigt, auf \"{ path }\" zuzugreifen. Entweder fehlen Ihnen die Berechtigungen, oder Ihre Sitzung ist abgelaufen.",
@@ -535,7 +528,6 @@
     "promotions": "Werbeaktionen",
     "promotions": "Werbeaktionen",
     "roles": "Rollen",
     "roles": "Rollen",
     "sales": "Verkäufe",
     "sales": "Verkäufe",
-    "scheduled-tasks": "Geplante Aufgaben",
     "sellers": "Verkäufer",
     "sellers": "Verkäufer",
     "settings": "Einstellungen",
     "settings": "Einstellungen",
     "shipping-methods": "Versandarten",
     "shipping-methods": "Versandarten",
@@ -683,7 +675,7 @@
     "set-billing-address": "Rechnungsadresse festlegen",
     "set-billing-address": "Rechnungsadresse festlegen",
     "set-coupon-codes": "Gutscheincodes festlegen",
     "set-coupon-codes": "Gutscheincodes festlegen",
     "set-customer-for-order": "Kunde der Bestellung zuordnen",
     "set-customer-for-order": "Kunde der Bestellung zuordnen",
-    "set-customer-success": "Kunde erfolgreich zugeordnet",
+    "set-customer-success": "",
     "set-fulfillment-state": "Abwicklungsstatus wählen",
     "set-fulfillment-state": "Abwicklungsstatus wählen",
     "set-shipping-address": "Versandadresse festlegen",
     "set-shipping-address": "Versandadresse festlegen",
     "set-shipping-method": "Versandart festlegen",
     "set-shipping-method": "Versandart festlegen",
@@ -817,11 +809,6 @@
     "job-state-completed": "Abgeschlossen",
     "job-state-completed": "Abgeschlossen",
     "job-state-failed": "Fehlgeschlagen",
     "job-state-failed": "Fehlgeschlagen",
     "job-state-pending": "Ausstehend",
     "job-state-pending": "Ausstehend",
-    "job-state-running": "Wird ausgeführt",
-    "last-executed-at": "Letzte Ausführung",
-    "last-result": "Letztes Ergebnis",
-    "next-execution-at": "Nächste Ausführung",
-    "schedule": "Plan",
-    "task-id": "Aufgaben-ID"
+    "job-state-running": "Wird ausgeführt"
   }
   }
 }
 }

+ 7 - 16
packages/admin-ui/src/lib/static/i18n-messages/en.json

@@ -5,8 +5,8 @@
   "asset": {
   "asset": {
     "add-asset": "Add asset",
     "add-asset": "Add asset",
     "add-asset-with-count": "Add {count, plural, =0 {assets} one {1 asset} other {{count} assets}}",
     "add-asset-with-count": "Add {count, plural, =0 {assets} one {1 asset} other {{count} assets}}",
-    "assets-selected-count": "{ count } assets selected",
     "change-asset": "Change asset",
     "change-asset": "Change asset",
+    "assets-selected-count": "{ count } assets selected",
     "dimensions": "Dimensions",
     "dimensions": "Dimensions",
     "focal-point": "Focal point",
     "focal-point": "Focal point",
     "notify-create-assets-success": "Created {count, plural, one {new Asset} other {{count} new Assets}}",
     "notify-create-assets-success": "Created {count, plural, one {new Asset} other {{count} new Assets}}",
@@ -17,14 +17,14 @@
     "select-assets": "Select assets",
     "select-assets": "Select assets",
     "set-as-featured-asset": "Set as featured asset",
     "set-as-featured-asset": "Set as featured asset",
     "set-focal-point": "Set focal point",
     "set-focal-point": "Set focal point",
-    "size": "Size",
     "source-file": "Source file",
     "source-file": "Source file",
     "unset-focal-point": "Unset",
     "unset-focal-point": "Unset",
     "update-focal-point": "Update point",
     "update-focal-point": "Update point",
     "update-focal-point-error": "Could not update focal point",
     "update-focal-point-error": "Could not update focal point",
     "update-focal-point-success": "Updated focal point",
     "update-focal-point-success": "Updated focal point",
     "upload-assets": "Upload assets",
     "upload-assets": "Upload assets",
-    "uploading": "Uploading..."
+    "uploading": "Uploading...",
+    "size": "Size"
   },
   },
   "breadcrumb": {
   "breadcrumb": {
     "administrators": "Administrators",
     "administrators": "Administrators",
@@ -47,7 +47,6 @@
     "profile": "Profile",
     "profile": "Profile",
     "promotions": "Promotions",
     "promotions": "Promotions",
     "roles": "Roles",
     "roles": "Roles",
-    "scheduled-tasks": "Scheduled tasks",
     "seller-orders": "Seller orders",
     "seller-orders": "Seller orders",
     "sellers": "Sellers",
     "sellers": "Sellers",
     "shipping-methods": "Shipping methods",
     "shipping-methods": "Shipping methods",
@@ -240,14 +239,12 @@
     "delete": "Delete",
     "delete": "Delete",
     "description": "Description",
     "description": "Description",
     "details": "Details",
     "details": "Details",
-    "disable": "Disable",
     "disabled": "Disabled",
     "disabled": "Disabled",
     "discard-changes": "Discard changes",
     "discard-changes": "Discard changes",
     "duplicate": "Duplicate",
     "duplicate": "Duplicate",
     "edit": "Edit",
     "edit": "Edit",
     "edit-field": "Edit field",
     "edit-field": "Edit field",
     "edit-note": "Edit note",
     "edit-note": "Edit note",
-    "enable": "Enable",
     "enabled": "Enabled",
     "enabled": "Enabled",
     "end-date": "End date",
     "end-date": "End date",
     "expand-entries": "Expand entries",
     "expand-entries": "Expand entries",
@@ -279,7 +276,7 @@
     "name": "Name",
     "name": "Name",
     "no-alerts": "No alerts",
     "no-alerts": "No alerts",
     "no-bulk-actions-available": "No bulk actions available",
     "no-bulk-actions-available": "No bulk actions available",
-    "no-channel-selected": "No channel selected",
+    "no-channel-selected": "",
     "no-results": "No results",
     "no-results": "No results",
     "not-applicable": "Not applicable",
     "not-applicable": "Not applicable",
     "not-set": "Not set",
     "not-set": "Not set",
@@ -480,7 +477,6 @@
     "year": "year"
     "year": "year"
   },
   },
   "editor": {
   "editor": {
-    "height": "Height",
     "image-alt": "Description (alt)",
     "image-alt": "Description (alt)",
     "image-src": "Source",
     "image-src": "Source",
     "image-title": "Title",
     "image-title": "Title",
@@ -490,7 +486,8 @@
     "link-title": "Link title",
     "link-title": "Link title",
     "remove-link": "Remove",
     "remove-link": "Remove",
     "set-link": "Set link",
     "set-link": "Set link",
-    "width": "Width"
+    "width": "Width",
+    "height": "Height"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "You are not currently authorized to access \"{ path }\". Either you lack permissions, or your session has expired.",
     "403-forbidden": "You are not currently authorized to access \"{ path }\". Either you lack permissions, or your session has expired.",
@@ -535,7 +532,6 @@
     "promotions": "Promotions",
     "promotions": "Promotions",
     "roles": "Roles",
     "roles": "Roles",
     "sales": "Sales",
     "sales": "Sales",
-    "scheduled-tasks": "Scheduled tasks",
     "sellers": "Sellers",
     "sellers": "Sellers",
     "settings": "Settings",
     "settings": "Settings",
     "shipping-methods": "Shipping methods",
     "shipping-methods": "Shipping methods",
@@ -817,11 +813,6 @@
     "job-state-completed": "Completed",
     "job-state-completed": "Completed",
     "job-state-failed": "Failed",
     "job-state-failed": "Failed",
     "job-state-pending": "Pending",
     "job-state-pending": "Pending",
-    "job-state-running": "Running",
-    "last-executed-at": "Last executed",
-    "last-result": "Last result",
-    "next-execution-at": "Next execution",
-    "schedule": "Schedule",
-    "task-id": "Task ID"
+    "job-state-running": "Running"
   }
   }
 }
 }

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/es.json

@@ -6,7 +6,6 @@
     "add-asset": "Añadir recurso",
     "add-asset": "Añadir recurso",
     "add-asset-with-count": "Añadir {count, plural, =0 {recurso} one {1 recurso} other {{count} recursos}}",
     "add-asset-with-count": "Añadir {count, plural, =0 {recurso} one {1 recurso} other {{count} recursos}}",
     "assets-selected-count": "{ count } recursos seleccionados",
     "assets-selected-count": "{ count } recursos seleccionados",
-    "change-asset": "Cambiar recurso",
     "dimensions": "Dimensiones",
     "dimensions": "Dimensiones",
     "focal-point": "Punto focal",
     "focal-point": "Punto focal",
     "notify-create-assets-success": "{count, plural, one {Nuevo recurso} other {{count} Nuevos recursos}} {count, plural, one {creado} other {creados}} con éxito",
     "notify-create-assets-success": "{count, plural, one {Nuevo recurso} other {{count} Nuevos recursos}} {count, plural, one {creado} other {creados}} con éxito",
@@ -17,7 +16,6 @@
     "select-assets": "Seleccionar recursos",
     "select-assets": "Seleccionar recursos",
     "set-as-featured-asset": "Seleccionar como recurso por defecto",
     "set-as-featured-asset": "Seleccionar como recurso por defecto",
     "set-focal-point": "Fijar punto focal",
     "set-focal-point": "Fijar punto focal",
-    "size": "Tamaño",
     "source-file": "Fichero original",
     "source-file": "Fichero original",
     "unset-focal-point": "Quitar punto focal",
     "unset-focal-point": "Quitar punto focal",
     "update-focal-point": "Actualizar punto focal",
     "update-focal-point": "Actualizar punto focal",
@@ -47,7 +45,6 @@
     "profile": "Perfil",
     "profile": "Perfil",
     "promotions": "Promociones",
     "promotions": "Promociones",
     "roles": "Roles",
     "roles": "Roles",
-    "scheduled-tasks": "Tareas programadas",
     "seller-orders": "Órdenes de vendedores",
     "seller-orders": "Órdenes de vendedores",
     "sellers": "Vendedores",
     "sellers": "Vendedores",
     "shipping-methods": "Métodos de envío",
     "shipping-methods": "Métodos de envío",
@@ -240,14 +237,12 @@
     "delete": "Eliminar",
     "delete": "Eliminar",
     "description": "Descripción",
     "description": "Descripción",
     "details": "Detalles",
     "details": "Detalles",
-    "disable": "Deshabilitar",
     "disabled": "Deshabilitado",
     "disabled": "Deshabilitado",
     "discard-changes": "Descartar cambios",
     "discard-changes": "Descartar cambios",
     "duplicate": "Duplicar",
     "duplicate": "Duplicar",
     "edit": "Editar",
     "edit": "Editar",
     "edit-field": "Editar campo",
     "edit-field": "Editar campo",
     "edit-note": "Editar nota",
     "edit-note": "Editar nota",
-    "enable": "Habilitar",
     "enabled": "Habilitado",
     "enabled": "Habilitado",
     "end-date": "Fecha final",
     "end-date": "Fecha final",
     "expand-entries": "Mostrar entradas",
     "expand-entries": "Mostrar entradas",
@@ -279,7 +274,7 @@
     "name": "Nombre",
     "name": "Nombre",
     "no-alerts": "No hay alertas",
     "no-alerts": "No hay alertas",
     "no-bulk-actions-available": "No hay acciones agrupadas disponibles",
     "no-bulk-actions-available": "No hay acciones agrupadas disponibles",
-    "no-channel-selected": "Ningún canal seleccionado",
+    "no-channel-selected": "",
     "no-results": "Sin resultados",
     "no-results": "Sin resultados",
     "not-applicable": "No aplicable",
     "not-applicable": "No aplicable",
     "not-set": "Sin fijar",
     "not-set": "Sin fijar",
@@ -480,7 +475,6 @@
     "year": "año"
     "year": "año"
   },
   },
   "editor": {
   "editor": {
-    "height": "Altura",
     "image-alt": "Descripción (alt)",
     "image-alt": "Descripción (alt)",
     "image-src": "Archivo",
     "image-src": "Archivo",
     "image-title": "Título",
     "image-title": "Título",
@@ -489,8 +483,7 @@
     "link-target": "Enlace target",
     "link-target": "Enlace target",
     "link-title": "Título del enlace",
     "link-title": "Título del enlace",
     "remove-link": "Eliminar",
     "remove-link": "Eliminar",
-    "set-link": "Establecer enlace",
-    "width": "Ancho"
+    "set-link": "Establecer enlace"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Actualmente no está autorizado para acceder a \"{ path }\". O bien carece de permisos, o su sesión ha expirado.",
     "403-forbidden": "Actualmente no está autorizado para acceder a \"{ path }\". O bien carece de permisos, o su sesión ha expirado.",
@@ -535,7 +528,6 @@
     "promotions": "Promociones",
     "promotions": "Promociones",
     "roles": "Roles",
     "roles": "Roles",
     "sales": "Ventas",
     "sales": "Ventas",
-    "scheduled-tasks": "Tareas programadas",
     "sellers": "Vendedores",
     "sellers": "Vendedores",
     "settings": "Ajustes",
     "settings": "Ajustes",
     "shipping-methods": "Envíos",
     "shipping-methods": "Envíos",
@@ -683,7 +675,7 @@
     "set-billing-address": "Añadir dirección de facturación",
     "set-billing-address": "Añadir dirección de facturación",
     "set-coupon-codes": "Añadir cupón de descuento",
     "set-coupon-codes": "Añadir cupón de descuento",
     "set-customer-for-order": "Añadir cliente",
     "set-customer-for-order": "Añadir cliente",
-    "set-customer-success": "Cliente añadido con éxito",
+    "set-customer-success": "",
     "set-fulfillment-state": "Fijar como {state}",
     "set-fulfillment-state": "Fijar como {state}",
     "set-shipping-address": "Añadir dirección de envío",
     "set-shipping-address": "Añadir dirección de envío",
     "set-shipping-method": "Añadir método de envío",
     "set-shipping-method": "Añadir método de envío",
@@ -817,11 +809,6 @@
     "job-state-completed": "Completado",
     "job-state-completed": "Completado",
     "job-state-failed": "Fallido",
     "job-state-failed": "Fallido",
     "job-state-pending": "Pendiente",
     "job-state-pending": "Pendiente",
-    "job-state-running": "En ejecución",
-    "last-executed-at": "Última ejecución",
-    "last-result": "Último resultado",
-    "next-execution-at": "Próxima ejecución",
-    "schedule": "Programación",
-    "task-id": "ID de la tarea"
+    "job-state-running": "En ejecución"
   }
   }
 }
 }

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/fa.json

@@ -6,7 +6,6 @@
     "add-asset": "افزودن دارایی",
     "add-asset": "افزودن دارایی",
     "add-asset-with-count": "اضافه کردن {count} دارایی",
     "add-asset-with-count": "اضافه کردن {count} دارایی",
     "assets-selected-count": "{ count } دارایی انتخاب شده است.",
     "assets-selected-count": "{ count } دارایی انتخاب شده است.",
-    "change-asset": "تغییر دارایی",
     "dimensions": "ابعاد",
     "dimensions": "ابعاد",
     "focal-point": "نقطه کانونی",
     "focal-point": "نقطه کانونی",
     "notify-create-assets-success": "{count} دارایی جدید ایجاد شد.",
     "notify-create-assets-success": "{count} دارایی جدید ایجاد شد.",
@@ -17,7 +16,6 @@
     "select-assets": "دارایی ها را انتخاب کنید",
     "select-assets": "دارایی ها را انتخاب کنید",
     "set-as-featured-asset": "تنظیم به عنوان دارایی برجسته",
     "set-as-featured-asset": "تنظیم به عنوان دارایی برجسته",
     "set-focal-point": "نقطه کانونی را تنظیم کنید",
     "set-focal-point": "نقطه کانونی را تنظیم کنید",
-    "size": "اندازه",
     "source-file": "فایل منبع",
     "source-file": "فایل منبع",
     "unset-focal-point": "نقطه کانونی را حذف کنید",
     "unset-focal-point": "نقطه کانونی را حذف کنید",
     "update-focal-point": "نقطه کانونی را بروزرسانی کنید",
     "update-focal-point": "نقطه کانونی را بروزرسانی کنید",
@@ -47,7 +45,6 @@
     "profile": "پروفایل",
     "profile": "پروفایل",
     "promotions": "تبلیغات",
     "promotions": "تبلیغات",
     "roles": "نقش ها",
     "roles": "نقش ها",
-    "scheduled-tasks": "وظایف مجدول",
     "seller-orders": "سفارشات فروشنده",
     "seller-orders": "سفارشات فروشنده",
     "sellers": "فروشندگان",
     "sellers": "فروشندگان",
     "shipping-methods": "روش های حمل و نقل",
     "shipping-methods": "روش های حمل و نقل",
@@ -240,14 +237,12 @@
     "delete": "حذف",
     "delete": "حذف",
     "description": "توضیحات",
     "description": "توضیحات",
     "details": "جزئیات",
     "details": "جزئیات",
-    "disable": "غیرفعال",
     "disabled": "غیرفعال است",
     "disabled": "غیرفعال است",
     "discard-changes": "لغو تغییرات",
     "discard-changes": "لغو تغییرات",
     "duplicate": "تکثیر",
     "duplicate": "تکثیر",
     "edit": "ویرایش",
     "edit": "ویرایش",
     "edit-field": "ویرایش فیلد",
     "edit-field": "ویرایش فیلد",
     "edit-note": "ویرایش یادداشت",
     "edit-note": "ویرایش یادداشت",
-    "enable": "فعال",
     "enabled": "فعال است",
     "enabled": "فعال است",
     "end-date": "تاریخ پایان",
     "end-date": "تاریخ پایان",
     "expand-entries": "مشاهده گزینه ها",
     "expand-entries": "مشاهده گزینه ها",
@@ -279,7 +274,7 @@
     "name": "نام",
     "name": "نام",
     "no-alerts": "هیچ پیغامی وجود ندارد",
     "no-alerts": "هیچ پیغامی وجود ندارد",
     "no-bulk-actions-available": "هیچ اقدام انبوهی در دسترس نیست.",
     "no-bulk-actions-available": "هیچ اقدام انبوهی در دسترس نیست.",
-    "no-channel-selected": "هیچ کانالی انتخاب نشده است",
+    "no-channel-selected": "",
     "no-results": "بدون نتیجه",
     "no-results": "بدون نتیجه",
     "not-applicable": "قابل اجرا نیست",
     "not-applicable": "قابل اجرا نیست",
     "not-set": "تنظیم نشده است.",
     "not-set": "تنظیم نشده است.",
@@ -480,7 +475,6 @@
     "year": "سال"
     "year": "سال"
   },
   },
   "editor": {
   "editor": {
-    "height": "ارتفاع",
     "image-alt": "توضیحات",
     "image-alt": "توضیحات",
     "image-src": "منبع",
     "image-src": "منبع",
     "image-title": "عنوان",
     "image-title": "عنوان",
@@ -489,8 +483,7 @@
     "link-target": "نحوه اجرای لینک",
     "link-target": "نحوه اجرای لینک",
     "link-title": "عنوان لینک",
     "link-title": "عنوان لینک",
     "remove-link": "حذف",
     "remove-link": "حذف",
-    "set-link": "تنظیم لینک",
-    "width": "عرض"
+    "set-link": "تنظیم لینک"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "شما در حال حاضر مجاز به دسترسی به \"{ path }\" نیستید. یا فاقد مجوز هستید یا جلسه شما منقضی شده است.",
     "403-forbidden": "شما در حال حاضر مجاز به دسترسی به \"{ path }\" نیستید. یا فاقد مجوز هستید یا جلسه شما منقضی شده است.",
@@ -535,7 +528,6 @@
     "promotions": "تبلیغات",
     "promotions": "تبلیغات",
     "roles": "نقش ها",
     "roles": "نقش ها",
     "sales": "فروش",
     "sales": "فروش",
-    "scheduled-tasks": "وظایف مجدول",
     "sellers": "فروشندگان",
     "sellers": "فروشندگان",
     "settings": "تنظیمات",
     "settings": "تنظیمات",
     "shipping-methods": "روش های حمل و نقل",
     "shipping-methods": "روش های حمل و نقل",
@@ -683,7 +675,7 @@
     "set-billing-address": "تعیین آدرس صورتحساب",
     "set-billing-address": "تعیین آدرس صورتحساب",
     "set-coupon-codes": "تعیین کد تخفیف",
     "set-coupon-codes": "تعیین کد تخفیف",
     "set-customer-for-order": "تعیین مشتری",
     "set-customer-for-order": "تعیین مشتری",
-    "set-customer-success": "مشتری با موفقیت تعیین شد",
+    "set-customer-success": "",
     "set-fulfillment-state": "علامت زدن بعنوان {state}",
     "set-fulfillment-state": "علامت زدن بعنوان {state}",
     "set-shipping-address": "تنظیم آدرس حمل و نقل",
     "set-shipping-address": "تنظیم آدرس حمل و نقل",
     "set-shipping-method": "تنظیم شیوه حمل و نقل",
     "set-shipping-method": "تنظیم شیوه حمل و نقل",
@@ -817,11 +809,6 @@
     "job-state-completed": "تکمیل شده",
     "job-state-completed": "تکمیل شده",
     "job-state-failed": "ناموفق",
     "job-state-failed": "ناموفق",
     "job-state-pending": "در انتظار",
     "job-state-pending": "در انتظار",
-    "job-state-running": "در حال اجرا",
-    "last-executed-at": "آخرین اجرا",
-    "last-result": "آخرین نتیجه",
-    "next-execution-at": "تالی",
-    "schedule": "جدول",
-    "task-id": "شناسه کار"
+    "job-state-running": "در حال اجرا"
   }
   }
 }
 }

+ 6 - 19
packages/admin-ui/src/lib/static/i18n-messages/fr.json

@@ -6,7 +6,6 @@
     "add-asset": "Ajout fichier",
     "add-asset": "Ajout fichier",
     "add-asset-with-count": "Ajout {count, plural, =0 {fichier} one {d'un fichier} other {de {count} fichiers}}",
     "add-asset-with-count": "Ajout {count, plural, =0 {fichier} one {d'un fichier} other {de {count} fichiers}}",
     "assets-selected-count": "{ count } ressources selectionnées",
     "assets-selected-count": "{ count } ressources selectionnées",
-    "change-asset": "Changer ressource",
     "dimensions": "Dimensions",
     "dimensions": "Dimensions",
     "focal-point": "Point de focale",
     "focal-point": "Point de focale",
     "notify-create-assets-success": "Création {count, plural, one {d'un nouveau fichier} other {de {count} nouveaux fichiers}}",
     "notify-create-assets-success": "Création {count, plural, one {d'un nouveau fichier} other {de {count} nouveaux fichiers}}",
@@ -17,7 +16,6 @@
     "select-assets": "Sélectionner fichiers",
     "select-assets": "Sélectionner fichiers",
     "set-as-featured-asset": "Définir en tant que fichier en vedette",
     "set-as-featured-asset": "Définir en tant que fichier en vedette",
     "set-focal-point": "Définir point de focale",
     "set-focal-point": "Définir point de focale",
-    "size": "Taille",
     "source-file": "Fichier source",
     "source-file": "Fichier source",
     "unset-focal-point": "Enlever",
     "unset-focal-point": "Enlever",
     "update-focal-point": "Mettre à jour le point",
     "update-focal-point": "Mettre à jour le point",
@@ -47,7 +45,6 @@
     "profile": "Profil",
     "profile": "Profil",
     "promotions": "Promotions",
     "promotions": "Promotions",
     "roles": "Roles",
     "roles": "Roles",
-    "scheduled-tasks": "Tâches programmées",
     "seller-orders": "Commandes vendeur",
     "seller-orders": "Commandes vendeur",
     "sellers": "Vendeurs",
     "sellers": "Vendeurs",
     "shipping-methods": "Modes d'expédition",
     "shipping-methods": "Modes d'expédition",
@@ -199,7 +196,7 @@
   },
   },
   "common": {
   "common": {
     "ID": "ID",
     "ID": "ID",
-    "add-filter": "Ajouter un filtre",
+    "add-filter": "",
     "add-item-to-list": "Ajouter un article à la liste",
     "add-item-to-list": "Ajouter un article à la liste",
     "add-note": "Ajouter une note",
     "add-note": "Ajouter une note",
     "apply": "Appliquer",
     "apply": "Appliquer",
@@ -240,14 +237,12 @@
     "delete": "Supprimer",
     "delete": "Supprimer",
     "description": "Description",
     "description": "Description",
     "details": "Détails",
     "details": "Détails",
-    "disable": "Désactiver",
     "disabled": "Désactivé",
     "disabled": "Désactivé",
     "discard-changes": "Annuler les changements",
     "discard-changes": "Annuler les changements",
     "duplicate": "Dupliquer",
     "duplicate": "Dupliquer",
     "edit": "Editer",
     "edit": "Editer",
     "edit-field": "Editer champ",
     "edit-field": "Editer champ",
     "edit-note": "Editer note",
     "edit-note": "Editer note",
-    "enable": "Activer",
     "enabled": "Activé",
     "enabled": "Activé",
     "end-date": "Date de fin",
     "end-date": "Date de fin",
     "expand-entries": "Développer les éléments",
     "expand-entries": "Développer les éléments",
@@ -279,9 +274,9 @@
     "name": "Nom",
     "name": "Nom",
     "no-alerts": "Pas d'alerte",
     "no-alerts": "Pas d'alerte",
     "no-bulk-actions-available": "Aucune action groupée disponible",
     "no-bulk-actions-available": "Aucune action groupée disponible",
-    "no-channel-selected": "Aucun canal sélectionné",
+    "no-channel-selected": "",
     "no-results": "Aucun resultat",
     "no-results": "Aucun resultat",
-    "not-applicable": "Non applicable",
+    "not-applicable": "",
     "not-set": "Non défini",
     "not-set": "Non défini",
     "notify-assign-to-channel-success-with-count": "{count, plural, one {1 item} other {{count} items}} ont bien été attribués à { channelCode }",
     "notify-assign-to-channel-success-with-count": "{count, plural, one {1 item} other {{count} items}} ont bien été attribués à { channelCode }",
     "notify-bulk-update-success": "{ count } { entity } ont été mis à jour",
     "notify-bulk-update-success": "{ count } { entity } ont été mis à jour",
@@ -480,7 +475,6 @@
     "year": "an"
     "year": "an"
   },
   },
   "editor": {
   "editor": {
-    "height": "Hauteur",
     "image-alt": "Description (alt)",
     "image-alt": "Description (alt)",
     "image-src": "Source",
     "image-src": "Source",
     "image-title": "Titre",
     "image-title": "Titre",
@@ -489,8 +483,7 @@
     "link-target": "Target du lien",
     "link-target": "Target du lien",
     "link-title": "Titre du lien",
     "link-title": "Titre du lien",
     "remove-link": "Retirer le lien",
     "remove-link": "Retirer le lien",
-    "set-link": "Définir lien",
-    "width": "Largeur"
+    "set-link": "Définir lien"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Vous n'êtes pas autorisés à accéder à \"{ path }\". Vous n'avez pas la permission ou votre session a expiré.",
     "403-forbidden": "Vous n'êtes pas autorisés à accéder à \"{ path }\". Vous n'avez pas la permission ou votre session a expiré.",
@@ -535,7 +528,6 @@
     "promotions": "Promotions",
     "promotions": "Promotions",
     "roles": "Roles",
     "roles": "Roles",
     "sales": "Ventes",
     "sales": "Ventes",
-    "scheduled-tasks": "Tâches programmées",
     "sellers": "Vendeurs",
     "sellers": "Vendeurs",
     "settings": "Paramètres",
     "settings": "Paramètres",
     "shipping-methods": "Mode d'expédition",
     "shipping-methods": "Mode d'expédition",
@@ -683,7 +675,7 @@
     "set-billing-address": "Définir adresse de livraison",
     "set-billing-address": "Définir adresse de livraison",
     "set-coupon-codes": "Définir les codes promo",
     "set-coupon-codes": "Définir les codes promo",
     "set-customer-for-order": "Définir le client pour la commande",
     "set-customer-for-order": "Définir le client pour la commande",
-    "set-customer-success": "Client défini avec succès",
+    "set-customer-success": "",
     "set-fulfillment-state": "Marquer {state}",
     "set-fulfillment-state": "Marquer {state}",
     "set-shipping-address": "Définir l'adresse de livraison",
     "set-shipping-address": "Définir l'adresse de livraison",
     "set-shipping-method": "Définir la méthode de livraison",
     "set-shipping-method": "Définir la méthode de livraison",
@@ -817,11 +809,6 @@
     "job-state-completed": "Terminé",
     "job-state-completed": "Terminé",
     "job-state-failed": "Échoué",
     "job-state-failed": "Échoué",
     "job-state-pending": "En attente",
     "job-state-pending": "En attente",
-    "job-state-running": "En cours",
-    "last-executed-at": "Dernière exécution",
-    "last-result": "Dernier résultat",
-    "next-execution-at": "Prochaine exécution",
-    "schedule": "Programmation",
-    "task-id": "ID de la tâche"
+    "job-state-running": "En cours"
   }
   }
 }
 }

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/he.json

@@ -6,7 +6,6 @@
     "add-asset": "הוסף נכס",
     "add-asset": "הוסף נכס",
     "add-asset-with-count": "הוסף {count, plural, =0 {נכסים} one {1 נכס} other {{count} נכסים}}",
     "add-asset-with-count": "הוסף {count, plural, =0 {נכסים} one {1 נכס} other {{count} נכסים}}",
     "assets-selected-count": "{ count } נכסים נבחרו",
     "assets-selected-count": "{ count } נכסים נבחרו",
-    "change-asset": "שנה נכס",
     "dimensions": "ממדים",
     "dimensions": "ממדים",
     "focal-point": "נקודת מוקד",
     "focal-point": "נקודת מוקד",
     "notify-create-assets-success": "נוצר {count, plural, one {נכס חדש} other {{count} נכסים חדשים}}",
     "notify-create-assets-success": "נוצר {count, plural, one {נכס חדש} other {{count} נכסים חדשים}}",
@@ -17,7 +16,6 @@
     "select-assets": "בחר נכסים",
     "select-assets": "בחר נכסים",
     "set-as-featured-asset": "סמן כנכס מובחר",
     "set-as-featured-asset": "סמן כנכס מובחר",
     "set-focal-point": "קבע נקודת מוקד",
     "set-focal-point": "קבע נקודת מוקד",
-    "size": "גודל",
     "source-file": "קובץ מקור",
     "source-file": "קובץ מקור",
     "unset-focal-point": "בטל קביעת נקודת מוקד",
     "unset-focal-point": "בטל קביעת נקודת מוקד",
     "update-focal-point": "עדכן נקודת מוקד",
     "update-focal-point": "עדכן נקודת מוקד",
@@ -47,7 +45,6 @@
     "profile": "פרופיל",
     "profile": "פרופיל",
     "promotions": "מבצעים",
     "promotions": "מבצעים",
     "roles": "תפקידים",
     "roles": "תפקידים",
-    "scheduled-tasks": "משימות מתוכנות",
     "seller-orders": "הזמנות מוכר",
     "seller-orders": "הזמנות מוכר",
     "sellers": "מוכרים",
     "sellers": "מוכרים",
     "shipping-methods": "שיטות משלוח",
     "shipping-methods": "שיטות משלוח",
@@ -240,14 +237,12 @@
     "delete": "מחק",
     "delete": "מחק",
     "description": "תיאור",
     "description": "תיאור",
     "details": "פרטים",
     "details": "פרטים",
-    "disable": "מספר",
     "disabled": "מושבת",
     "disabled": "מושבת",
     "discard-changes": "בטל שינויים",
     "discard-changes": "בטל שינויים",
     "duplicate": "שכפול",
     "duplicate": "שכפול",
     "edit": "ערוך",
     "edit": "ערוך",
     "edit-field": "ערוך שדה",
     "edit-field": "ערוך שדה",
     "edit-note": "ערוך הערה",
     "edit-note": "ערוך הערה",
-    "enable": "אפשר",
     "enabled": "מאופשר",
     "enabled": "מאופשר",
     "end-date": "תאריך סיום",
     "end-date": "תאריך סיום",
     "expand-entries": "הרחב רשומות",
     "expand-entries": "הרחב רשומות",
@@ -279,7 +274,7 @@
     "name": "שם",
     "name": "שם",
     "no-alerts": "אין התראות",
     "no-alerts": "אין התראות",
     "no-bulk-actions-available": "אין פעולות גורפות זמינות",
     "no-bulk-actions-available": "אין פעולות גורפות זמינות",
-    "no-channel-selected": "אין ערוץ נבחר",
+    "no-channel-selected": "",
     "no-results": "אין תוצאות",
     "no-results": "אין תוצאות",
     "not-applicable": "לא רלוונטי",
     "not-applicable": "לא רלוונטי",
     "not-set": "לא מוגדר",
     "not-set": "לא מוגדר",
@@ -480,7 +475,6 @@
     "year": "שנה"
     "year": "שנה"
   },
   },
   "editor": {
   "editor": {
-    "height": "גובה",
     "image-alt": "תיאור (טקסט חלופי)",
     "image-alt": "תיאור (טקסט חלופי)",
     "image-src": "מקור (כתובת)",
     "image-src": "מקור (כתובת)",
     "image-title": "כותרת",
     "image-title": "כותרת",
@@ -489,8 +483,7 @@
     "link-target": "יעד הקישור",
     "link-target": "יעד הקישור",
     "link-title": "כותרת הקישור",
     "link-title": "כותרת הקישור",
     "remove-link": "הסר",
     "remove-link": "הסר",
-    "set-link": "הגדר קישור",
-    "width": "רוחב"
+    "set-link": "הגדר קישור"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "אין לך הרשאות לגשת כרגע ל \"{path}\". יתכן כי אין לך הרשאות מתאימות או שהפעלת ההפעלה שלך פגה.",
     "403-forbidden": "אין לך הרשאות לגשת כרגע ל \"{path}\". יתכן כי אין לך הרשאות מתאימות או שהפעלת ההפעלה שלך פגה.",
@@ -535,7 +528,6 @@
     "promotions": "מבצעים",
     "promotions": "מבצעים",
     "roles": "תפקידים",
     "roles": "תפקידים",
     "sales": "מכירות",
     "sales": "מכירות",
-    "scheduled-tasks": "משימות מתוכנות",
     "sellers": "מוכרים",
     "sellers": "מוכרים",
     "settings": "הגדרות",
     "settings": "הגדרות",
     "shipping-methods": "אמצעי משלוח",
     "shipping-methods": "אמצעי משלוח",
@@ -683,7 +675,7 @@
     "set-billing-address": "קבע כתובת לחיוב",
     "set-billing-address": "קבע כתובת לחיוב",
     "set-coupon-codes": "קבע קודי קופון",
     "set-coupon-codes": "קבע קודי קופון",
     "set-customer-for-order": "קבע לקוח",
     "set-customer-for-order": "קבע לקוח",
-    "set-customer-success": "לקוח נקבע בהצלחה",
+    "set-customer-success": "",
     "set-fulfillment-state": "סמן כ{state}",
     "set-fulfillment-state": "סמן כ{state}",
     "set-shipping-address": "קבע כתובת למשלוח",
     "set-shipping-address": "קבע כתובת למשלוח",
     "set-shipping-method": "קבע שיטת משלוח",
     "set-shipping-method": "קבע שיטת משלוח",
@@ -817,11 +809,6 @@
     "job-state-completed": "הושלם",
     "job-state-completed": "הושלם",
     "job-state-failed": "נכשל",
     "job-state-failed": "נכשל",
     "job-state-pending": "ממתין",
     "job-state-pending": "ממתין",
-    "job-state-running": "רץ",
-    "last-executed-at": "התבצע לאחרונה בתאריך",
-    "last-result": "תוצאה אחרונה",
-    "next-execution-at": "התבצע הבא בתאריך",
-    "schedule": "תיקון",
-    "task-id": "מזהה משימה"
+    "job-state-running": "רץ"
   }
   }
 }
 }

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/hr.json

@@ -6,7 +6,6 @@
     "add-asset": "Dodaj medij",
     "add-asset": "Dodaj medij",
     "add-asset-with-count": "Dodaj {count, plural, =0 {medija} one {1 medij} few {{count} medija} other {{count} medija}}",
     "add-asset-with-count": "Dodaj {count, plural, =0 {medija} one {1 medij} few {{count} medija} other {{count} medija}}",
     "assets-selected-count": "Odabrano {count} medija",
     "assets-selected-count": "Odabrano {count} medija",
-    "change-asset": "Promijeni medij",
     "dimensions": "Dimenzije",
     "dimensions": "Dimenzije",
     "focal-point": "Fokalna točka",
     "focal-point": "Fokalna točka",
     "notify-create-assets-success": "Kreirano {count, plural, one {1 novo sredstvo} few {{count} nova sredstva} other {{count} novih sredstava}}",
     "notify-create-assets-success": "Kreirano {count, plural, one {1 novo sredstvo} few {{count} nova sredstva} other {{count} novih sredstava}}",
@@ -17,7 +16,6 @@
     "select-assets": "Odaberi medije",
     "select-assets": "Odaberi medije",
     "set-as-featured-asset": "Postavi kao istaknuti medij",
     "set-as-featured-asset": "Postavi kao istaknuti medij",
     "set-focal-point": "Postavi fokalnu točku",
     "set-focal-point": "Postavi fokalnu točku",
-    "size": "Veličina",
     "source-file": "Izvorna datoteka",
     "source-file": "Izvorna datoteka",
     "unset-focal-point": "Poništi",
     "unset-focal-point": "Poništi",
     "update-focal-point": "Ažuriraj točku",
     "update-focal-point": "Ažuriraj točku",
@@ -47,7 +45,6 @@
     "profile": "Profil",
     "profile": "Profil",
     "promotions": "Promocije",
     "promotions": "Promocije",
     "roles": "Uloge",
     "roles": "Uloge",
-    "scheduled-tasks": "Zakazane zadatke",
     "seller-orders": "Narudžbe prodavača",
     "seller-orders": "Narudžbe prodavača",
     "sellers": "Prodavači",
     "sellers": "Prodavači",
     "shipping-methods": "Načini dostave",
     "shipping-methods": "Načini dostave",
@@ -240,14 +237,12 @@
     "delete": "Izbriši",
     "delete": "Izbriši",
     "description": "Opis",
     "description": "Opis",
     "details": "Detalji",
     "details": "Detalji",
-    "disable": "Onemogućeno",
     "disabled": "Onemogućeno",
     "disabled": "Onemogućeno",
     "discard-changes": "Odbaci promjene",
     "discard-changes": "Odbaci promjene",
     "duplicate": "Duplicirati",
     "duplicate": "Duplicirati",
     "edit": "Uredi",
     "edit": "Uredi",
     "edit-field": "Uredi polje",
     "edit-field": "Uredi polje",
     "edit-note": "Uredi bilješku",
     "edit-note": "Uredi bilješku",
-    "enable": "Omogućeno",
     "enabled": "Omogućeno",
     "enabled": "Omogućeno",
     "end-date": "Datum završetka",
     "end-date": "Datum završetka",
     "expand-entries": "Proširi unose",
     "expand-entries": "Proširi unose",
@@ -279,7 +274,7 @@
     "name": "Ime",
     "name": "Ime",
     "no-alerts": "Nema upozorenja",
     "no-alerts": "Nema upozorenja",
     "no-bulk-actions-available": "Nema dostupnih grupnih radnji",
     "no-bulk-actions-available": "Nema dostupnih grupnih radnji",
-    "no-channel-selected": "Nije odabran kanal",
+    "no-channel-selected": "",
     "no-results": "Nema rezultata",
     "no-results": "Nema rezultata",
     "not-applicable": "Nije primjenjivo",
     "not-applicable": "Nije primjenjivo",
     "not-set": "Nije postavljeno",
     "not-set": "Nije postavljeno",
@@ -480,7 +475,6 @@
     "year": "godina"
     "year": "godina"
   },
   },
   "editor": {
   "editor": {
-    "height": "Visina",
     "image-alt": "Opis (alt)",
     "image-alt": "Opis (alt)",
     "image-src": "Izvor",
     "image-src": "Izvor",
     "image-title": "Naziv",
     "image-title": "Naziv",
@@ -489,8 +483,7 @@
     "link-target": "Target linka",
     "link-target": "Target linka",
     "link-title": "Naziv linka",
     "link-title": "Naziv linka",
     "remove-link": "Ukloni",
     "remove-link": "Ukloni",
-    "set-link": "Postavi link",
-    "width": "Širina"
+    "set-link": "Postavi link"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Trenutno nemate ovlaštenje za pristup \"{ path }\". Ili vam nedostaju ovlasti ili je vaša sesija istekla.",
     "403-forbidden": "Trenutno nemate ovlaštenje za pristup \"{ path }\". Ili vam nedostaju ovlasti ili je vaša sesija istekla.",
@@ -535,7 +528,6 @@
     "promotions": "Promocije",
     "promotions": "Promocije",
     "roles": "Uloge",
     "roles": "Uloge",
     "sales": "Prodaja",
     "sales": "Prodaja",
-    "scheduled-tasks": "Zakazane zadatke",
     "sellers": "Prodavači",
     "sellers": "Prodavači",
     "settings": "Postavke",
     "settings": "Postavke",
     "shipping-methods": "Načini dostave",
     "shipping-methods": "Načini dostave",
@@ -683,7 +675,7 @@
     "set-billing-address": "Postavi adresu za naplatu",
     "set-billing-address": "Postavi adresu za naplatu",
     "set-coupon-codes": "Postavi kôdove kupona",
     "set-coupon-codes": "Postavi kôdove kupona",
     "set-customer-for-order": "Postavi kupca",
     "set-customer-for-order": "Postavi kupca",
-    "set-customer-success": "Kupac postavljen",
+    "set-customer-success": "",
     "set-fulfillment-state": "Označi kao {state}",
     "set-fulfillment-state": "Označi kao {state}",
     "set-shipping-address": "Postavi adresu za dostavu",
     "set-shipping-address": "Postavi adresu za dostavu",
     "set-shipping-method": "Postavi metodu dostave",
     "set-shipping-method": "Postavi metodu dostave",
@@ -817,11 +809,6 @@
     "job-state-completed": "Završeno",
     "job-state-completed": "Završeno",
     "job-state-failed": "Neuspjelo",
     "job-state-failed": "Neuspjelo",
     "job-state-pending": "Na čekanju",
     "job-state-pending": "Na čekanju",
-    "job-state-running": "U tijeku",
-    "last-executed-at": "Poslednja izvršenja",
-    "last-result": "Poslednji rezultat",
-    "next-execution-at": "Sljedeće izvršenje",
-    "schedule": "Planiranje",
-    "task-id": "ID zadatka"
+    "job-state-running": "U tijeku"
   }
   }
 }
 }

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/it.json

@@ -6,7 +6,6 @@
     "add-asset": "Aggiungi immagine",
     "add-asset": "Aggiungi immagine",
     "add-asset-with-count": "Aggiungi {count, plural, =0 {media} one {1 media} other {{count} media}}",
     "add-asset-with-count": "Aggiungi {count, plural, =0 {media} one {1 media} other {{count} media}}",
     "assets-selected-count": "{ count } media selezionati",
     "assets-selected-count": "{ count } media selezionati",
-    "change-asset": "Cambia media",
     "dimensions": "Dimensioni",
     "dimensions": "Dimensioni",
     "focal-point": "Punto focale",
     "focal-point": "Punto focale",
     "notify-create-assets-success": "Creati {count, plural, one {nuovo media} other {{count} nuovi media}}",
     "notify-create-assets-success": "Creati {count, plural, one {nuovo media} other {{count} nuovi media}}",
@@ -17,7 +16,6 @@
     "select-assets": "Seleziona media",
     "select-assets": "Seleziona media",
     "set-as-featured-asset": "Imposta come media in evidenza",
     "set-as-featured-asset": "Imposta come media in evidenza",
     "set-focal-point": "Imposta punto focale",
     "set-focal-point": "Imposta punto focale",
-    "size": "Dimensione",
     "source-file": "File sorgente",
     "source-file": "File sorgente",
     "unset-focal-point": "Deseleziona",
     "unset-focal-point": "Deseleziona",
     "update-focal-point": "Aggiorna punto",
     "update-focal-point": "Aggiorna punto",
@@ -47,7 +45,6 @@
     "profile": "Profilo",
     "profile": "Profilo",
     "promotions": "Promozioni",
     "promotions": "Promozioni",
     "roles": "Ruoli",
     "roles": "Ruoli",
-    "scheduled-tasks": "Attività pianificate",
     "seller-orders": "Ordini venditori",
     "seller-orders": "Ordini venditori",
     "sellers": "Venditori",
     "sellers": "Venditori",
     "shipping-methods": "Metodi di spedizione",
     "shipping-methods": "Metodi di spedizione",
@@ -240,14 +237,12 @@
     "delete": "Cancella",
     "delete": "Cancella",
     "description": "Descrizione",
     "description": "Descrizione",
     "details": "Dettagli",
     "details": "Dettagli",
-    "disable": "Disabilitato",
     "disabled": "Disabilitato",
     "disabled": "Disabilitato",
     "discard-changes": "Annulla modifiche",
     "discard-changes": "Annulla modifiche",
     "duplicate": "Duplica",
     "duplicate": "Duplica",
     "edit": "Modifica",
     "edit": "Modifica",
     "edit-field": "Modifica campo",
     "edit-field": "Modifica campo",
     "edit-note": "Modifica nota",
     "edit-note": "Modifica nota",
-    "enable": "Abilitato",
     "enabled": "Abilitato",
     "enabled": "Abilitato",
     "end-date": "Data di fine",
     "end-date": "Data di fine",
     "expand-entries": "Espandi elementi",
     "expand-entries": "Espandi elementi",
@@ -279,7 +274,7 @@
     "name": "Nome",
     "name": "Nome",
     "no-alerts": "Nessun avviso",
     "no-alerts": "Nessun avviso",
     "no-bulk-actions-available": "Nessuna azione di massa disponibile",
     "no-bulk-actions-available": "Nessuna azione di massa disponibile",
-    "no-channel-selected": "Nessun canale selezionato",
+    "no-channel-selected": "",
     "no-results": "Nessun risultato",
     "no-results": "Nessun risultato",
     "not-applicable": "Non applicabile",
     "not-applicable": "Non applicabile",
     "not-set": "Non impostato",
     "not-set": "Non impostato",
@@ -480,7 +475,6 @@
     "year": "anno"
     "year": "anno"
   },
   },
   "editor": {
   "editor": {
-    "height": "Altezza",
     "image-alt": "Descrizione (alt)",
     "image-alt": "Descrizione (alt)",
     "image-src": "Fonte (indirizzo immagine)",
     "image-src": "Fonte (indirizzo immagine)",
     "image-title": "Titolo",
     "image-title": "Titolo",
@@ -489,8 +483,7 @@
     "link-target": "Destinazione link",
     "link-target": "Destinazione link",
     "link-title": "Titolo link",
     "link-title": "Titolo link",
     "remove-link": "Rimuovi",
     "remove-link": "Rimuovi",
-    "set-link": "Imposta link",
-    "width": "Larghezza"
+    "set-link": "Imposta link"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Non sei autorizzato ad accedere a \"{ path }\". Potresti non avere sufficienti permessi, oppure la tua sessione è scaduta.",
     "403-forbidden": "Non sei autorizzato ad accedere a \"{ path }\". Potresti non avere sufficienti permessi, oppure la tua sessione è scaduta.",
@@ -535,7 +528,6 @@
     "promotions": "Promozioni",
     "promotions": "Promozioni",
     "roles": "Ruoli",
     "roles": "Ruoli",
     "sales": "Vendite",
     "sales": "Vendite",
-    "scheduled-tasks": "Attività pianificate",
     "sellers": "Venditori",
     "sellers": "Venditori",
     "settings": "Impostazioni",
     "settings": "Impostazioni",
     "shipping-methods": "Metodi di Spedizione",
     "shipping-methods": "Metodi di Spedizione",
@@ -683,7 +675,7 @@
     "set-billing-address": "Inserisci indirizzo di fatturazioine",
     "set-billing-address": "Inserisci indirizzo di fatturazioine",
     "set-coupon-codes": "Inserisci i codici coupon",
     "set-coupon-codes": "Inserisci i codici coupon",
     "set-customer-for-order": "Seleziona cliente",
     "set-customer-for-order": "Seleziona cliente",
-    "set-customer-success": "Cliente impostato con successo",
+    "set-customer-success": "",
     "set-fulfillment-state": "Segna come {state}",
     "set-fulfillment-state": "Segna come {state}",
     "set-shipping-address": "Seleziona indirizzo di spedizione",
     "set-shipping-address": "Seleziona indirizzo di spedizione",
     "set-shipping-method": "Seleziona metodo di consegna",
     "set-shipping-method": "Seleziona metodo di consegna",
@@ -817,11 +809,6 @@
     "job-state-completed": "Completato",
     "job-state-completed": "Completato",
     "job-state-failed": "Fallito",
     "job-state-failed": "Fallito",
     "job-state-pending": "In attesa",
     "job-state-pending": "In attesa",
-    "job-state-running": "In esecuzione",
-    "last-executed-at": "Ultimo esecuzione",
-    "last-result": "Ultimo risultato",
-    "next-execution-at": "Prossima esecuzione",
-    "schedule": "Programmazione",
-    "task-id": "ID attività"
+    "job-state-running": "In esecuzione"
   }
   }
 }
 }

+ 8 - 17
packages/admin-ui/src/lib/static/i18n-messages/ja.json

@@ -5,8 +5,8 @@
   "asset": {
   "asset": {
     "add-asset": "アセット追加",
     "add-asset": "アセット追加",
     "add-asset-with-count": "{ count }個のアセットを追加",
     "add-asset-with-count": "{ count }個のアセットを追加",
-    "assets-selected-count": "{ count }個のアセットを選択",
     "change-asset": "アセット変更",
     "change-asset": "アセット変更",
+    "assets-selected-count": "{ count }個のアセットを選択",
     "dimensions": "元画像サイズ",
     "dimensions": "元画像サイズ",
     "focal-point": "注目点",
     "focal-point": "注目点",
     "notify-create-assets-success": "{count}個のアセットが作成されました",
     "notify-create-assets-success": "{count}個のアセットが作成されました",
@@ -17,14 +17,14 @@
     "select-assets": "アセット選択",
     "select-assets": "アセット選択",
     "set-as-featured-asset": "代表アセットにする",
     "set-as-featured-asset": "代表アセットにする",
     "set-focal-point": "注目点を指定",
     "set-focal-point": "注目点を指定",
-    "size": "サイズ",
     "source-file": "元画像ファイル名",
     "source-file": "元画像ファイル名",
     "unset-focal-point": "注目点解除",
     "unset-focal-point": "注目点解除",
     "update-focal-point": "注目点更新",
     "update-focal-point": "注目点更新",
     "update-focal-point-error": "注目点の更新ができませんでした",
     "update-focal-point-error": "注目点の更新ができませんでした",
     "update-focal-point-success": "注目点を更新しました",
     "update-focal-point-success": "注目点を更新しました",
     "upload-assets": "アセットをアップロード",
     "upload-assets": "アセットをアップロード",
-    "uploading": "アップロード中..."
+    "uploading": "アップロード中...",
+    "size": "サイズ"
   },
   },
   "breadcrumb": {
   "breadcrumb": {
     "administrators": "管理者",
     "administrators": "管理者",
@@ -47,7 +47,6 @@
     "profile": "プロフィール",
     "profile": "プロフィール",
     "promotions": "プロモーション",
     "promotions": "プロモーション",
     "roles": "ロール",
     "roles": "ロール",
-    "scheduled-tasks": "スケジュールされたタスク",
     "seller-orders": "販売者の注文",
     "seller-orders": "販売者の注文",
     "sellers": "販売者",
     "sellers": "販売者",
     "shipping-methods": "配送方法",
     "shipping-methods": "配送方法",
@@ -240,14 +239,12 @@
     "delete": "削除",
     "delete": "削除",
     "description": "説明",
     "description": "説明",
     "details": "詳細",
     "details": "詳細",
-    "disable": "無効",
     "disabled": "Disabled",
     "disabled": "Disabled",
     "discard-changes": "変更の破棄",
     "discard-changes": "変更の破棄",
     "duplicate": "複製",
     "duplicate": "複製",
     "edit": "編集",
     "edit": "編集",
     "edit-field": "フィールドを編集",
     "edit-field": "フィールドを編集",
     "edit-note": "ノート編集",
     "edit-note": "ノート編集",
-    "enable": "有効",
     "enabled": "Enabled",
     "enabled": "Enabled",
     "end-date": "終了日",
     "end-date": "終了日",
     "expand-entries": "折りたたみ開閉",
     "expand-entries": "折りたたみ開閉",
@@ -293,7 +290,7 @@
     "notify-delete-success-with-count": "{count} 個のアイテムを削除しました。",
     "notify-delete-success-with-count": "{count} 個のアイテムを削除しました。",
     "notify-duplicate-error": "{ name } の複製ができませんでした。エラー: { error }",
     "notify-duplicate-error": "{ name } の複製ができませんでした。エラー: { error }",
     "notify-duplicate-error-excess": "エラーのため追加の { count } 件は複製できませんでした",
     "notify-duplicate-error-excess": "エラーのため追加の { count } 件は複製できませんでした",
-    "notify-duplicate-success": "複製しました: {count} 件 ({names})",
+    "notify-duplicate-success": "複製しました。 {count, plural, one {1 item} other {{count} items}}: { names }",
     "notify-remove-from-channel-success-with-count": "{ count } 個のアイテムをチャンネルから除去しました。",
     "notify-remove-from-channel-success-with-count": "{ count } 個のアイテムをチャンネルから除去しました。",
     "notify-save-changes-error": "エラーが発生しました。変更を保存できませんでした。",
     "notify-save-changes-error": "エラーが発生しました。変更を保存できませんでした。",
     "notify-saved-changes": "変更を保存しました",
     "notify-saved-changes": "変更を保存しました",
@@ -480,7 +477,6 @@
     "year": "年間"
     "year": "年間"
   },
   },
   "editor": {
   "editor": {
-    "height": "高さ",
     "image-alt": "説明文 (alt)",
     "image-alt": "説明文 (alt)",
     "image-src": "ソース",
     "image-src": "ソース",
     "image-title": "題名",
     "image-title": "題名",
@@ -490,7 +486,8 @@
     "link-title": "リンクタイトル",
     "link-title": "リンクタイトル",
     "remove-link": "除去",
     "remove-link": "除去",
     "set-link": "リンクを設定",
     "set-link": "リンクを設定",
-    "width": "幅"
+    "width": "幅",
+    "height": "高さ"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "現在 \"{ path }\" のアクセス権限がありません。権限がないかセッション有効期限が切れています。",
     "403-forbidden": "現在 \"{ path }\" のアクセス権限がありません。権限がないかセッション有効期限が切れています。",
@@ -535,7 +532,6 @@
     "promotions": "プロモーション",
     "promotions": "プロモーション",
     "roles": "ロール",
     "roles": "ロール",
     "sales": "販売",
     "sales": "販売",
-    "scheduled-tasks": "スケジュールされたタスク",
     "sellers": "販売者",
     "sellers": "販売者",
     "settings": "設定",
     "settings": "設定",
     "shipping-methods": "配送方法",
     "shipping-methods": "配送方法",
@@ -817,11 +813,6 @@
     "job-state-completed": "完了",
     "job-state-completed": "完了",
     "job-state-failed": "失敗",
     "job-state-failed": "失敗",
     "job-state-pending": "保留中",
     "job-state-pending": "保留中",
-    "job-state-running": "実行中",
-    "last-executed-at": "最後の実行日時",
-    "last-result": "最後の結果",
-    "next-execution-at": "次回の実行日時",
-    "schedule": "スケジュール",
-    "task-id": "タスクID"
+    "job-state-running": "実行中"
   }
   }
-}
+}

+ 7 - 22
packages/admin-ui/src/lib/static/i18n-messages/nb.json

@@ -6,7 +6,6 @@
     "add-asset": "Legg til ressurs",
     "add-asset": "Legg til ressurs",
     "add-asset-with-count": "Legg til {count, plural, =0 {ressurser} one {1 ressurs} other {{count} ressurser}}",
     "add-asset-with-count": "Legg til {count, plural, =0 {ressurser} one {1 ressurs} other {{count} ressurser}}",
     "assets-selected-count": "{ count } ressurser valgt",
     "assets-selected-count": "{ count } ressurser valgt",
-    "change-asset": "Endre medie",
     "dimensions": "Dimensjoner",
     "dimensions": "Dimensjoner",
     "focal-point": "Fokuspunkt",
     "focal-point": "Fokuspunkt",
     "notify-create-assets-success": "Opprettet {count, plural, one {ny ressurs} other {{count} nye ressurser}}",
     "notify-create-assets-success": "Opprettet {count, plural, one {ny ressurs} other {{count} nye ressurser}}",
@@ -17,7 +16,6 @@
     "select-assets": "Velg ressurser",
     "select-assets": "Velg ressurser",
     "set-as-featured-asset": "Sett som fremhevet ressurs",
     "set-as-featured-asset": "Sett som fremhevet ressurs",
     "set-focal-point": "Sett fokuspunkt",
     "set-focal-point": "Sett fokuspunkt",
-    "size": "Størrelse",
     "source-file": "Kildefil",
     "source-file": "Kildefil",
     "unset-focal-point": "Fjern fokuspunkt",
     "unset-focal-point": "Fjern fokuspunkt",
     "update-focal-point": "Oppdater fokuspunkt",
     "update-focal-point": "Oppdater fokuspunkt",
@@ -47,7 +45,6 @@
     "profile": "Profil",
     "profile": "Profil",
     "promotions": "Promosjoner",
     "promotions": "Promosjoner",
     "roles": "Roller",
     "roles": "Roller",
-    "scheduled-tasks": "Planlagte oppgaver",
     "seller-orders": "Selgerordrer",
     "seller-orders": "Selgerordrer",
     "sellers": "Selgere",
     "sellers": "Selgere",
     "shipping-methods": "Fraktmetoder",
     "shipping-methods": "Fraktmetoder",
@@ -74,8 +71,6 @@
     "assign-variants-to-channel": "Legg til produktvarianter til kanal",
     "assign-variants-to-channel": "Legg til produktvarianter til kanal",
     "auto-update-option-variant-name": "Oppdater automatisk navnene på produktvarianter ved bruk av dette alternativet",
     "auto-update-option-variant-name": "Oppdater automatisk navnene på produktvarianter ved bruk av dette alternativet",
     "auto-update-product-variant-name": "Oppdater automatisk navnene på produktvarianter",
     "auto-update-product-variant-name": "Oppdater automatisk navnene på produktvarianter",
-    "calculated-price": "Beregnet pris",
-    "calculated-price-tooltip": "Prisene for produktvarianter beregnes automatisk basert på prisene for produktalternativer",
     "cannot-create-variants-without-options": "Produktvarianter kan ikke opprettes før en alternativgruppe med minst to produktalternativer er definert",
     "cannot-create-variants-without-options": "Produktvarianter kan ikke opprettes før en alternativgruppe med minst to produktalternativer er definert",
     "channel-price-preview": "Forhåndsvisning av pris i kanal",
     "channel-price-preview": "Forhåndsvisning av pris i kanal",
     "collection": "Samling",
     "collection": "Samling",
@@ -240,14 +235,12 @@
     "delete": "Slett",
     "delete": "Slett",
     "description": "Beskrivelse",
     "description": "Beskrivelse",
     "details": "Detaljer",
     "details": "Detaljer",
-    "disable": "Deaktivert",
     "disabled": "Deaktivert",
     "disabled": "Deaktivert",
     "discard-changes": "Forkast endringer",
     "discard-changes": "Forkast endringer",
     "duplicate": "Duplisere",
     "duplicate": "Duplisere",
     "edit": "Rediger",
     "edit": "Rediger",
     "edit-field": "Rediger felt",
     "edit-field": "Rediger felt",
     "edit-note": "Rediger notat",
     "edit-note": "Rediger notat",
-    "enable": "Aktiver",
     "enabled": "Aktivert",
     "enabled": "Aktivert",
     "end-date": "Sluttdato",
     "end-date": "Sluttdato",
     "expand-entries": "Utvid oppføringer",
     "expand-entries": "Utvid oppføringer",
@@ -279,7 +272,7 @@
     "name": "Navn",
     "name": "Navn",
     "no-alerts": "Ingen varsler",
     "no-alerts": "Ingen varsler",
     "no-bulk-actions-available": "Ingen massehandlinger tilgjengelige",
     "no-bulk-actions-available": "Ingen massehandlinger tilgjengelige",
-    "no-channel-selected": "Ingen kanal valgt",
+    "no-channel-selected": "",
     "no-results": "Ingen resultater",
     "no-results": "Ingen resultater",
     "not-applicable": "Ikke relevant",
     "not-applicable": "Ikke relevant",
     "not-set": "Ikke satt",
     "not-set": "Ikke satt",
@@ -480,7 +473,6 @@
     "year": "år"
     "year": "år"
   },
   },
   "editor": {
   "editor": {
-    "height": "Høyde",
     "image-alt": "Beskrivelse (alt)",
     "image-alt": "Beskrivelse (alt)",
     "image-src": "Kilde",
     "image-src": "Kilde",
     "image-title": "Tittel",
     "image-title": "Tittel",
@@ -489,8 +481,7 @@
     "link-target": "Lenkemål",
     "link-target": "Lenkemål",
     "link-title": "Lenketittel",
     "link-title": "Lenketittel",
     "remove-link": "Fjern",
     "remove-link": "Fjern",
-    "set-link": "Sett lenke",
-    "width": "Bredde"
+    "set-link": "Sett lenke"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Du har for øyeblikket ikke autorisasjon til å få tilgang til \"{ path }\". Enten mangler du tillatelser, eller økten din har utløpt.",
     "403-forbidden": "Du har for øyeblikket ikke autorisasjon til å få tilgang til \"{ path }\". Enten mangler du tillatelser, eller økten din har utløpt.",
@@ -535,7 +526,6 @@
     "promotions": "Promosjoner",
     "promotions": "Promosjoner",
     "roles": " Roller",
     "roles": " Roller",
     "sales": "Salg",
     "sales": "Salg",
-    "scheduled-tasks": "Planlagte oppgaver",
     "sellers": "Selgere",
     "sellers": "Selgere",
     "settings": "Innstillinger",
     "settings": "Innstillinger",
     "shipping-methods": "Fraktmetoder",
     "shipping-methods": "Fraktmetoder",
@@ -569,7 +559,7 @@
     "cancel-selected-items": "Avbryt valgte varer",
     "cancel-selected-items": "Avbryt valgte varer",
     "cancel-specified-items": "Avbryt spesifikke varer",
     "cancel-specified-items": "Avbryt spesifikke varer",
     "cancellation-reason": "Årsak til avbestilling",
     "cancellation-reason": "Årsak til avbestilling",
-    "cancelled-order-items-success": "Varer ble avlyst",
+    "cancelled-order-items-success": "",
     "cancelled-order-success": "Ordren ble avlyst",
     "cancelled-order-success": "Ordren ble avlyst",
     "complete-draft-order": "Fullfør utkast",
     "complete-draft-order": "Fullfør utkast",
     "confirm-modifications": "Bekreft endringer",
     "confirm-modifications": "Bekreft endringer",
@@ -683,7 +673,7 @@
     "set-billing-address": "Sett faktureringsadresse",
     "set-billing-address": "Sett faktureringsadresse",
     "set-coupon-codes": "Angi kupongkoder",
     "set-coupon-codes": "Angi kupongkoder",
     "set-customer-for-order": "Sett kunde",
     "set-customer-for-order": "Sett kunde",
-    "set-customer-success": "Kunde ble satt",
+    "set-customer-success": "",
     "set-fulfillment-state": "Merk som {state}",
     "set-fulfillment-state": "Merk som {state}",
     "set-shipping-address": "Sett leveringsadresse",
     "set-shipping-address": "Sett leveringsadresse",
     "set-shipping-method": "Sett leveringsmetode",
     "set-shipping-method": "Sett leveringsmetode",
@@ -713,8 +703,8 @@
     "transitioned-payment-to-state-success": "Betaling ble vellykket overført til { state }",
     "transitioned-payment-to-state-success": "Betaling ble vellykket overført til { state }",
     "transitioned-to-state-success": "Overgangen til { state } ble vellykket",
     "transitioned-to-state-success": "Overgangen til { state } ble vellykket",
     "unable-to-transition-to-state-try-another": "Ordren kunne ikke overføres tilbake til tilstanden \"{state}\". Velg en alternativ tilstand.",
     "unable-to-transition-to-state-try-another": "Ordren kunne ikke overføres tilbake til tilstanden \"{state}\". Velg en alternativ tilstand.",
-    "unfulfilled": "Ikke utført",
-    "unit-price": "Enhetspris"
+    "unfulfilled": "",
+    "unit-price": ""
   },
   },
   "settings": {
   "settings": {
     "add-countries-to-zone": "Legg til land i { zoneName }",
     "add-countries-to-zone": "Legg til land i { zoneName }",
@@ -817,11 +807,6 @@
     "job-state-completed": "Fullført",
     "job-state-completed": "Fullført",
     "job-state-failed": "Feilet",
     "job-state-failed": "Feilet",
     "job-state-pending": "Venter",
     "job-state-pending": "Venter",
-    "job-state-running": "Kjører",
-    "last-executed-at": "Sist kjørt",
-    "last-result": "Siste resultat",
-    "next-execution-at": "Neste kjøring",
-    "schedule": "Plan",
-    "task-id": "Jobb-ID"
+    "job-state-running": "Kjører"
   }
   }
 }
 }

+ 15 - 28
packages/admin-ui/src/lib/static/i18n-messages/ne.json

@@ -6,7 +6,6 @@
     "add-asset": "फाइल थप्नुहोस्",
     "add-asset": "फाइल थप्नुहोस्",
     "add-asset-with-count": "थप्नुहोस् {count, plural, =0 {फाइल} one {१ फाइल} other {{count} फाइल}}",
     "add-asset-with-count": "थप्नुहोस् {count, plural, =0 {फाइल} one {१ फाइल} other {{count} फाइल}}",
     "assets-selected-count": "{ count } फाइल चयन गरियो",
     "assets-selected-count": "{ count } फाइल चयन गरियो",
-    "change-asset": "फाइल परिवर्तन गर्नुहोस्",
     "dimensions": "आयामहरू",
     "dimensions": "आयामहरू",
     "focal-point": "बिन्दु",
     "focal-point": "बिन्दु",
     "notify-create-assets-success": "{count, plural, one {नयाँ फाइल} other {{count} नयाँ फाइलहरू}} सिर्जना गरियो",
     "notify-create-assets-success": "{count, plural, one {नयाँ फाइल} other {{count} नयाँ फाइलहरू}} सिर्जना गरियो",
@@ -17,7 +16,6 @@
     "select-assets": "फाइलहरू चयन गर्नुहोस्",
     "select-assets": "फाइलहरू चयन गर्नुहोस्",
     "set-as-featured-asset": "फिचर्ड फाइल बनाउनुहोस्",
     "set-as-featured-asset": "फिचर्ड फाइल बनाउनुहोस्",
     "set-focal-point": "फोकल प्वाइट सेट गर्नुहोस्",
     "set-focal-point": "फोकल प्वाइट सेट गर्नुहोस्",
-    "size": "आकार",
     "source-file": "स्रोत फाइल",
     "source-file": "स्रोत फाइल",
     "unset-focal-point": "अनसेट-केन्द्र बिन्दु",
     "unset-focal-point": "अनसेट-केन्द्र बिन्दु",
     "update-focal-point": "अपडेट-केन्द्र बिन्दु",
     "update-focal-point": "अपडेट-केन्द्र बिन्दु",
@@ -30,7 +28,7 @@
     "administrators": "प्रशासकहरू",
     "administrators": "प्रशासकहरू",
     "assets": "फाइलहरू",
     "assets": "फाइलहरू",
     "channels": "च्यानलहरू",
     "channels": "च्यानलहरू",
-    "collections": "संग्रहहरू",
+    "collections": "",
     "countries": "देशहरू",
     "countries": "देशहरू",
     "customer-groups": "ग्राहक समूहहरू",
     "customer-groups": "ग्राहक समूहहरू",
     "customers": "ग्राहकहरू",
     "customers": "ग्राहकहरू",
@@ -47,7 +45,6 @@
     "profile": "प्रोफाइल",
     "profile": "प्रोफाइल",
     "promotions": "प्रमोशनहरू",
     "promotions": "प्रमोशनहरू",
     "roles": "भूमिकाहरू",
     "roles": "भूमिकाहरू",
-    "scheduled-tasks": "स्थानान्तरण गर्ने कामहरू",
     "seller-orders": "विक्रेता ओर्दरहरु",
     "seller-orders": "विक्रेता ओर्दरहरु",
     "sellers": "विक्रेता व्यक्तिहरू",
     "sellers": "विक्रेता व्यक्तिहरू",
     "shipping-methods": "ढुवानी गर्ने तरिकाहरू",
     "shipping-methods": "ढुवानी गर्ने तरिकाहरू",
@@ -78,9 +75,9 @@
     "calculated-price-tooltip": "उपर सेट गरिएको मूल्यलाई परिवर्तन गर्दछ जुन कस्टम मूल्य गणना गर्नुहोस्:",
     "calculated-price-tooltip": "उपर सेट गरिएको मूल्यलाई परिवर्तन गर्दछ जुन कस्टम मूल्य गणना गर्नुहोस्:",
     "cannot-create-variants-without-options": "कम्ति दुई समान विकल्पसम्म विकल्प संग समावेश गरिएको पर्याप्त छेनपछि समान विविधता सिर्जना गर्न सकिदैन",
     "cannot-create-variants-without-options": "कम्ति दुई समान विकल्पसम्म विकल्प संग समावेश गरिएको पर्याप्त छेनपछि समान विविधता सिर्जना गर्न सकिदैन",
     "channel-price-preview": "च्यानल मूल्य पूर्वावलोकन",
     "channel-price-preview": "च्यानल मूल्य पूर्वावलोकन",
-    "collection": "संग्रह",
-    "collection-contents": "संग्रह सामग्री",
-    "collections": "संग्रहहरू",
+    "collection": "",
+    "collection-contents": "",
+    "collections": "",
     "confirm-bulk-delete-products": "{count} समानहरू मेटाउनुहोस्?",
     "confirm-bulk-delete-products": "{count} समानहरू मेटाउनुहोस्?",
     "confirm-cancel": "रद्द गर्नुहोस्?",
     "confirm-cancel": "रद्द गर्नुहोस्?",
     "confirm-delete-assets": "{count} {count, plural, one {संपत्ति} other {संपत्तिहरू}} मेटाउनुहोस्?",
     "confirm-delete-assets": "{count} {count, plural, one {संपत्ति} other {संपत्तिहरू}} मेटाउनुहोस्?",
@@ -94,7 +91,7 @@
     "confirm-deletion-of-unused-variants-title": "अपयोगित समान विविधताहरू मेटाउनुहोस्?",
     "confirm-deletion-of-unused-variants-title": "अपयोगित समान विविधताहरू मेटाउनुहोस्?",
     "create-draft-order": "मस्यौदा ओर्दर सिर्जना गर्नुहोस्",
     "create-draft-order": "मस्यौदा ओर्दर सिर्जना गर्नुहोस्",
     "create-facet-value": "नयाँ गुणस्तर मान बनाउनुहोस्",
     "create-facet-value": "नयाँ गुणस्तर मान बनाउनुहोस्",
-    "create-new-collection": "नयाँ संग्रह सिर्जना गर्नुहोस्",
+    "create-new-collection": "",
     "create-new-facet": "नयाँ मूल्य सिर्जना गर्नुहोस्",
     "create-new-facet": "नयाँ मूल्य सिर्जना गर्नुहोस्",
     "create-new-product": "नयाँ समान",
     "create-new-product": "नयाँ समान",
     "create-new-stock-location": "नयाँ स्टक स्थान सिर्जना गर्नुहोस्",
     "create-new-stock-location": "नयाँ स्टक स्थान सिर्जना गर्नुहोस्",
@@ -118,9 +115,9 @@
     "inherit-filters-from-parent": "उत्तराधिकारीबाट फिल्टरहरू समावेश गर्नुहोस्",
     "inherit-filters-from-parent": "उत्तराधिकारीबाट फिल्टरहरू समावेश गर्नुहोस्",
     "live-preview-contents": "सामग्री लाइभ पूर्वावलोकन",
     "live-preview-contents": "सामग्री लाइभ पूर्वावलोकन",
     "manage-variants": "विविधताहरू प्रबन्धन गर्नुहोस्",
     "manage-variants": "विविधताहरू प्रबन्धन गर्नुहोस्",
-    "move-collection-to": "संग्रह स्थानान्तरण गर्नुहोस्",
-    "move-collections": "संग्रहहरू स्थानान्तरण गर्नुहोस्",
-    "move-collections-success": "संग्रहहरू स्थानान्तरण गर्नुहोस्",
+    "move-collection-to": "",
+    "move-collections": "",
+    "move-collections-success": "",
     "move-down": "तल सार्नुहोस्",
     "move-down": "तल सार्नुहोस्",
     "move-to": "यहाँ सार्नुहोस्",
     "move-to": "यहाँ सार्नुहोस्",
     "move-up": "माथि सार्नुहोस्",
     "move-up": "माथि सार्नुहोस्",
@@ -165,8 +162,8 @@
     "remove-option": "विकल्प हटाउनुहोस्",
     "remove-option": "विकल्प हटाउनुहोस्",
     "remove-product-from-channel": "च्यानलबाट समान हटाउनुहोस्",
     "remove-product-from-channel": "च्यानलबाट समान हटाउनुहोस्",
     "remove-product-variant-from-channel": "च्यानलबाट समान वेरिएन्ट हटाउनुहोस्",
     "remove-product-variant-from-channel": "च्यानलबाट समान वेरिएन्ट हटाउनुहोस्",
-    "reorder-collection": "संग्रह सूची पुनर्व्यवस्थापन गर्नुहोस्",
-    "root-collection": "मुख्य संग्रह",
+    "reorder-collection": "",
+    "root-collection": "",
     "run-pending-search-index-updates": "खोज सूची: चलाउँदै छ {count, plural, one {1 पेन्डिङ अपडेट} other {{count} पेन्डिङ अपडेटहरू}}",
     "run-pending-search-index-updates": "खोज सूची: चलाउँदै छ {count, plural, one {1 पेन्डिङ अपडेट} other {{count} पेन्डिङ अपडेटहरू}}",
     "running-search-index-updates": "चलाउँदै छ {count, plural, one {1 अपडेट} other {{count} अपडेटहरू}} खोज सूचीमा",
     "running-search-index-updates": "चलाउँदै छ {count, plural, one {1 अपडेट} other {{count} अपडेटहरू}} खोज सूचीमा",
     "search-asset-name-or-tag": "संपत्ति नाम वा ट्यागका लागि खोज्नुहोस्",
     "search-asset-name-or-tag": "संपत्ति नाम वा ट्यागका लागि खोज्नुहोस्",
@@ -240,14 +237,12 @@
     "delete": "मेटाउनुहोस्",
     "delete": "मेटाउनुहोस्",
     "description": "विवरण",
     "description": "विवरण",
     "details": "विवरणहरू",
     "details": "विवरणहरू",
-    "disable": "निष्कृय",
     "disabled": "निष्कृय",
     "disabled": "निष्कृय",
     "discard-changes": "परिवर्तन फाल्नुहोस्",
     "discard-changes": "परिवर्तन फाल्नुहोस्",
     "duplicate": "डुप्लिकेट",
     "duplicate": "डुप्लिकेट",
     "edit": "सम्पादन गर्नुहोस्",
     "edit": "सम्पादन गर्नुहोस्",
     "edit-field": "क्षेत्र सम्पादन गर्नुहोस्",
     "edit-field": "क्षेत्र सम्पादन गर्नुहोस्",
     "edit-note": "नोट सम्पादन गर्नुहोस्",
     "edit-note": "नोट सम्पादन गर्नुहोस्",
-    "enable": "सक्षम",
     "enabled": "सक्षम",
     "enabled": "सक्षम",
     "end-date": "समाप्ति मिति",
     "end-date": "समाप्ति मिति",
     "expand-entries": "प्रवेशहरू बढाउनुहोस्",
     "expand-entries": "प्रवेशहरू बढाउनुहोस्",
@@ -279,7 +274,7 @@
     "name": "नाम",
     "name": "नाम",
     "no-alerts": "कुनै सूचना छैन",
     "no-alerts": "कुनै सूचना छैन",
     "no-bulk-actions-available": "कुनै थप्दा कार्यक्रम उपलब्ध छैन",
     "no-bulk-actions-available": "कुनै थप्दा कार्यक्रम उपलब्ध छैन",
-    "no-channel-selected": "कुनै च्यानल चयन गरिएको छैन",
+    "no-channel-selected": "",
     "no-results": "कुनै परिणाम छैन",
     "no-results": "कुनै परिणाम छैन",
     "not-applicable": "लागू छैन",
     "not-applicable": "लागू छैन",
     "not-set": "सेट गरिएको छैन",
     "not-set": "सेट गरिएको छैन",
@@ -480,7 +475,6 @@
     "year": "बर्ष"
     "year": "बर्ष"
   },
   },
   "editor": {
   "editor": {
-    "height": "उचाइ",
     "image-alt": "विवरण (आल्ट)",
     "image-alt": "विवरण (आल्ट)",
     "image-src": "स्रोत",
     "image-src": "स्रोत",
     "image-title": "शीर्षक",
     "image-title": "शीर्षक",
@@ -489,8 +483,7 @@
     "link-target": "लिङ्क लक्ष्य",
     "link-target": "लिङ्क लक्ष्य",
     "link-title": "लिङ्क शीर्षक",
     "link-title": "लिङ्क शीर्षक",
     "remove-link": "हटाउनुहोस्",
     "remove-link": "हटाउनुहोस्",
-    "set-link": "लिङ्क सेट गर्नुहोस्",
-    "width": "चौडाइ"
+    "set-link": "लिङ्क सेट गर्नुहोस्"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "तपाईंलाई हालको गरेदिनुपर्दै \"{ path }\" मा पहुँच गर्न पाइएन। तपाईंको पासवर्ड, वा तपाईंको सत्र समाप्त भएको छ भने हेरचाह गर्नुहोस्।",
     "403-forbidden": "तपाईंलाई हालको गरेदिनुपर्दै \"{ path }\" मा पहुँच गर्न पाइएन। तपाईंको पासवर्ड, वा तपाईंको सत्र समाप्त भएको छ भने हेरचाह गर्नुहोस्।",
@@ -521,7 +514,7 @@
     "assets": "फाइलहरू",
     "assets": "फाइलहरू",
     "catalog": "क्याटलग",
     "catalog": "क्याटलग",
     "channels": "च्यानलहरू",
     "channels": "च्यानलहरू",
-    "collections": "संग्रहहरू",
+    "collections": "",
     "countries": "देशहरू",
     "countries": "देशहरू",
     "customer-groups": "ग्राहक समूहहरू",
     "customer-groups": "ग्राहक समूहहरू",
     "customers": "ग्राहकहरू",
     "customers": "ग्राहकहरू",
@@ -535,7 +528,6 @@
     "promotions": "प्रमोशनहरू",
     "promotions": "प्रमोशनहरू",
     "roles": "भूमिकाहरू",
     "roles": "भूमिकाहरू",
     "sales": "बिक्री",
     "sales": "बिक्री",
-    "scheduled-tasks": "स्थानान्तरण गर्ने कामहरू",
     "sellers": "बेच्नेहरू",
     "sellers": "बेच्नेहरू",
     "settings": "सेटिङ्ग्स",
     "settings": "सेटिङ्ग्स",
     "shipping-methods": "ढुवानी तरिकाहरू",
     "shipping-methods": "ढुवानी तरिकाहरू",
@@ -683,7 +675,7 @@
     "set-billing-address": "बिलिङ ठेगाना सेट गर्नुहोस्",
     "set-billing-address": "बिलिङ ठेगाना सेट गर्नुहोस्",
     "set-coupon-codes": "कुपन कोड सेट गर्नुहोस्",
     "set-coupon-codes": "कुपन कोड सेट गर्नुहोस्",
     "set-customer-for-order": "ग्राहक सेट गर्नुहोस्",
     "set-customer-for-order": "ग्राहक सेट गर्नुहोस्",
-    "set-customer-success": "ग्राहक सेट गरियो",
+    "set-customer-success": "",
     "set-fulfillment-state": "{state} मा चिन्ह गर्नुहोस्",
     "set-fulfillment-state": "{state} मा चिन्ह गर्नुहोस्",
     "set-shipping-address": "ढुवानी ठेगाना सेट गर्नुहोस्",
     "set-shipping-address": "ढुवानी ठेगाना सेट गर्नुहोस्",
     "set-shipping-method": "ढुवानी तरिका सेट गर्नुहोस्",
     "set-shipping-method": "ढुवानी तरिका सेट गर्नुहोस्",
@@ -817,11 +809,6 @@
     "job-state-completed": "पूरा गरिएको",
     "job-state-completed": "पूरा गरिएको",
     "job-state-failed": "असफल",
     "job-state-failed": "असफल",
     "job-state-pending": "बाँकी",
     "job-state-pending": "बाँकी",
-    "job-state-running": "चलिरहेको",
-    "last-executed-at": "अन्तिम प्रयोग",
-    "last-result": "अन्तिम परिणाम",
-    "next-execution-at": "अर्को प्रयोग",
-    "schedule": "निर्धारण",
-    "task-id": "काम ID"
+    "job-state-running": "चलिरहेको"
   }
   }
 }
 }

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/pl.json

@@ -6,7 +6,6 @@
     "add-asset": "Dodaj zasób",
     "add-asset": "Dodaj zasób",
     "add-asset-with-count": "Dodaj {count, plural, =0 {assets} one {1 zasób} other {{count} zasobów}}",
     "add-asset-with-count": "Dodaj {count, plural, =0 {assets} one {1 zasób} other {{count} zasobów}}",
     "assets-selected-count": "Zaznaczono { count } zasobów",
     "assets-selected-count": "Zaznaczono { count } zasobów",
-    "change-asset": "Zmień zasób",
     "dimensions": "Wymiary",
     "dimensions": "Wymiary",
     "focal-point": "Punkt centralny",
     "focal-point": "Punkt centralny",
     "notify-create-assets-success": "Utworzono {count, plural, one {nowy zasób} other {{count} nowych zasobów}}",
     "notify-create-assets-success": "Utworzono {count, plural, one {nowy zasób} other {{count} nowych zasobów}}",
@@ -17,7 +16,6 @@
     "select-assets": "Wybierz zasoby",
     "select-assets": "Wybierz zasoby",
     "set-as-featured-asset": "Ustaw jako polecany",
     "set-as-featured-asset": "Ustaw jako polecany",
     "set-focal-point": "Ustaw punk centralny",
     "set-focal-point": "Ustaw punk centralny",
-    "size": "Rozmiar",
     "source-file": "Plik źródłowy",
     "source-file": "Plik źródłowy",
     "unset-focal-point": "Usuń punkt centralny",
     "unset-focal-point": "Usuń punkt centralny",
     "update-focal-point": "Zaktualizuj punkt centralny",
     "update-focal-point": "Zaktualizuj punkt centralny",
@@ -47,7 +45,6 @@
     "profile": "Profil",
     "profile": "Profil",
     "promotions": "Promocje",
     "promotions": "Promocje",
     "roles": "Role",
     "roles": "Role",
-    "scheduled-tasks": "Zadania planowane",
     "seller-orders": "Zamówienia sprzedawcy",
     "seller-orders": "Zamówienia sprzedawcy",
     "sellers": "Sprzedawcy",
     "sellers": "Sprzedawcy",
     "shipping-methods": "Metody wysyłki",
     "shipping-methods": "Metody wysyłki",
@@ -240,15 +237,13 @@
     "delete": "Usuń",
     "delete": "Usuń",
     "description": "Opis",
     "description": "Opis",
     "details": "Szczegóły",
     "details": "Szczegóły",
-    "disable": "Wyłącz",
     "disabled": "Wyłączony",
     "disabled": "Wyłączony",
     "discard-changes": "Odrzuć zmiany",
     "discard-changes": "Odrzuć zmiany",
     "duplicate": "Zduplikować",
     "duplicate": "Zduplikować",
     "edit": "Edytuj",
     "edit": "Edytuj",
     "edit-field": "Edytuj pole",
     "edit-field": "Edytuj pole",
     "edit-note": "Edytuj notatkę",
     "edit-note": "Edytuj notatkę",
-    "enable": "Włącz",
-    "enabled": "Włączony",
+    "enabled": "Aktywny",
     "end-date": "Data zakończenia",
     "end-date": "Data zakończenia",
     "expand-entries": "Rozwiń wpisy",
     "expand-entries": "Rozwiń wpisy",
     "extension-running-in-separate-window": "Rozszerzenie jest włączone w innym oknie",
     "extension-running-in-separate-window": "Rozszerzenie jest włączone w innym oknie",
@@ -279,7 +274,7 @@
     "name": "Nazwa",
     "name": "Nazwa",
     "no-alerts": "Brak alertów",
     "no-alerts": "Brak alertów",
     "no-bulk-actions-available": "Brak dostępnych akcji zbiorowych",
     "no-bulk-actions-available": "Brak dostępnych akcji zbiorowych",
-    "no-channel-selected": "Brak wybranego kanału",
+    "no-channel-selected": "",
     "no-results": "Brak wyników",
     "no-results": "Brak wyników",
     "not-applicable": "Nie dotyczy",
     "not-applicable": "Nie dotyczy",
     "not-set": "Nie ustawione",
     "not-set": "Nie ustawione",
@@ -480,7 +475,6 @@
     "year": "rok"
     "year": "rok"
   },
   },
   "editor": {
   "editor": {
-    "height": "Wysokość",
     "image-alt": "Opis (alt)",
     "image-alt": "Opis (alt)",
     "image-src": "Źródło",
     "image-src": "Źródło",
     "image-title": "Tytuł",
     "image-title": "Tytuł",
@@ -489,8 +483,7 @@
     "link-target": "Otwórz w nowym oknie",
     "link-target": "Otwórz w nowym oknie",
     "link-title": "Tytuł linku",
     "link-title": "Tytuł linku",
     "remove-link": "Usuń",
     "remove-link": "Usuń",
-    "set-link": "Ustaw link",
-    "width": "Szerokość"
+    "set-link": "Ustaw link"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Brak autoryzacji dla \"{ path }\". Brak uprawnień lub wygasła sesja.",
     "403-forbidden": "Brak autoryzacji dla \"{ path }\". Brak uprawnień lub wygasła sesja.",
@@ -535,7 +528,6 @@
     "promotions": "Promocje",
     "promotions": "Promocje",
     "roles": "Role",
     "roles": "Role",
     "sales": "Sprzedaż",
     "sales": "Sprzedaż",
-    "scheduled-tasks": "Zadania planowane",
     "sellers": "Sprzedawcy",
     "sellers": "Sprzedawcy",
     "settings": "Ustawienia",
     "settings": "Ustawienia",
     "shipping-methods": "Metody wysyłki",
     "shipping-methods": "Metody wysyłki",
@@ -817,11 +809,6 @@
     "job-state-completed": "Ukończono",
     "job-state-completed": "Ukończono",
     "job-state-failed": "Nie powiodło się",
     "job-state-failed": "Nie powiodło się",
     "job-state-pending": "Oczekujące",
     "job-state-pending": "Oczekujące",
-    "job-state-running": "Uruchomione",
-    "last-executed-at": "Ostatnio wykonano",
-    "last-result": "Ostatni wynik",
-    "next-execution-at": "Następne wykonanie",
-    "schedule": "Harmonogram",
-    "task-id": "ID zadania"
+    "job-state-running": "Uruchomione"
   }
   }
 }
 }

+ 2 - 15
packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json

@@ -6,7 +6,6 @@
     "add-asset": "Adicionar imagens",
     "add-asset": "Adicionar imagens",
     "add-asset-with-count": "Adiciona {count, plural, =0 {assets} one {1 asset} other {{count} assets}}",
     "add-asset-with-count": "Adiciona {count, plural, =0 {assets} one {1 asset} other {{count} assets}}",
     "assets-selected-count": "{ count } imagens selecionadas",
     "assets-selected-count": "{ count } imagens selecionadas",
-    "change-asset": "Alterar imagem",
     "dimensions": "Dimensões",
     "dimensions": "Dimensões",
     "focal-point": "Ponto central",
     "focal-point": "Ponto central",
     "notify-create-assets-success": "Criado {count, plural, one {new Asset} other {{count} new Assets}}",
     "notify-create-assets-success": "Criado {count, plural, one {new Asset} other {{count} new Assets}}",
@@ -17,7 +16,6 @@
     "select-assets": "Selecione imagens",
     "select-assets": "Selecione imagens",
     "set-as-featured-asset": "Definir como imagem em destaque",
     "set-as-featured-asset": "Definir como imagem em destaque",
     "set-focal-point": "Definir ponto central",
     "set-focal-point": "Definir ponto central",
-    "size": "Tamanho",
     "source-file": "Arquivo fonte",
     "source-file": "Arquivo fonte",
     "unset-focal-point": "Desativar",
     "unset-focal-point": "Desativar",
     "update-focal-point": "Atualizar ponto central",
     "update-focal-point": "Atualizar ponto central",
@@ -47,7 +45,6 @@
     "profile": "Perfil",
     "profile": "Perfil",
     "promotions": "Promoções",
     "promotions": "Promoções",
     "roles": "Regras",
     "roles": "Regras",
-    "scheduled-tasks": "Tarefas agendadas",
     "seller-orders": "Pedidos do vendedor",
     "seller-orders": "Pedidos do vendedor",
     "sellers": "Vendedores",
     "sellers": "Vendedores",
     "shipping-methods": "Métodos de envio",
     "shipping-methods": "Métodos de envio",
@@ -240,14 +237,12 @@
     "delete": "Excluir",
     "delete": "Excluir",
     "description": "Descrição",
     "description": "Descrição",
     "details": "Detalhes",
     "details": "Detalhes",
-    "disable": "Desabilitar",
     "disabled": "Desabilitado",
     "disabled": "Desabilitado",
     "discard-changes": "Descartar modificações",
     "discard-changes": "Descartar modificações",
     "duplicate": "Duplicar",
     "duplicate": "Duplicar",
     "edit": "Editar",
     "edit": "Editar",
     "edit-field": "Editar campo",
     "edit-field": "Editar campo",
     "edit-note": "Editar nota",
     "edit-note": "Editar nota",
-    "enable": "Habilitar",
     "enabled": "Habilitado",
     "enabled": "Habilitado",
     "end-date": "Data de encerramento",
     "end-date": "Data de encerramento",
     "expand-entries": "Expandir entradas",
     "expand-entries": "Expandir entradas",
@@ -480,7 +475,6 @@
     "year": "ano"
     "year": "ano"
   },
   },
   "editor": {
   "editor": {
-    "height": "Altura",
     "image-alt": "Descrição (alt)",
     "image-alt": "Descrição (alt)",
     "image-src": "Código",
     "image-src": "Código",
     "image-title": "Título",
     "image-title": "Título",
@@ -489,8 +483,7 @@
     "link-target": "Escolha onde abrir o link:",
     "link-target": "Escolha onde abrir o link:",
     "link-title": "Título do link",
     "link-title": "Título do link",
     "remove-link": "Remover",
     "remove-link": "Remover",
-    "set-link": "Definir link",
-    "width": "Largura"
+    "set-link": "Definir link"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "No momento, você não está autorizado a acessar \"{ path }\". Você não tem permissão ou sua sessão expirou.",
     "403-forbidden": "No momento, você não está autorizado a acessar \"{ path }\". Você não tem permissão ou sua sessão expirou.",
@@ -535,7 +528,6 @@
     "promotions": "Promoções",
     "promotions": "Promoções",
     "roles": "Regras de permissão",
     "roles": "Regras de permissão",
     "sales": "Vendas",
     "sales": "Vendas",
-    "scheduled-tasks": "Tarefas agendadas",
     "sellers": "Vendedores",
     "sellers": "Vendedores",
     "settings": "Configurações",
     "settings": "Configurações",
     "shipping-methods": "Métodos de envio",
     "shipping-methods": "Métodos de envio",
@@ -817,11 +809,6 @@
     "job-state-completed": "Concluído",
     "job-state-completed": "Concluído",
     "job-state-failed": "Falhou",
     "job-state-failed": "Falhou",
     "job-state-pending": "Pendente",
     "job-state-pending": "Pendente",
-    "job-state-running": "Em execução",
-    "last-executed-at": "Última execução",
-    "last-result": "Último resultado",
-    "next-execution-at": "Próxima execução",
-    "schedule": "Agendamento",
-    "task-id": "ID da tarefa"
+    "job-state-running": "Em execução"
   }
   }
 }
 }

+ 5 - 17
packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json

@@ -5,8 +5,8 @@
   "asset": {
   "asset": {
     "add-asset": "Adicionar imagens",
     "add-asset": "Adicionar imagens",
     "add-asset-with-count": "Adiciona {count, plural, =0 {assets} one {1 asset} other {{count} assets}}",
     "add-asset-with-count": "Adiciona {count, plural, =0 {assets} one {1 asset} other {{count} assets}}",
-    "assets-selected-count": "{ count } imagens selecionadas",
     "change-asset": "Mudar imagem",
     "change-asset": "Mudar imagem",
+    "assets-selected-count": "{ count } imagens selecionadas",
     "dimensions": "Dimensões",
     "dimensions": "Dimensões",
     "focal-point": "Ponto central",
     "focal-point": "Ponto central",
     "notify-create-assets-success": "Criado {count, plural, one {new Asset} other {{count} new Assets}}",
     "notify-create-assets-success": "Criado {count, plural, one {new Asset} other {{count} new Assets}}",
@@ -17,7 +17,6 @@
     "select-assets": "Seleccione as imagens",
     "select-assets": "Seleccione as imagens",
     "set-as-featured-asset": "Definir como imagem em destaque",
     "set-as-featured-asset": "Definir como imagem em destaque",
     "set-focal-point": "Definir ponto central",
     "set-focal-point": "Definir ponto central",
-    "size": "Tamanho",
     "source-file": "Ficheiro original",
     "source-file": "Ficheiro original",
     "unset-focal-point": "Desactivar",
     "unset-focal-point": "Desactivar",
     "update-focal-point": "Actualizar ponto central",
     "update-focal-point": "Actualizar ponto central",
@@ -47,7 +46,6 @@
     "profile": "Perfil",
     "profile": "Perfil",
     "promotions": "Promoções",
     "promotions": "Promoções",
     "roles": "Regras",
     "roles": "Regras",
-    "scheduled-tasks": "Tarefas agendadas",
     "seller-orders": "Encomendas de vendedores",
     "seller-orders": "Encomendas de vendedores",
     "sellers": "Vendedores",
     "sellers": "Vendedores",
     "shipping-methods": "Métodos de envio",
     "shipping-methods": "Métodos de envio",
@@ -240,15 +238,13 @@
     "delete": "Eliminar",
     "delete": "Eliminar",
     "description": "Descrição",
     "description": "Descrição",
     "details": "Detalhes",
     "details": "Detalhes",
-    "disable": "Desativar",
-    "disabled": "Inativo",
+    "disabled": "Inactivo",
     "discard-changes": "Descartar modificações",
     "discard-changes": "Descartar modificações",
     "duplicate": "Duplicar",
     "duplicate": "Duplicar",
     "edit": "Editar",
     "edit": "Editar",
     "edit-field": "Editar campo",
     "edit-field": "Editar campo",
     "edit-note": "Editar nota",
     "edit-note": "Editar nota",
-    "enable": "Ativar",
-    "enabled": "Ativo",
+    "enabled": "Activo",
     "end-date": "Data de fim",
     "end-date": "Data de fim",
     "expand-entries": "Expandir entradas",
     "expand-entries": "Expandir entradas",
     "extension-running-in-separate-window": "A extensão está a ser executada em uma janela separada",
     "extension-running-in-separate-window": "A extensão está a ser executada em uma janela separada",
@@ -480,7 +476,6 @@
     "year": "ano"
     "year": "ano"
   },
   },
   "editor": {
   "editor": {
-    "height": "Altura",
     "image-alt": "Descrição (alt)",
     "image-alt": "Descrição (alt)",
     "image-src": "Código",
     "image-src": "Código",
     "image-title": "Título",
     "image-title": "Título",
@@ -489,8 +484,7 @@
     "link-target": "Escolha onde abrir o link",
     "link-target": "Escolha onde abrir o link",
     "link-title": "Título do link",
     "link-title": "Título do link",
     "remove-link": "Remover",
     "remove-link": "Remover",
-    "set-link": "Atribuir link",
-    "width": "Largura"
+    "set-link": "Atribuir link"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "No momento, você não está autorizado a aceder \"{ path }\". Você não tem permissão ou a sua sessão expirou.",
     "403-forbidden": "No momento, você não está autorizado a aceder \"{ path }\". Você não tem permissão ou a sua sessão expirou.",
@@ -535,7 +529,6 @@
     "promotions": "Promoções",
     "promotions": "Promoções",
     "roles": "Gerir permissões",
     "roles": "Gerir permissões",
     "sales": "Vendas",
     "sales": "Vendas",
-    "scheduled-tasks": "Tarefas agendadas",
     "sellers": "Vendedores",
     "sellers": "Vendedores",
     "settings": "Configurações",
     "settings": "Configurações",
     "shipping-methods": "Métodos de envio",
     "shipping-methods": "Métodos de envio",
@@ -817,11 +810,6 @@
     "job-state-completed": "Concluído",
     "job-state-completed": "Concluído",
     "job-state-failed": "Falhou",
     "job-state-failed": "Falhou",
     "job-state-pending": "Pendente",
     "job-state-pending": "Pendente",
-    "job-state-running": "Em execução",
-    "last-executed-at": "Última execução",
-    "last-result": "Último resultado",
-    "next-execution-at": "Próxima execução",
-    "schedule": "Agendamento",
-    "task-id": "ID da tarefa"
+    "job-state-running": "Em execução"
   }
   }
 }
 }

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/ru.json

@@ -6,7 +6,6 @@
     "add-asset": "Добавить медиафайл",
     "add-asset": "Добавить медиафайл",
     "add-asset-with-count": "Добавить {count, plural, =0 {медиафайлов} one {1 медиафайл} other {{count} медиафайлов}}",
     "add-asset-with-count": "Добавить {count, plural, =0 {медиафайлов} one {1 медиафайл} other {{count} медиафайлов}}",
     "assets-selected-count": "Выбрано { count } медиафайлов",
     "assets-selected-count": "Выбрано { count } медиафайлов",
-    "change-asset": "Изменить медиафайл",
     "dimensions": "Размеры",
     "dimensions": "Размеры",
     "focal-point": "Точка фокуса",
     "focal-point": "Точка фокуса",
     "notify-create-assets-success": "Создано {count, plural, one {1 новый медиафайл} other {{count} новых медиафайлов}}",
     "notify-create-assets-success": "Создано {count, plural, one {1 новый медиафайл} other {{count} новых медиафайлов}}",
@@ -17,7 +16,6 @@
     "select-assets": "Выбрать медиафайлы",
     "select-assets": "Выбрать медиафайлы",
     "set-as-featured-asset": "Установить как основной медиафайл",
     "set-as-featured-asset": "Установить как основной медиафайл",
     "set-focal-point": "Установить точку фокуса",
     "set-focal-point": "Установить точку фокуса",
-    "size": "Размер",
     "source-file": "Исходный файл",
     "source-file": "Исходный файл",
     "unset-focal-point": "Удалить точку фокуса",
     "unset-focal-point": "Удалить точку фокуса",
     "update-focal-point": "Обновить точку фокуса",
     "update-focal-point": "Обновить точку фокуса",
@@ -47,7 +45,6 @@
     "profile": "Профиль",
     "profile": "Профиль",
     "promotions": "Акции",
     "promotions": "Акции",
     "roles": "Роли",
     "roles": "Роли",
-    "scheduled-tasks": "Задачи",
     "seller-orders": "Заказы продавца",
     "seller-orders": "Заказы продавца",
     "sellers": "Продавцы",
     "sellers": "Продавцы",
     "shipping-methods": "Способы доставки",
     "shipping-methods": "Способы доставки",
@@ -240,14 +237,12 @@
     "delete": "Удалить",
     "delete": "Удалить",
     "description": "Описание",
     "description": "Описание",
     "details": "Детали",
     "details": "Детали",
-    "disable": "Выключить",
     "disabled": "Выключен",
     "disabled": "Выключен",
     "discard-changes": "Отменить изменения",
     "discard-changes": "Отменить изменения",
     "duplicate": "Дублировать",
     "duplicate": "Дублировать",
     "edit": "Редактировать",
     "edit": "Редактировать",
     "edit-field": "Редактировать поле",
     "edit-field": "Редактировать поле",
     "edit-note": "Редактировать заметку",
     "edit-note": "Редактировать заметку",
-    "enable": "Включить",
     "enabled": "Включен",
     "enabled": "Включен",
     "end-date": "Дата окончания",
     "end-date": "Дата окончания",
     "expand-entries": "Развернуть записи",
     "expand-entries": "Развернуть записи",
@@ -279,7 +274,7 @@
     "name": "Имя",
     "name": "Имя",
     "no-alerts": "Нет уведомлений",
     "no-alerts": "Нет уведомлений",
     "no-bulk-actions-available": "Нет доступных массовых действий",
     "no-bulk-actions-available": "Нет доступных массовых действий",
-    "no-channel-selected": "Не выбран канал",
+    "no-channel-selected": "",
     "no-results": "Нет результатов",
     "no-results": "Нет результатов",
     "not-applicable": "Непригодный",
     "not-applicable": "Непригодный",
     "not-set": "Не задано",
     "not-set": "Не задано",
@@ -480,7 +475,6 @@
     "year": "год"
     "year": "год"
   },
   },
   "editor": {
   "editor": {
-    "height": "Высота",
     "image-alt": "Описание (alt)",
     "image-alt": "Описание (alt)",
     "image-src": "Источник",
     "image-src": "Источник",
     "image-title": "Заголовок",
     "image-title": "Заголовок",
@@ -489,8 +483,7 @@
     "link-target": "Целевая ссылка",
     "link-target": "Целевая ссылка",
     "link-title": "Заголовок ссылки",
     "link-title": "Заголовок ссылки",
     "remove-link": "Удалять",
     "remove-link": "Удалять",
-    "set-link": "Установить ссылку",
-    "width": "Ширина"
+    "set-link": "Установить ссылку"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "В настоящее время у вас нет прав доступа \"{ path }\". Либо у вас нет разрешений на просмотр, либо срок вашего сеанса истек.",
     "403-forbidden": "В настоящее время у вас нет прав доступа \"{ path }\". Либо у вас нет разрешений на просмотр, либо срок вашего сеанса истек.",
@@ -535,7 +528,6 @@
     "promotions": "Промо-акции",
     "promotions": "Промо-акции",
     "roles": "Роли",
     "roles": "Роли",
     "sales": "Продажи",
     "sales": "Продажи",
-    "scheduled-tasks": "Задачи",
     "sellers": "Продавцы",
     "sellers": "Продавцы",
     "settings": "Настройки",
     "settings": "Настройки",
     "shipping-methods": "Способы доставки",
     "shipping-methods": "Способы доставки",
@@ -683,7 +675,7 @@
     "set-billing-address": "Установить платёжный адрес",
     "set-billing-address": "Установить платёжный адрес",
     "set-coupon-codes": "Применить код купона",
     "set-coupon-codes": "Применить код купона",
     "set-customer-for-order": "Выбрать клиента для заказа",
     "set-customer-for-order": "Выбрать клиента для заказа",
-    "set-customer-success": "Клиент успешно установлен",
+    "set-customer-success": "",
     "set-fulfillment-state": "Отметить как {state}",
     "set-fulfillment-state": "Отметить как {state}",
     "set-shipping-address": "Установить адрес доставки",
     "set-shipping-address": "Установить адрес доставки",
     "set-shipping-method": "Установить метод доставки",
     "set-shipping-method": "Установить метод доставки",
@@ -817,11 +809,6 @@
     "job-state-completed": "Завершено",
     "job-state-completed": "Завершено",
     "job-state-failed": "Не удалось",
     "job-state-failed": "Не удалось",
     "job-state-pending": "В ожидании",
     "job-state-pending": "В ожидании",
-    "job-state-running": "Выполняется",
-    "last-executed-at": "Последнее выполнение",
-    "last-result": "Последний результат",
-    "next-execution-at": "Следующее выполнение",
-    "schedule": "Расписание",
-    "task-id": "ID задачи"
+    "job-state-running": "Выполняется"
   }
   }
 }
 }

+ 11 - 31
packages/admin-ui/src/lib/static/i18n-messages/sv.json

@@ -2,11 +2,10 @@
   "admin": {
   "admin": {
     "create-new-administrator": "Lägg till ny administratör"
     "create-new-administrator": "Lägg till ny administratör"
   },
   },
-  "asset": {
+ "asset": {
     "add-asset": "Lägg till",
     "add-asset": "Lägg till",
     "add-asset-with-count": "Lägg till {count, plural, =0 {fil} one {1 fil} other {{count} filer}}",
     "add-asset-with-count": "Lägg till {count, plural, =0 {fil} one {1 fil} other {{count} filer}}",
     "assets-selected-count": "{count} filer valda",
     "assets-selected-count": "{count} filer valda",
-    "change-asset": "Ändra fil",
     "dimensions": "Dimensioner",
     "dimensions": "Dimensioner",
     "focal-point": "Fokuspunkt",
     "focal-point": "Fokuspunkt",
     "notify-create-assets-success": "La till {count, plural, one {ny fil} other {{count} nya filer}}",
     "notify-create-assets-success": "La till {count, plural, one {ny fil} other {{count} nya filer}}",
@@ -17,7 +16,6 @@
     "select-assets": "Välj filer",
     "select-assets": "Välj filer",
     "set-as-featured-asset": "Ange som utvald fil",
     "set-as-featured-asset": "Ange som utvald fil",
     "set-focal-point": "Ange fokuspunkt",
     "set-focal-point": "Ange fokuspunkt",
-    "size": "Storlek",
     "source-file": "Källfil",
     "source-file": "Källfil",
     "unset-focal-point": "Återställ",
     "unset-focal-point": "Återställ",
     "update-focal-point": "Uppdatera fokuspunkt",
     "update-focal-point": "Uppdatera fokuspunkt",
@@ -39,7 +37,7 @@
     "global-settings": "Globala inställningar",
     "global-settings": "Globala inställningar",
     "job-queue": "Kö",
     "job-queue": "Kö",
     "manage-variants": "Hantera varianter",
     "manage-variants": "Hantera varianter",
-    "modifying-order": "",
+    "modifying": "Modifierar",
     "orders": "Ordrar",
     "orders": "Ordrar",
     "payment-methods": "Betalningsmetoder",
     "payment-methods": "Betalningsmetoder",
     "product-options": "Produktalternativ",
     "product-options": "Produktalternativ",
@@ -47,7 +45,6 @@
     "profile": "Profil",
     "profile": "Profil",
     "promotions": "Kampanjer",
     "promotions": "Kampanjer",
     "roles": "Roller",
     "roles": "Roller",
-    "scheduled-tasks": "Schemalagda uppgifter",
     "seller-orders": "Säljarordrar",
     "seller-orders": "Säljarordrar",
     "sellers": "Säljare",
     "sellers": "Säljare",
     "shipping-methods": "Fraktmetoder",
     "shipping-methods": "Fraktmetoder",
@@ -69,6 +66,7 @@
     "assets": "Filer",
     "assets": "Filer",
     "assign-product-to-channel-success": "Lyckades tilldela {count, plural, one {1 produkt} other {{count} produkter}} till { channel }",
     "assign-product-to-channel-success": "Lyckades tilldela {count, plural, one {1 produkt} other {{count} produkter}} till { channel }",
     "assign-products-to-channel": "Tilldela produkter till kanal",
     "assign-products-to-channel": "Tilldela produkter till kanal",
+    "assign-to-channel": "Tilldela till kanal",
     "assign-to-named-channel": "Tilldela till { channelCode }",
     "assign-to-named-channel": "Tilldela till { channelCode }",
     "assign-variant-to-channel-success": "Lyckades tilldela {count, plural, one {1 produktvariant} other {{count} produktvarianter}} till { channel }",
     "assign-variant-to-channel-success": "Lyckades tilldela {count, plural, one {1 produktvariant} other {{count} produktvarianter}} till { channel }",
     "assign-variants-to-channel": "Tilldela produktvarianter till kanal",
     "assign-variants-to-channel": "Tilldela produktvarianter till kanal",
@@ -93,7 +91,6 @@
     "confirm-deletion-of-unused-variants-body": "Följande produktvarianter har blivit överflödiga på grund av tillägg av nya alternativ. De kommer att raderas vid skapandet av nya produktvarianter.",
     "confirm-deletion-of-unused-variants-body": "Följande produktvarianter har blivit överflödiga på grund av tillägg av nya alternativ. De kommer att raderas vid skapandet av nya produktvarianter.",
     "confirm-deletion-of-unused-variants-title": "Radera överflödiga produktvarianter?",
     "confirm-deletion-of-unused-variants-title": "Radera överflödiga produktvarianter?",
     "create-draft-order": "Lägg till utkast till order",
     "create-draft-order": "Lägg till utkast till order",
-    "create-facet-value": "",
     "create-new-collection": "Lägg till ny samling",
     "create-new-collection": "Lägg till ny samling",
     "create-new-facet": "Lägg till ny etikett",
     "create-new-facet": "Lägg till ny etikett",
     "create-new-product": "Lägg till ny produkt",
     "create-new-product": "Lägg till ny produkt",
@@ -113,6 +110,7 @@
     "facet-values": "Etikettvärden",
     "facet-values": "Etikettvärden",
     "facets": "Etiketter",
     "facets": "Etiketter",
     "filter-by-name": "Filtrera efter namn",
     "filter-by-name": "Filtrera efter namn",
+    "filter-by-sku": "",
     "filter-inheritance": "Filterarv",
     "filter-inheritance": "Filterarv",
     "filters": "Filter",
     "filters": "Filter",
     "inherit-filters-from-parent": "Ärva filter från förälder",
     "inherit-filters-from-parent": "Ärva filter från förälder",
@@ -240,14 +238,12 @@
     "delete": "Radera",
     "delete": "Radera",
     "description": "Beskrivning",
     "description": "Beskrivning",
     "details": "Detaljer",
     "details": "Detaljer",
-    "disable": "Inaktivera",
     "disabled": "Inaktiverad",
     "disabled": "Inaktiverad",
     "discard-changes": "Släng ändringar",
     "discard-changes": "Släng ändringar",
     "duplicate": "Duplicera",
     "duplicate": "Duplicera",
     "edit": "Redigera",
     "edit": "Redigera",
     "edit-field": "Redigera fält",
     "edit-field": "Redigera fält",
     "edit-note": "Redigera anteckning",
     "edit-note": "Redigera anteckning",
-    "enable": "Aktivera",
     "enabled": "Aktiverad",
     "enabled": "Aktiverad",
     "end-date": "Slutdatum",
     "end-date": "Slutdatum",
     "expand-entries": "Expandera poster",
     "expand-entries": "Expandera poster",
@@ -279,7 +275,7 @@
     "name": "Namn",
     "name": "Namn",
     "no-alerts": "Inga aviseringar",
     "no-alerts": "Inga aviseringar",
     "no-bulk-actions-available": "Inga massåtgärder tillgängliga",
     "no-bulk-actions-available": "Inga massåtgärder tillgängliga",
-    "no-channel-selected": "Ingen kanal vald",
+    "no-channel-selected": "",
     "no-results": "Inga resultat",
     "no-results": "Inga resultat",
     "not-applicable": "Ej tillämpligt",
     "not-applicable": "Ej tillämpligt",
     "not-set": "Ej inställt",
     "not-set": "Ej inställt",
@@ -480,7 +476,6 @@
     "year": "år"
     "year": "år"
   },
   },
   "editor": {
   "editor": {
-    "height": "Höjd",
     "image-alt": "Beskrivning (alt-text)",
     "image-alt": "Beskrivning (alt-text)",
     "image-src": "Källa",
     "image-src": "Källa",
     "image-title": "Titel",
     "image-title": "Titel",
@@ -489,12 +484,12 @@
     "link-target": "Länkmål",
     "link-target": "Länkmål",
     "link-title": "Länktitel",
     "link-title": "Länktitel",
     "remove-link": "Ta bort länk",
     "remove-link": "Ta bort länk",
-    "set-link": "Ange länk",
-    "width": "Bredd"
+    "set-link": "Ange länk"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "Du har för närvarande inte behörighet att komma åt \"{ path }\". Antingen saknar du behörighet eller så har din session gått ut.",
     "403-forbidden": "Du har för närvarande inte behörighet att komma åt \"{ path }\". Antingen saknar du behörighet eller så har din session gått ut.",
     "could-not-connect-to-server": "Kunde inte ansluta till Vendure-servern på { url }",
     "could-not-connect-to-server": "Kunde inte ansluta till Vendure-servern på { url }",
+    "facet-value-form-values-do-not-match": "",
     "health-check-failed": "Systemets hälsokontroll misslyckades",
     "health-check-failed": "Systemets hälsokontroll misslyckades",
     "no-default-shipping-zone-set": "Den här kanalen har ingen förvald leveransadress. Detta kan orsaka fel vid beräkning av fraktkostnader för ordrar.",
     "no-default-shipping-zone-set": "Den här kanalen har ingen förvald leveransadress. Detta kan orsaka fel vid beräkning av fraktkostnader för ordrar.",
     "no-default-tax-zone-set": "Den här kanalen har ingen standard-momszon, vilket kommer att orsaka fel vid beräkning av priser. Var god lägg till eller välj en zon."
     "no-default-tax-zone-set": "Den här kanalen har ingen standard-momszon, vilket kommer att orsaka fel vid beräkning av priser. Var god lägg till eller välj en zon."
@@ -535,7 +530,6 @@
     "promotions": "Kampanjer",
     "promotions": "Kampanjer",
     "roles": "Roller",
     "roles": "Roller",
     "sales": "Försäljning",
     "sales": "Försäljning",
-    "scheduled-tasks": "Schemalagda uppgifter",
     "sellers": "Säljare",
     "sellers": "Säljare",
     "settings": "Inställningar",
     "settings": "Inställningar",
     "shipping-methods": "Fraktmetoder",
     "shipping-methods": "Fraktmetoder",
@@ -556,7 +550,6 @@
     "added-items": "Tillagda artiklar",
     "added-items": "Tillagda artiklar",
     "amount": "Belopp",
     "amount": "Belopp",
     "arrange-additional-payment": "Arrangera ytterligare betalning",
     "arrange-additional-payment": "Arrangera ytterligare betalning",
-    "assign-order-to-another-customer": "Tilldela order till en annan kund",
     "billing-address": "Faktureringsadress",
     "billing-address": "Faktureringsadress",
     "cancel": "Avbryt",
     "cancel": "Avbryt",
     "cancel-entire-order": "Avbryt hela ordern",
     "cancel-entire-order": "Avbryt hela ordern",
@@ -569,7 +562,6 @@
     "cancel-selected-items": "Avbryt markerade artiklar",
     "cancel-selected-items": "Avbryt markerade artiklar",
     "cancel-specified-items": "Avbryt angivna artiklar",
     "cancel-specified-items": "Avbryt angivna artiklar",
     "cancellation-reason": "Avbokningsorsak",
     "cancellation-reason": "Avbokningsorsak",
-    "cancelled-order-items-success": "",
     "cancelled-order-success": "Ordern har avbokats",
     "cancelled-order-success": "Ordern har avbokats",
     "complete-draft-order": "Slutför utkast",
     "complete-draft-order": "Slutför utkast",
     "confirm-modifications": "Bekräfta ändringar",
     "confirm-modifications": "Bekräfta ändringar",
@@ -591,7 +583,6 @@
     "fulfillment-method": "Metod",
     "fulfillment-method": "Metod",
     "history-coupon-code-applied": "Rabattkod använd",
     "history-coupon-code-applied": "Rabattkod använd",
     "history-coupon-code-removed": "Rabattkod borttagen",
     "history-coupon-code-removed": "Rabattkod borttagen",
-    "history-customer-updated": "",
     "history-fulfillment-created": "Order godkänd",
     "history-fulfillment-created": "Order godkänd",
     "history-fulfillment-delivered": "Order levererad",
     "history-fulfillment-delivered": "Order levererad",
     "history-fulfillment-shipped": "Leverans skickad",
     "history-fulfillment-shipped": "Leverans skickad",
@@ -620,12 +611,10 @@
     "modification-summary": "Sammanfattning av ändringar",
     "modification-summary": "Sammanfattning av ändringar",
     "modification-updating-billing-address": "Uppdaterar faktureringsadress",
     "modification-updating-billing-address": "Uppdaterar faktureringsadress",
     "modification-updating-shipping-address": "Uppdaterar leveransadress",
     "modification-updating-shipping-address": "Uppdaterar leveransadress",
-    "modified-items": "Ändrade objekt",
+    "modifications": "",
     "modify-order": "Ändra order",
     "modify-order": "Ändra order",
     "modify-order-price-difference": "Prisskillnad",
     "modify-order-price-difference": "Prisskillnad",
     "net-price": "Nettopris",
     "net-price": "Nettopris",
-    "new-customer": "Ny kund",
-    "no-modifications-made": "Inga ändringar gjorda",
     "note": "Anteckning",
     "note": "Anteckning",
     "note-is-private": "Anteckning är privat",
     "note-is-private": "Anteckning är privat",
     "note-only-visible-to-administrators": "Synlig endast för administratörer",
     "note-only-visible-to-administrators": "Synlig endast för administratörer",
@@ -645,17 +634,17 @@
     "payment-metadata": "Betalningsmetadata",
     "payment-metadata": "Betalningsmetadata",
     "payment-method": "Betalningsmetod",
     "payment-method": "Betalningsmetod",
     "payment-state": "Status",
     "payment-state": "Status",
+    "payment-to-refund": "",
     "payments": "Betalningar",
     "payments": "Betalningar",
     "placed-at": "Lagd den",
     "placed-at": "Lagd den",
     "preview-changes": "Förhandsgranska ändringar",
     "preview-changes": "Förhandsgranska ändringar",
-    "previous-customer": "Tidigare kund",
     "product-name": "Produktnamn",
     "product-name": "Produktnamn",
     "product-sku": "SKU",
     "product-sku": "SKU",
     "promotions-applied": "Tillämpade kampanjer",
     "promotions-applied": "Tillämpade kampanjer",
     "prorated-unit-price": "Andelat enhetspris",
     "prorated-unit-price": "Andelat enhetspris",
     "quantity": "Kvantitet",
     "quantity": "Kvantitet",
     "refund": "Återbetalning",
     "refund": "Återbetalning",
-    "refund-amount": "Återbetalningsbelopp",
+    "refund-adjustment": "",
     "refund-and-cancel-order": "Återbetalning & avbryt order",
     "refund-and-cancel-order": "Återbetalning & avbryt order",
     "refund-cancellation-reason": "Orsak till återbetalning/avbokning",
     "refund-cancellation-reason": "Orsak till återbetalning/avbokning",
     "refund-cancellation-reason-required": "Orsak till återbetalning/avbokning krävs",
     "refund-cancellation-reason-required": "Orsak till återbetalning/avbokning krävs",
@@ -666,15 +655,12 @@
     "refund-reason-customer-request": "Kundförfrågan",
     "refund-reason-customer-request": "Kundförfrågan",
     "refund-reason-not-available": "Inte tillgänglig",
     "refund-reason-not-available": "Inte tillgänglig",
     "refund-shipping": "Återbetala frakt",
     "refund-shipping": "Återbetala frakt",
-    "refund-this-payment": "Återbetala denna betalning",
     "refund-total": "Total återbetalning",
     "refund-total": "Total återbetalning",
     "refund-total-error": "Total återbetalning måste vara mellan {min} och {max}",
     "refund-total-error": "Total återbetalning måste vara mellan {min} och {max}",
     "refund-total-warning": "Total återbetalning överstiger det valda betalningsbeloppet. Återstående återbetalningsbelopp kommer att återbetalas från andra betalningar.",
     "refund-total-warning": "Total återbetalning överstiger det valda betalningsbeloppet. Återstående återbetalningsbelopp kommer att återbetalas från andra betalningar.",
     "refund-with-amount": "Återbetala {belopp}",
     "refund-with-amount": "Återbetala {belopp}",
-    "refundable-amount": "Återbetalningsbar belopp",
     "refunded-count": "{count} {count, plural, one {återbetalat objekt} other {återbetalade objekt}}",
     "refunded-count": "{count} {count, plural, one {återbetalat objekt} other {återbetalade objekt}}",
     "removed-items": "Borttagna objekt",
     "removed-items": "Borttagna objekt",
-    "return-to-stock": "Återlämna till lager",
     "search-by-order-filters": "Sök efter namn / kod / transaktions-ID",
     "search-by-order-filters": "Sök efter namn / kod / transaktions-ID",
     "select-address": "Välj adress",
     "select-address": "Välj adress",
     "select-shipping-method": "Välj leveranssätt",
     "select-shipping-method": "Välj leveranssätt",
@@ -683,7 +669,6 @@
     "set-billing-address": "Ange faktureringsadress",
     "set-billing-address": "Ange faktureringsadress",
     "set-coupon-codes": "Ange kupongkoder",
     "set-coupon-codes": "Ange kupongkoder",
     "set-customer-for-order": "Ange kund",
     "set-customer-for-order": "Ange kund",
-    "set-customer-success": "Kunden har satts",
     "set-fulfillment-state": "Markera som {state}",
     "set-fulfillment-state": "Markera som {state}",
     "set-shipping-address": "Ange leveransadress",
     "set-shipping-address": "Ange leveransadress",
     "set-shipping-method": "Ange leveranssätt",
     "set-shipping-method": "Ange leveranssätt",
@@ -817,11 +802,6 @@
     "job-state-completed": "Slutfört",
     "job-state-completed": "Slutfört",
     "job-state-failed": "Misslyckat",
     "job-state-failed": "Misslyckat",
     "job-state-pending": "Väntande",
     "job-state-pending": "Väntande",
-    "job-state-running": "Pågående",
-    "last-executed-at": "Senast körd",
-    "last-result": "Senaste resultat",
-    "next-execution-at": "Nästa körning",
-    "schedule": "Schema",
-    "task-id": "Jobb-ID"
+    "job-state-running": "Pågående"
   }
   }
 }
 }

+ 813 - 826
packages/admin-ui/src/lib/static/i18n-messages/tr.json

@@ -1,827 +1,814 @@
 {
 {
-  "admin": {
-    "create-new-administrator": "Yeni yönetici oluştur"
-  },
-  "asset": {
-    "add-asset": "Dosya ekle",
-    "add-asset-with-count": "{count, plural, =0 {dosya} one {bir dosya} other {{count} dosya}} ekle",
-    "assets-selected-count": "{ count } kaynak seçildi",
-    "change-asset": "Dosyayı değiştir",
-    "dimensions": "Boyutlar",
-    "focal-point": "Odak noktası",
-    "notify-create-assets-success": "{count, plural, one {yeni bir dosya} other {{count} yeni dosya}} oluşturuldu",
-    "original-asset-size": "Orijinal boyut",
-    "preview": "Önizleme",
-    "remove-asset": "Dosyayı kaldır",
-    "select-asset": "Bir dosya seç",
-    "select-assets": "Dosyaları seç",
-    "set-as-featured-asset": "Öne çıkan dosya olarak ayarla",
-    "set-focal-point": "Odak noktasını ayarla",
-    "size": "Boyut",
-    "source-file": "Kaynak dosya",
-    "unset-focal-point": "Kaldır",
-    "update-focal-point": "Noktayı güncelle",
-    "update-focal-point-error": "Nokta güncellenemedi",
-    "update-focal-point-success": "Odak noktası güncellendi",
-    "upload-assets": "Kaynakları yükle",
-    "uploading": "Yükleniyor..."
-  },
-  "breadcrumb": {
-    "administrators": "Yöneticiler",
-    "assets": "Dosyalar",
-    "channels": "Kanallar",
-    "collections": "Koleksiyonlar",
-    "countries": "Ülkeler",
-    "customer-groups": "Müşteri Grupları",
-    "customers": "Müşteriler",
-    "dashboard": "Gösterge Paneli",
-    "facets": "Bileşenler",
-    "global-settings": "Genel Ayarlar",
-    "job-queue": "İş Kuyruğu",
-    "manage-variants": "Varyantları Yönet",
-    "modifying-order": "Siparişi Düzenleme",
-    "orders": "Siparişler",
-    "payment-methods": "Ödeme Yöntemleri",
-    "product-options": "Ürün Seçenekleri",
-    "products": "Ürünler",
-    "profile": "Profil",
-    "promotions": "Promosyonlar",
-    "roles": "Roller",
-    "scheduled-tasks": "Planlanmış Görevler",
-    "seller-orders": "Satıcı Siparişleri",
-    "sellers": "Satıcılar",
-    "shipping-methods": "Nakliye Yöntemleri",
-    "stock-locations": "Stok Konumları",
-    "system-status": "Sistem Durumu",
-    "tax-categories": "Vergi Kategorileri",
-    "tax-rates": "Vergi Oranları",
-    "zones": "Bölgeler"
-  },
-  "catalog": {
-    "add-facet-value": "Faset değeri ekle",
-    "add-facets": "Faset ekle",
-    "add-option": "Seçenek ekle",
-    "add-price-in-another-currency": "Başka bir para biriminde fiyat ekle",
-    "add-stock-location": "Stok konumu ekle",
-    "add-stock-to-location": "Konuma stok ekle",
-    "asset": "Varlık",
-    "asset-preview-links": "Varlık önizleme bağlantıları",
-    "assets": "Varlıklar",
-    "assign-product-to-channel-success": "Ürün \"{ channel }\" kanalına atandı",
-    "assign-products-to-channel": "Ürünleri kanala ata",
-    "assign-to-named-channel": "{ channelCode } kanalına ata",
-    "assign-variant-to-channel-success": "Ürün varyantı \"{ channel }\" kanalına atandı",
-    "assign-variants-to-channel": "Ürün varyantını kanala ata",
-    "auto-update-option-variant-name": "Bu seçeneği kullanarak ürün varyant adlarını otomatik güncelle",
-    "auto-update-product-variant-name": "Ürün varyant adlarını otomatik güncelle",
-    "calculated-price": "Hesaplanan fiyat",
-    "calculated-price-tooltip": "Yukarıda belirtilen fiyatı değiştiren özel bir fiyat hesaplaması yapılandırıldı:",
-    "cannot-create-variants-without-options": "Seçenekler olmadan varyant oluşturulamaz",
-    "channel-price-preview": "Kanal fiyatı önizlemesi",
-    "collection": "Koleksiyon",
-    "collection-contents": "Koleksiyon İçeriği",
-    "collections": "Koleksiyonlar",
-    "confirm-bulk-delete-products": "Toplu ürün silme işlemini onayla?",
-    "confirm-cancel": "İptali onayla?",
-    "confirm-delete-assets": "{count} {count, plural, one {dosya} other {dosya}} silinsin mi?",
-    "confirm-delete-facet-value": "Faset değeri silinsin mi?",
-    "confirm-delete-product": "Ürün silinsin mi?",
-    "confirm-delete-product-option": "\"{name}\" seçeneği silinsin mi?",
-    "confirm-delete-product-option-group": "\"{name}\" seçenek grubu silinsin mi?",
-    "confirm-delete-product-option-group-body": "Bu seçenek grubu {count} {count, plural, one {varyant} other {varyant}} tarafından kullanılıyor. Silmek istediğinize emin misiniz?",
-    "confirm-delete-product-variant": "\"{name}\" ürün varyantı silinsin mi?",
-    "confirm-deletion-of-unused-variants-body": "Yeni seçeneklerin eklenmesi nedeniyle aşağıdaki ürün varyantları kullanılmaz hale geldi. Yeni ürün varyantları oluşturulurken silinecekler.",
-    "confirm-deletion-of-unused-variants-title": "Kullanılmayan ürün varyantları silinsin mi?",
-    "create-draft-order": "Taslak sipariş oluştur",
-    "create-facet-value": "Yeni faset değeri oluştur",
-    "create-new-collection": "Yeni koleksiyon oluştur",
-    "create-new-facet": "Yeni faset oluştur",
-    "create-new-product": "Yeni ürün oluştur",
-    "create-new-stock-location": "Yeni stok konumu oluştur",
-    "create-product-option-group": "Ürün seçenek grubu oluştur",
-    "create-product-variant": "Ürün varyantı oluştur",
-    "default-currency": "Varsayılan para birimi",
-    "do-not-inherit-filters": "Filtreleri miras alma",
-    "drop-files-to-upload": "Yüklemek için dosyaları sürükle",
-    "duplicate-collections": "Koleksiyonları çoğalt",
-    "duplicate-facets": "Fasetleri çoğalt",
-    "duplicate-products": "Ürünleri çoğalt",
-    "edit-facet-values": "Faset değerlerini düzenle",
-    "edit-options": "Seçenekleri düzenle",
-    "facet": "Faset değeri",
-    "facet-value-not-available": "\"{ id }\" faset değeri mevcut değil",
-    "facet-values": "Faset değerleri",
-    "facets": "Fasetler",
-    "filter-by-name": "İsme göre filtrele",
-    "filter-inheritance": "Filtre mirası",
-    "filters": "Filtreler",
-    "inherit-filters-from-parent": "Filtreleri üst öğeden miras al",
-    "live-preview-contents": "Canlı içerik önizlemesi",
-    "manage-variants": "Varyantları yönet",
-    "move-collection-to": "{ name } koleksiyonuna taşı",
-    "move-collections": "Koleksiyonları taşı",
-    "move-collections-success": "{count, plural, one {1 koleksiyon} other {{count} koleksiyon}} taşındı",
-    "move-down": "Aşağı taşı",
-    "move-to": "Taşı",
-    "move-up": "Yukarı taşı",
-    "name": "İsim",
-    "no-channel-selected": "Kanal seçilmedi",
-    "no-featured-asset": "Öne çıkan varlık yok",
-    "no-selection": "Seçim yok",
-    "no-stock-locations-available-on-current-channel": "Mevcut kanalda stok konumu bulunmamaktadır. Ürün eklemeden önce en az bir stok konumu yapılandırın.",
-    "notify-bulk-delete-products-success": "{count, plural, one {1 ürün} other {{count} ürün}} başarıyla silindi",
-    "notify-remove-facets-from-channel-success": "{count, plural, one {1 faset} other {{count} faset}} { channelCode } kanalından başarıyla kaldırıldı",
-    "notify-remove-product-from-channel-error": "Ürün kanaldan kaldırılırken hata oluştu",
-    "notify-remove-product-from-channel-success": "Ürün kanaldan başarıyla kaldırıldı",
-    "notify-remove-variant-from-channel-error": "Ürün varyantı kanaldan kaldırılırken hata oluştu",
-    "notify-remove-variant-from-channel-success": "Ürün varyantı kanaldan başarıyla kaldırıldı",
-    "number-of-variants": "Varyant sayısı",
-    "option": "Seçenek",
-    "option-name": "Seçenek adı",
-    "option-values": "Seçenek değerleri",
-    "out-of-stock-threshold": "Stok tükenme eşiği",
-    "out-of-stock-threshold-tooltip": "Varyantın stokta tükendiği kabul edilecek stok seviyesini ayarlayın. Negatif bir değer, bekleyen siparişleri kabul etmenizi sağlar.",
-    "page-description-options-editor": "Bu ürün için seçenek adlarını ve kodlarını düzenleyin. Seçenek eklemek veya kaldırmak için, ürün varyantları listesinin altındaki \"varyantları yönet\" düğmesini kullanın.",
-    "price": "Fiyat",
-    "price-and-tax": "Fiyat ve vergi",
-    "price-conversion-factor": "Fiyat dönüşüm faktörü",
-    "price-in-channel": "{ channel } kanalındaki fiyat",
-    "price-includes-tax-at": "{ rate }% vergi dahil",
-    "price-with-tax-in-default-zone": "{ rate }% vergi dahil: { price }",
-    "private": "Özel",
-    "product": "Ürün",
-    "product-name": "Ürün adı",
-    "product-options": "Ürün seçenekleri",
-    "product-variant-exists": "Bu seçeneklere sahip bir ürün varyantı zaten var",
-    "product-variants": "Ürün varyantları",
-    "products": "Ürünler",
-    "public": "Herkese açık",
-    "quick-jump-placeholder": "Varyanta git",
-    "rebuild-search-index": "Arama indeksini yeniden oluştur",
-    "reindex-error": "Arama indeksi yeniden oluşturulurken bir hata oluştu",
-    "reindex-successful": "{count, plural, one {1 ürün varyantı} other {{count} ürün varyantı}} {time} ms içinde indekslendi",
-    "reindexing": "Arama indeksi yeniden oluşturuluyor",
-    "remove-from-channel": "Kanaldan kaldır",
-    "remove-option": "Seçeneği kaldır",
-    "remove-product-from-channel": "Ürünü kanaldan kaldır",
-    "remove-product-variant-from-channel": "Ürün varyantını kanaldan kaldır",
-    "reorder-collection": "Koleksiyonu yeniden sırala",
-    "root-collection": "Kök koleksiyon",
-    "run-pending-search-index-updates": "Arama indeksi: {count, plural, one {1 bekleyen güncelleme} other {{count} bekleyen güncelleme}} çalıştır",
-    "running-search-index-updates": "{count, plural, one {1 güncelleme} other {{count} güncelleme}} çalıştırılıyor",
-    "search-asset-name-or-tag": "Varlık adı veya etikete göre ara",
-    "search-for-term": "Terim ara",
-    "search-product-name-or-code": "Ürün adı veya koda göre ara",
-    "select-product": "Ürün seç",
-    "select-product-variant": "Ürün varyantı seç",
-    "sku": "SKU",
-    "slug": "Slug",
-    "slug-pattern-error": "Geçersiz slug",
-    "stock-allocated": "Ayrılmış",
-    "stock-levels": "Stok seviyeleri",
-    "stock-location": "Stok konumu",
-    "stock-locations": "Stok konumları",
-    "stock-on-hand": "Stokta mevcut",
-    "tax-category": "Vergi kategorisi",
-    "taxes": "Vergiler",
-    "track-inventory": "Stok takibi",
-    "track-inventory-false": "Takip etme",
-    "track-inventory-inherit": "Genel ayarlardan miras al",
-    "track-inventory-tooltip": "Etkinleştirildiğinde, ürün varyantlarının stok seviyeleri satış sonrası otomatik olarak güncellenir.",
-    "track-inventory-true": "Takip et",
-    "update-product-option": "Ürün seçeneğini güncelle",
-    "use-global-value": "Genel değeri kullan",
-    "values": "Değerler",
-    "variant": "Varyant",
-    "variant-count": "{count, plural, one {1 varyant} other {{count} varyant}}",
-    "view-contents": "İçeriği görüntüle",
-    "visibility": "Görünürlük"
-  },
-  "common": {
-    "ID": "Kimlik",
-    "add-filter": "Filtre ekle",
-    "add-item-to-list": "Listeye öğe ekle",
-    "add-note": "Not ekle",
-    "apply": "Uygula",
-    "assign-to-channel": "Kanala ata",
-    "assign-to-channels": "{count, plural, one {kanal} other {kanallar}} ata",
-    "available-currencies": "Mevcut para birimleri",
-    "available-languages": "Mevcut diller",
-    "boolean-and": "ve",
-    "boolean-false": "yanlış",
-    "boolean-or": "veya",
-    "boolean-true": "doğru",
-    "breadcrumb": "Gezinti yolu",
-    "browser-default": "Tarayıcı varsayılanı",
-    "cancel": "İptal",
-    "cancel-navigation": "Gezintiyi iptal et",
-    "change-selection": "Seçimi değiştir",
-    "channel": "Kanal",
-    "channels": "Kanallar",
-    "clear-selection": "Seçimi temizle",
-    "code": "Kod",
-    "collapse-entries": "Girdileri daralt",
-    "confirm": "Onayla",
-    "confirm-bulk-assign-to-channel": "Öğeleri kanala atamak istiyor musunuz?",
-    "confirm-bulk-delete": "Seçili öğeleri silmek istiyor musunuz?",
-    "confirm-bulk-remove-from-channel": "Öğeleri mevcut kanaldan kaldırmak istiyor musunuz?",
-    "confirm-delete-note": "Notu silmek istiyor musunuz?",
-    "confirm-navigation": "Gezintiyi onayla",
-    "contents": "İçerik",
-    "create": "Oluştur",
-    "created-at": "Oluşturulma zamanı",
-    "custom-fields": "Özel alanlar",
-    "data-table-filter-date-mode": "Tarih modu",
-    "data-table-filter-date-range": "Tarih aralığı",
-    "data-table-filter-date-relative": "Göreceli tarih",
-    "default-channel": "Varsayılan kanal",
-    "default-language": "Varsayılan dil",
-    "default-tax-category": "Varsayılan vergi kategorisi",
-    "delete": "Sil",
-    "description": "Açıklama",
-    "details": "Detaylar",
-    "disable": "Devre dışı",
-    "disabled": "Devre dışı",
-    "discard-changes": "Değişiklikleri iptal et",
-    "duplicate": "Çoğalt",
-    "edit": "Düzenle",
-    "edit-field": "Alanı düzenle",
-    "edit-note": "Notu düzenle",
-    "enable": "Etkinleştir",
-    "enabled": "Etkin",
-    "end-date": "Bitiş tarihi",
-    "expand-entries": "Girdileri genişlet",
-    "extension-running-in-separate-window": "Eklenti ayrı bir pencerede çalışıyor",
-    "filter": "Filtre",
-    "filter-preset-name": "Filtre ön ayar adı",
-    "force-delete": "Zorla sil",
-    "force-remove": "Zorla kaldır",
-    "general": "Genel",
-    "guest": "Misafir",
-    "id": "Kimlik",
-    "image": "Görüntü",
-    "items-per-page-option": "Sayfa başına { count }",
-    "items-selected-count": "{ count } {count, plural, one {öğe} other {öğeler}} seçildi",
-    "keep-editing": "Düzenlemeye devam et",
-    "language": "Dil",
-    "launch-extension": "Eklentiyi başlat",
-    "list-items-and-n-more": "{ articles } ve {nMore} daha",
-    "live-update": "Canlı güncelleme",
-    "locale": "Yerel ayar",
-    "log-out": "Çıkış yap",
-    "login": "Giriş yap",
-    "login-image-title": "Merhaba! Tekrar hoş geldiniz.",
-    "login-title": "{brand} ile giriş yapın",
-    "manage-tags": "Etiketleri yönet",
-    "manage-tags-description": "Etiketleri toplu olarak güncelle veya sil",
-    "medium-date": "Orta tarih",
-    "more": "Daha fazla...",
-    "name": "Ad",
-    "no-alerts": "Uyarı yok",
-    "no-bulk-actions-available": "Toplu işlem yok",
-    "no-channel-selected": "Kanal seçilmedi",
-    "no-results": "Sonuç yok",
-    "not-applicable": "Uygulanamaz",
-    "not-set": "Ayarlanmadı",
-    "notify-assign-to-channel-success-with-count": "{count, plural, one {1 öğe} other {{count} öğe}} başarıyla { channelCode } kanalına atandı",
-    "notify-bulk-update-success": "{ count } { entity } güncellendi",
-    "notify-create-error": "{ entity } oluşturulurken bir hata oluştu",
-    "notify-create-success": "Yeni { entity } oluşturuldu",
-    "notify-delete-error": "{ entity } silinirken bir hata oluştu",
-    "notify-delete-error-with-count": "{count, plural, one {1 öğe} other {{count} öğe}} silinemedi",
-    "notify-delete-success": "{ entity } silindi",
-    "notify-delete-success-with-count": "{count, plural, one {1 öğe} other {{count} öğe}} başarıyla silindi",
-    "notify-duplicate-error": "{ name } çoğaltılamadı: { error }",
-    "notify-duplicate-error-excess": "{ count } {count, plural, one {öğe} other {öğeler}} çoğaltılamadı: { error }",
-    "notify-duplicate-success": "{count, plural, one {1 öğe} other {{count} öğe}} başarıyla çoğaltıldı: { names }",
-    "notify-remove-from-channel-success-with-count": "{count, plural, one {1 öğe} other {{count} öğe}} kanaldan başarıyla kaldırıldı",
-    "notify-save-changes-error": "Değişiklikler kaydedilemedi",
-    "notify-saved-changes": "Değişiklikler kaydedildi",
-    "notify-update-error": "{ entity } güncellenirken bir hata oluştu",
-    "notify-update-success": "{ entity } güncellendi",
-    "notify-updated-tags-success": "Etiketler başarıyla güncellendi",
-    "okay": "Tamam",
-    "operator-contains": "içerir",
-    "operator-eq": "eşittir",
-    "operator-gt": "büyüktür",
-    "operator-lt": "küçüktür",
-    "operator-not-contains": "içermez",
-    "operator-not-eq": "eşit değildir",
-    "operator-notContains": "içermez",
-    "operator-regex": "düzenli ifadeye uyar",
-    "password": "Şifre",
-    "position": "Pozisyon",
-    "price": "Fiyat",
-    "price-with-tax": "Vergi dahil fiyat",
-    "private": "Özel",
-    "public": "Genel",
-    "remember-me": "Beni hatırla",
-    "remove": "Kaldır",
-    "remove-from-channel": "Kanaldan kaldır",
-    "remove-item-from-list": "Liste öğesini kaldır",
-    "rename-filter-preset": "Filtre ön ayarını yeniden adlandır",
-    "reset-columns": "Sütunları sıfırla",
-    "results-count": "{ count } {count, plural, one {sonuç} other {sonuçlar}}",
-    "sample-formatting": "Örnek biçimlendirme",
-    "save-filter-preset": "Ön ayar olarak kaydet",
-    "search-and-filter-list": "Listeyi ara ve filtrele",
-    "search-by-name": "İsme göre ara",
-    "select": "Seç...",
-    "select-display-language": "Görüntüleme dilini seç",
-    "select-items-with-count": "{ count } {count, plural, one {öğe} other {öğeler}} seç",
-    "select-products": "Ürünleri seç",
-    "select-relation-id": "İlişki kimliğini seç",
-    "select-table-columns": "Tablo sütunlarını seç",
-    "select-today": "Bugünü seç",
-    "select-variants": "Varyantları seç",
-    "seller": "Satıcı",
-    "set-language": "Dili ayarla",
-    "short-date": "Kısa tarih",
-    "slug": "Kısa ad",
-    "start-date": "Başlangıç tarihi",
-    "status": "Durum",
-    "tags": "Etiketler",
-    "theme": "Tema",
-    "there-are-unsaved-changes": "Kaydedilmemiş değişiklikler var. Başka bir yere gitmek bu değişiklikleri kaybettirir.",
-    "toggle-all": "Tümünü seç/deselect",
-    "total-items": "{currentStart} - {currentEnd} / {totalItems}",
-    "update": "Güncelle",
-    "updated-at": "Güncellenme zamanı",
-    "username": "Kullanıcı adı",
-    "value": "Değer",
-    "view-contents": "İçeriği görüntüle",
-    "view-next-month": "Sonraki ayı görüntüle",
-    "view-previous-month": "Önceki ayı görüntüle",
-    "visibility": "Görünürlük",
-    "with-selected": "Seçilenlerle..."
-  },
-  "customer": {
-    "add-customer-to-group": "Müşteriyi gruba ekle",
-    "add-customer-to-groups-with-count": "Müşteriyi {count, plural, one {bir gruba} other {{count} gruba}} ekle",
-    "add-customers-to-group": "Müşterileri gruba ekle",
-    "add-customers-to-group-success": "{customerCount, plural, one {Bir müşteri} other {{customerCount} müşteri}} \"{ groupName }\" grubuna eklendi",
-    "add-customers-to-group-with-count": "{count, plural, one {Bir müşteri} other {{count} müşteri}} eklendi",
-    "add-customers-to-group-with-name": "Müşterileri \"{ groupName }\" grubuna ekle",
-    "addresses": "Adresler",
-    "city": "Şehir",
-    "company": "Şirket",
-    "confirm-remove-customer-from-group": "Müşteriyi gruptan kaldırmak istiyor musunuz?",
-    "country": "Ülke",
-    "create-customer-group": "Müşteri grubu oluştur",
-    "create-new-address": "Yeni adres oluştur",
-    "create-new-customer": "Yeni müşteri oluştur",
-    "create-new-customer-group": "Yeni müşteri grubu oluştur",
-    "customer": "Müşteri",
-    "customer-group": "Müşteri grubu",
-    "customer-groups": "Müşteri grupları",
-    "customer-history": "Müşteri geçmişi",
-    "customers": "Müşteriler",
-    "default-billing-address": "Varsayılan fatura adresi",
-    "default-shipping-address": "Varsayılan teslimat adresi",
-    "email-address": "E-posta adresi",
-    "email-verification-sent": "{ emailAddress } adresine doğrulama e-postası gönderildi",
-    "first-name": "Ad",
-    "full-name": "Tam ad",
-    "guest": "Misafir",
-    "history-customer-added-to-group": "Müşteri \"{ groupName }\" grubuna eklendi",
-    "history-customer-address-created": "Adres oluşturuldu",
-    "history-customer-address-deleted": "Adres silindi",
-    "history-customer-address-updated": "Adres güncellendi",
-    "history-customer-detail-updated": "Detaylar güncellendi",
-    "history-customer-email-update-requested": "E-posta güncelleme talep edildi",
-    "history-customer-email-update-verified": "E-posta güncellemesi doğrulandı",
-    "history-customer-password-reset-requested": "Şifre sıfırlama talep edildi",
-    "history-customer-password-reset-verified": "Şifre sıfırlama doğrulandı",
-    "history-customer-password-updated": "Şifre güncellendi",
-    "history-customer-registered": "Müşteri kaydedildi",
-    "history-customer-removed-from-group": "Müşteri \"{ groupName }\" grubundan kaldırıldı",
-    "history-customer-verified": "Müşteri doğrulandı",
-    "history-using-external-auth-strategy": "{ strategy } kullanıldı",
-    "history-using-native-auth-strategy": "E-posta adresi kullanıldı",
-    "last-login": "Son giriş",
-    "last-name": "Soyad",
-    "name": "Ad",
-    "new-email-address": "Yeni e-posta adresi",
-    "no-orders-placed": "Hiç sipariş verilmedi",
-    "not-a-member-of-any-groups": "Bu müşteri hiçbir grubun üyesi değil",
-    "old-email-address": "Eski e-posta adresi",
-    "orders": "Siparişler",
-    "password": "Şifre",
-    "phone-number": "Telefon numarası",
-    "postal-code": "Posta kodu",
-    "province": "İl",
-    "registered": "Kayıtlı",
-    "remove-customers-from-group-success": "{customerCount, plural, one {Bir müşteri} other {{customerCount} müşteri}} \"{ groupName }\" grubundan kaldırıldı",
-    "remove-from-group": "Bu gruptan kaldır",
-    "search-customers-by-email": "E-posta adresine göre ara",
-    "search-customers-by-email-last-name-postal-code": "Ad / E-posta adresi / Posta koduna göre ara",
-    "select-customer": "Müşteri seç",
-    "set-as-default-billing-address": "Varsayılan fatura adresi olarak ayarla",
-    "set-as-default-shipping-address": "Varsayılan teslimat adresi olarak ayarla",
-    "street-line-1": "Sokak satırı 1",
-    "street-line-2": "Sokak satırı 2",
-    "title": "Başlık",
-    "update-customer-group": "Müşteri grubunu güncelle",
-    "verified": "Doğrulandı",
-    "view-group-members": "Grup üyelerini görüntüle"
-  },
-  "dashboard": {
-    "add-widget": "Widget ekle",
-    "latest-orders": "Son siparişler",
-    "metric-average-order-value": "Ortalama sipariş değeri",
-    "metric-number-of-orders": "Sipariş sayısı",
-    "metric-order-total-value": "Toplam sipariş değeri",
-    "metrics": "İstatistikler",
-    "orders-summary": "Sipariş özeti",
-    "remove-widget": "Widget'ı kaldır",
-    "thisMonth": "Bu ay",
-    "thisWeek": "Bu hafta",
-    "today": "Bugün",
-    "total-order-value": "Toplam değer",
-    "total-orders": "Toplam siparişler",
-    "widget-resize": "Yeniden boyutlandır",
-    "widget-width": "Genişlik: {width}",
-    "yesterday": "Dün"
-  },
-  "datetime": {
-    "ago-days": "{count, plural, one {1 gün} other {{count} gün}} önce",
-    "ago-hours": "{count, plural, one {1 saat} other {{count} saat}} önce",
-    "ago-minutes": "{count, plural, one {1 dakika} other {{count} dakika}} önce",
-    "ago-seconds": "{count, plural, =0 {az önce} one {1 saniye} other {{count} saniye}} önce",
-    "ago-years": "{count, plural, one {1 yıl} other {{count} yıl}} önce",
-    "day": "gün",
-    "duration-milliseconds": "{ms}ms",
-    "duration-minutes:seconds": "{m}:{s}dk",
-    "duration-seconds": "{s}sn",
-    "month": "ay",
-    "month-apr": "Nisan",
-    "month-aug": "Ağustos",
-    "month-dec": "Aralık",
-    "month-feb": "Şubat",
-    "month-jan": "Ocak",
-    "month-jul": "Temmuz",
-    "month-jun": "Haziran",
-    "month-mar": "Mart",
-    "month-may": "Mayıs",
-    "month-nov": "Kasım",
-    "month-oct": "Ekim",
-    "month-sep": "Eylül",
-    "relative-past-days": "{count} {count, plural, one {gün} other {gün}} önce",
-    "relative-past-months": "{count} {count, plural, one {ay} other {ay}} önce",
-    "relative-past-years": "{count} {count, plural, one {yıl} other {yıl}} önce",
-    "time": "Zaman",
-    "weekday-fr": "Cuma",
-    "weekday-mo": "Pazartesi",
-    "weekday-sa": "Cumartesi",
-    "weekday-su": "Pazar",
-    "weekday-th": "Perşembe",
-    "weekday-tu": "Salı",
-    "weekday-we": "Çarşamba",
-    "year": "yıl"
-  },
-  "editor": {
-    "height": "Yükseklik",
-    "image-alt": "Açıklama (alt)",
-    "image-src": "Kaynak",
-    "image-title": "Başlık",
-    "insert-image": "Resim ekle",
-    "link-href": "Bağlantı adresi",
-    "link-target": "Bağlantı hedefi",
-    "link-title": "Bağlantı başlığı",
-    "remove-link": "Bağlantıyı kaldır",
-    "set-link": "Bağlantıyı ayarla",
-    "width": "Genişlik"
-  },
-  "error": {
-    "403-forbidden": "\"{ path }\" yoluna erişim izniniz yok. İzniniz yok veya oturumunuz sona erdi.",
-    "could-not-connect-to-server": "{ url } adresindeki Vendure sunucusuna bağlanılamadı",
-    "health-check-failed": "Sistem sağlık kontrolü başarısız oldu",
-    "no-default-shipping-zone-set": "Bu kanalın varsayılan bir teslimat bölgesi yok. Bu, nakliye maliyeti hesaplamasında hatalara neden olabilir.",
-    "no-default-tax-zone-set": "Bu kanalın varsayılan bir vergi bölgesi yok, bu da fiyat hesaplamasında hatalara neden olabilir. Bir bölge oluşturun veya seçin."
-  },
-  "marketing": {
-    "actions": "Eylemler",
-    "add-action": "Eylem ekle",
-    "add-condition": "Koşul ekle",
-    "conditions": "Koşullar",
-    "coupon-code": "Kupon kodu",
-    "create-new-promotion": "Yeni promosyon oluştur",
-    "duplicate-promotions": "Promosyonları çoğalt",
-    "ends-at": "Bitiş tarihi",
-    "per-customer-limit": "Müşteri başına limit",
-    "per-customer-limit-tooltip": "Bu promosyonun bir müşteri tarafından kullanılabileceği maksimum sayı",
-    "promotion": "Promosyon",
-    "search-by-name-or-coupon-code": "İsme veya kupon koduna göre ara",
-    "starts-at": "Başlangıç tarihi",
-    "usage-limit": "Toplam kullanım limiti",
-    "usage-limit-tooltip": "Bu promosyonun toplamda kullanılabileceği maksimum sayı"
-  },
-  "nav": {
-    "administrators": "Yöneticiler",
-    "assets": "Dosyalar",
-    "catalog": "Katalog",
-    "channels": "Kanallar",
-    "collections": "Koleksiyonlar",
-    "countries": "Ülkeler",
-    "customer-groups": "Müşteri grupları",
-    "customers": "Müşteriler",
-    "facets": "Bileşenler",
-    "global-settings": "Genel ayarlar",
-    "job-queue": "Görev kuyruğu",
-    "marketing": "Pazarlama",
-    "orders": "Siparişler",
-    "payment-methods": "Ödeme yöntemleri",
-    "products": "Ürünler",
-    "promotions": "Promosyonlar",
-    "roles": "Roller",
-    "sales": "Satışlar",
-    "scheduled-tasks": "Planlanmış Görevler",
-    "sellers": "Satıcılar",
-    "settings": "Ayarlar",
-    "shipping-methods": "Nakliye yöntemleri",
-    "stock-locations": "Stok konumları",
-    "system": "Sistem",
-    "system-status": "Sistem durumu",
-    "tax-categories": "Vergi kategorileri",
-    "tax-rates": "Vergi oranları",
-    "zones": "Bölgeler"
-  },
-  "order": {
-    "add-item-to-order": "Siparişe öğe ekle",
-    "add-note": "Not ekle",
-    "add-payment": "Ödeme yöntemi ekle",
-    "add-payment-to-order": "Siparişe ödeme yöntemi ekle",
-    "add-payment-to-order-success": "Ödeme yöntemi başarıyla eklendi",
-    "add-surcharge": "Ek ücret ekle",
-    "added-items": "Öğeler eklendi",
-    "amount": "Miktar",
-    "arrange-additional-payment": "Ek ödeme düzenle",
-    "assign-order-to-another-customer": "Siparişi başka bir müşteriye ata",
-    "billing-address": "Fatura adresi",
-    "cancel": "İptal",
-    "cancel-entire-order": "Tüm siparişi iptal et",
-    "cancel-fulfillment": "Hazırlığı iptal et",
-    "cancel-modification": "Değişikliği iptal et",
-    "cancel-order": "Siparişi iptal et",
-    "cancel-payment": "Ödemeyi iptal et",
-    "cancel-reason-customer-request": "Müşteri talebi",
-    "cancel-reason-not-available": "Mevcut değil",
-    "cancel-selected-items": "Seçili öğeleri iptal et",
-    "cancel-specified-items": "Belirtilen öğeleri iptal et",
-    "cancellation-reason": "İptal nedeni",
-    "cancelled-order-items-success": "{ count } { count, plural, one {öğe} other {öğeler} } iptal edildi",
-    "cancelled-order-success": "Sipariş iptal edildi",
-    "complete-draft-order": "Taslağı tamamla",
-    "confirm-modifications": "Değişiklikleri onayla",
-    "contents": "İçerik",
-    "create-fulfillment": "Hazırlık oluştur",
-    "create-fulfillment-success": "Hazırlık başarıyla oluşturuldu",
-    "customer": "Müşteri",
-    "delete-draft-order": "Taslağı sil",
-    "draft-order": "Taslak sipariş",
-    "edit-billing-address": "Fatura adresini düzenle",
-    "edit-shipping-address": "Teslimat adresini düzenle",
-    "error-message": "Hata mesajı",
-    "existing-address": "Mevcut adres",
-    "existing-customer": "Mevcut müşteri",
-    "filter-is-active": "Filtre aktif",
-    "fulfill": "Hazırla",
-    "fulfill-order": "Siparişi hazırla",
-    "fulfillment": "Hazırlık",
-    "fulfillment-method": "Hazırlık yöntemi",
-    "history-coupon-code-applied": "Kupon kodu uygulandı",
-    "history-coupon-code-removed": "Kupon kodu kaldırıldı",
-    "history-customer-updated": "Müşteri güncellendi",
-    "history-fulfillment-created": "Hazırlık oluşturuldu",
-    "history-fulfillment-delivered": "Hazırlık teslim edildi",
-    "history-fulfillment-shipped": "Hazırlık gönderildi",
-    "history-fulfillment-transition": "Hazırlık {from} durumundan {to} durumuna geçirildi",
-    "history-items-cancelled": "{count} {count, plural, one {öğe iptal edildi} other {öğeler iptal edildi}}",
-    "history-order-cancelled": "Sipariş iptal edildi",
-    "history-order-created": "Sipariş oluşturuldu",
-    "history-order-fulfilled": "Sipariş hazırlandı",
-    "history-order-modified": "Sipariş değiştirildi",
-    "history-order-transition": "Sipariş {from} durumundan {to} durumuna geçirildi",
-    "history-payment-settled": "Ödeme tamamlandı",
-    "history-payment-transition": "Ödeme #{id} {from} durumundan {to} durumuna geçirildi",
-    "history-refund-transition": "İade #{id} {from} durumundan {to} durumuna geçirildi",
-    "item-count": "{count} {count, plural, one {öğe} other {öğeler}}",
-    "line-fulfillment-all": "Tüm öğeler hazırlandı",
-    "line-fulfillment-none": "Hiçbir öğe hazırlanmadı",
-    "line-fulfillment-partial": "{ count } / { total } {count, plural, one {öğe hazırlandı} other {öğeler hazırlandı}}",
-    "manually-transition-to-state": "Sipariş durumunu manuel olarak değiştir...",
-    "manually-transition-to-state-message": "Sipariş durumunu manuel olarak değiştirin. Durumlar belirli kurallara tabidir ve bazı geçişler engellenebilir.",
-    "modification-adding-items": "{count} {count, plural, one {öğe} other {öğeler}} ekleniyor",
-    "modification-adding-surcharges": "{count} {count, plural, one {ek ücret} other {ek ücretler}} ekleniyor",
-    "modification-adjusting-lines": "{count} {count, plural, one {satır} other {satırlar}} ayarlanıyor",
-    "modification-not-settled": "Tamamlanmadı",
-    "modification-recalculate-shipping": "Nakliye maliyetini yeniden hesapla",
-    "modification-settled": "Değişiklik tamamlandı",
-    "modification-summary": "Değişiklik özeti",
-    "modification-updating-billing-address": "Fatura adresi güncelleniyor",
-    "modification-updating-shipping-address": "Teslimat adresi güncelleniyor",
-    "modified-items": "Değiştirilen öğeler",
-    "modify-order": "Siparişi değiştir",
-    "modify-order-price-difference": "Fiyat farkı",
-    "net-price": "Net fiyat",
-    "new-customer": "Yeni müşteri",
-    "no-modifications-made": "Hiçbir değişiklik yapılmadı",
-    "note": "Not",
-    "note-is-private": "Not özel",
-    "note-only-visible-to-administrators": "Sadece yöneticiler tarafından görülebilir",
-    "note-visible-to-customer": "Yöneticiler ve müşteri tarafından görülebilir",
-    "order": "Sipariş",
-    "order-history": "Sipariş geçmişi",
-    "order-is-empty": "Sipariş boş",
-    "order-state-diagram": "Sipariş durumu diyagramı",
-    "order-type": "Sipariş türü",
-    "order-type-aggregate": "Toplu",
-    "order-type-regular": "Normal",
-    "order-type-seller": "Satıcı",
-    "orders": "Siparişler",
-    "original-quantity-at-checkout": "Ödeme sırasında orijinal miktar",
-    "payment": "Ödeme",
-    "payment-amount": "Ödeme miktarı",
-    "payment-metadata": "Ödeme meta verileri",
-    "payment-method": "Ödeme yöntemi",
-    "payment-state": "Durum",
-    "payments": "Ödemeler",
-    "placed-at": "Yerleştirildi",
-    "preview-changes": "Değişiklikleri önizle",
-    "previous-customer": "Önceki müşteri",
-    "product-name": "Ürün adı",
-    "product-sku": "SKU",
-    "promotions-applied": "Uygulanan promosyonlar",
-    "prorated-unit-price": "Birim fiyat",
-    "quantity": "Miktar",
-    "refund": "İade",
-    "refund-amount": "İade miktarı",
-    "refund-and-cancel-order": "İade ve siparişi iptal et",
-    "refund-cancellation-reason": "İade/iptal nedeni",
-    "refund-cancellation-reason-required": "İade/iptal nedeni gerekli",
-    "refund-metadata": "İade meta verileri",
-    "refund-order-failed": "Sipariş başarısız oldu",
-    "refund-order-success": "Sipariş iade edildi",
-    "refund-reason": "İade nedeni",
-    "refund-reason-customer-request": "Müşteri talebi",
-    "refund-reason-not-available": "Mevcut değil",
-    "refund-shipping": "Nakliye iadesi",
-    "refund-this-payment": "Bu ödemeyi iade et",
-    "refund-total": "Toplam iade",
-    "refund-total-error": "Toplam iade {min} ile {max} arasında olmalıdır",
-    "refund-total-warning": "Lütfen toplam iade miktarına eşdeğer iade tutarlarını belirtin.",
-    "refund-with-amount": "{amount} iade et",
-    "refundable-amount": "İade edilebilir miktar",
-    "refunded-count": "{count} {count, plural, one {öğe iade edildi} other {öğeler iade edildi}}",
-    "removed-items": "Kaldırılan öğeler",
-    "return-to-stock": "Stoka geri dön",
-    "search-by-order-filters": "Sipariş numarası / müşteri adı / işlem numarasına göre ara",
-    "select-address": "Adres seç",
-    "select-shipping-method": "Nakliye yöntemini seç",
-    "select-state": "Durum seç",
-    "seller-orders": "Satıcı siparişleri",
-    "set-billing-address": "Fatura adresini ayarla",
-    "set-coupon-codes": "Kupon kodlarını ayarla",
-    "set-customer-for-order": "Sipariş için müşteri ayarla",
-    "set-customer-success": "Müşteri başarıyla ayarlandı",
-    "set-fulfillment-state": "{state} olarak işaretle",
-    "set-shipping-address": "Teslimat adresini ayarla",
-    "set-shipping-method": "Nakliye yöntemini ayarla",
-    "settle-payment": "Ödemeyi tamamla",
-    "settle-payment-error": "Ödeme başarısız oldu",
-    "settle-payment-success": "Ödeme başarıyla tamamlandı",
-    "settle-refund": "İadeyi tamamla",
-    "settle-refund-manual-instructions": "Ödeme sağlayıcısı ({method}) aracılığıyla manuel olarak iade ettikten sonra, işlem numarasını buraya girin.",
-    "settle-refund-success": "İade başarıyla tamamlandı",
-    "shipping": "Nakliye",
-    "shipping-address": "Teslimat adresi",
-    "shipping-cancelled": "Nakliye iptal edildi",
-    "shipping-method": "Nakliye yöntemi",
-    "state": "Durum",
-    "sub-total": "Ara toplam",
-    "successfully-updated-fulfillment": "Hazırlık başarıyla güncellendi",
-    "surcharges": "Ek ücretler",
-    "tax-base": "Vergi matrahı",
-    "tax-description": "Vergi açıklaması",
-    "tax-rate": "Vergi oranı",
-    "tax-summary": "Vergi özeti",
-    "tax-total": "Toplam vergi",
-    "total": "Toplam",
-    "tracking-code": "Takip numarası",
-    "transaction-id": "İşlem numarası",
-    "transition-to-state": "Duruma geçiş: { state }",
-    "transitioned-payment-to-state-success": "Ödeme durumu { state } olarak başarıyla değiştirildi",
-    "transitioned-to-state-success": "Duruma geçiş { state } başarıyla tamamlandı",
-    "unable-to-transition-to-state-try-another": "Sipariş \"{state}\" durumuna geçirilemedi. Lütfen başka bir durum seçin.",
-    "unfulfilled": "Hazırlanmamış",
-    "unit-price": "Birim fiyat"
-  },
-  "settings": {
-    "add-countries-to-zone": "{ zoneName } bölgesine ülke ekle",
-    "add-countries-to-zone-success": "{ countryCount } {countryCount, plural, one {ülke eklendi} other {ülke eklendi}} \"{ zoneName }\" bölgesine eklendi",
-    "add-products-to-test-order": "Test siparişine ürün ekle",
-    "administrator": "Yönetici",
-    "channel": "Kanal",
-    "channel-token": "Kanal jetonu",
-    "country": "Ülke",
-    "create-new-channel": "Yeni kanal oluştur",
-    "create-new-country": "Yeni ülke oluştur",
-    "create-new-payment-method": "Yeni ödeme yöntemi oluştur",
-    "create-new-role": "Yeni rol oluştur",
-    "create-new-seller": "Yeni satıcı oluştur",
-    "create-new-shipping-method": "Yeni nakliye yöntemi oluştur",
-    "create-new-tax-category": "Yeni vergi kategorisi oluştur",
-    "create-new-tax-rate": "Yeni vergi oranı oluştur",
-    "create-new-zone": "Yeni bölge oluştur",
-    "default-currency": "Varsayılan para birimi",
-    "default-role-label": "Bu varsayılan roldür ve değiştirilemez",
-    "default-shipping-zone": "Varsayılan teslimat bölgesi",
-    "default-tax-zone": "Varsayılan vergi bölgesi",
-    "defaults": "Varsayılanlar",
-    "eligible": "Uygun",
-    "email-address": "E-posta adresi",
-    "email-address-or-identifier": "E-posta adresi veya kimlik",
-    "first-name": "Ad",
-    "fulfillment-handler": "Hazırlık yöneticisi",
-    "global-available-languages-tooltip": "Tüm kanallar için kullanılabilir dilleri belirler. Bireysel kanallar bu dillerin bir alt kümesini destekleyebilir.",
-    "global-out-of-stock-threshold": "Genel stok tükenme eşiği",
-    "global-out-of-stock-threshold-tooltip": "Bir varyantın stokta tükenmiş olarak kabul edileceği stok seviyesini ayarlayın. Negatif bir değer girmek, bekleyen siparişleri kabul etmeyi sağlar. Değer, ürün varyantı bazında ayrı ayrı ayarlanabilir.",
-    "last-name": "Soyad",
-    "no-eligible-shipping-methods": "Uygun nakliye yöntemi yok",
-    "password": "Şifre",
-    "payment-eligibility-checker": "Ödeme uygunluk denetleyicisi",
-    "payment-handler": "Ödeme yöneticisi",
-    "payment-method": "Ödeme yöntemi",
-    "permissions": "İzinler",
-    "prices-include-tax": "Varsayılan bölge için KDV dahil fiyatlar",
-    "profile": "Profil",
-    "rate": "Oran",
-    "remove-countries-from-zone-success": "{ countryCount } {countryCount, plural, one {ülke kaldırıldı} other {ülke kaldırıldı}} \"{ zoneName }\" bölgesinden kaldırıldı",
-    "remove-from-zone": "Bölgeden kaldır",
-    "role": "Rol",
-    "roles": "Roller",
-    "search-by-product-name-or-sku": "Ürün adı veya SKU'ya göre ara",
-    "seller": "Satıcı",
-    "shipping-calculator": "Nakliye hesaplayıcı",
-    "shipping-eligibility-checker": "Nakliye uygunluk denetleyicisi",
-    "shipping-method": "Nakliye yöntemi",
-    "tax-category": "Vergi kategorisi",
-    "tax-rate": "Vergi oranı",
-    "test-address": "Test adresi",
-    "test-result": "Test sonucu",
-    "test-shipping-method": "Test nakliye yöntemi",
-    "test-shipping-methods": "Test nakliye yöntemleri",
-    "track-inventory-default": "Varsayılan olarak envanteri takip et",
-    "view-zone-members": "Bölge üyelerini görüntüle",
-    "zone": "Bölge"
-  },
-  "state": {
-    "adding-items": "Öğeler ekleniyor",
-    "arranging-additional-payment": "Ek ödeme düzenleniyor",
-    "arranging-payment": "Ödeme düzenleniyor",
-    "authorized": "Yetkilendirilmiş",
-    "cancelled": "İptal edildi",
-    "created": "Oluşturuldu",
-    "declined": "Reddedildi",
-    "delivered": "Teslim edildi",
-    "draft": "Taslak",
-    "error": "Hata",
-    "failed": "Başarısız",
-    "modifying": "Değiştiriliyor",
-    "partially-delivered": "Kısmen teslim edildi",
-    "partially-shipped": "Kısmen gönderildi",
-    "payment-authorized": "Ödeme yetkilendirildi",
-    "payment-settled": "Ödeme tamamlandı",
-    "pending": "Beklemede",
-    "settled": "Tamamlandı",
-    "shipped": "Gönderildi"
-  },
-  "system": {
-    "all-job-queues": "Tüm görev kuyrukları",
-    "health-all-systems-up": "Tüm sistemler çalışıyor",
-    "health-error": "Hata: bir veya daha fazla sistem arızalı!",
-    "health-last-checked": "Son kontrol",
-    "health-message": "Mesaj",
-    "health-refresh": "Yenile",
-    "health-status": "Durum",
-    "health-status-down": "Arızalı",
-    "health-status-up": "Çalışıyor",
-    "job-data": "Görev verisi",
-    "job-duration": "Süre",
-    "job-error": "Görev hatası",
-    "job-queue-name": "Görev kuyruğu adı",
-    "job-result": "Görev sonucu",
-    "job-state": "Görev durumu",
-    "job-state-all": "Tüm durumlar",
-    "job-state-cancelled": "İptal edildi",
-    "job-state-completed": "Tamamlandı",
-    "job-state-failed": "Başarısız",
-    "job-state-pending": "Beklemede",
-    "job-state-running": "Çalışıyor",
-    "last-executed-at": "Son çalıştırma",
-    "last-result": "Son sonuç",
-    "next-execution-at": "Sonraki çalıştırma",
-    "schedule": "Plan",
-    "task-id": "Görev ID"
-  }
-}
+    "admin": {
+        "create-new-administrator": "Yeni yönetici oluştur"
+    },
+    "asset": {
+        "add-asset": "Dosya ekle",
+        "add-asset-with-count": "{count, plural, =0 {dosya} one {bir dosya} other {{count} dosya}} ekle",
+        "assets-selected-count": "{ count } kaynak seçildi",
+        "dimensions": "Boyutlar",
+        "focal-point": "Odak noktası",
+        "notify-create-assets-success": "{count, plural, one {yeni bir dosya} other {{count} yeni dosya}} oluşturuldu",
+        "original-asset-size": "Orijinal boyut",
+        "preview": "Önizleme",
+        "remove-asset": "Dosyayı kaldır",
+        "select-asset": "Bir dosya seç",
+        "select-assets": "Dosyaları seç",
+        "set-as-featured-asset": "Öne çıkan dosya olarak ayarla",
+        "set-focal-point": "Odak noktasını ayarla",
+        "source-file": "Kaynak dosya",
+        "unset-focal-point": "Kaldır",
+        "update-focal-point": "Noktayı güncelle",
+        "update-focal-point-error": "Nokta güncellenemedi",
+        "update-focal-point-success": "Odak noktası güncellendi",
+        "upload-assets": "Kaynakları yükle",
+        "uploading": "Yükleniyor..."
+    },
+    "breadcrumb": {
+        "administrators": "Yöneticiler",
+        "assets": "Dosyalar",
+        "channels": "Kanallar",
+        "collections": "Koleksiyonlar",
+        "countries": "Ülkeler",
+        "customer-groups": "Müşteri Grupları",
+        "customers": "Müşteriler",
+        "dashboard": "Gösterge Paneli",
+        "facets": "Bileşenler",
+        "global-settings": "Genel Ayarlar",
+        "job-queue": "İş Kuyruğu",
+        "manage-variants": "Varyantları Yönet",
+        "modifying-order": "Siparişi Düzenleme",
+        "orders": "Siparişler",
+        "payment-methods": "Ödeme Yöntemleri",
+        "product-options": "Ürün Seçenekleri",
+        "products": "Ürünler",
+        "profile": "Profil",
+        "promotions": "Promosyonlar",
+        "roles": "Roller",
+        "seller-orders": "Satıcı Siparişleri",
+        "sellers": "Satıcılar",
+        "shipping-methods": "Nakliye Yöntemleri",
+        "stock-locations": "Stok Konumları",
+        "system-status": "Sistem Durumu",
+        "tax-categories": "Vergi Kategorileri",
+        "tax-rates": "Vergi Oranları",
+        "zones": "Bölgeler"
+    },
+    "catalog": {
+        "add-facet-value": "Faset değeri ekle",
+        "add-facets": "Faset ekle",
+        "add-option": "Seçenek ekle",
+        "add-price-in-another-currency": "Başka bir para biriminde fiyat ekle",
+        "add-stock-location": "Stok konumu ekle",
+        "add-stock-to-location": "Konuma stok ekle",
+        "asset": "Varlık",
+        "asset-preview-links": "Varlık önizleme bağlantıları",
+        "assets": "Varlıklar",
+        "assign-product-to-channel-success": "Ürün \"{ channel }\" kanalına atandı",
+        "assign-products-to-channel": "Ürünleri kanala ata",
+        "assign-to-named-channel": "{ channelCode } kanalına ata",
+        "assign-variant-to-channel-success": "Ürün varyantı \"{ channel }\" kanalına atandı",
+        "assign-variants-to-channel": "Ürün varyantını kanala ata",
+        "auto-update-option-variant-name": "Bu seçeneği kullanarak ürün varyant adlarını otomatik güncelle",
+        "auto-update-product-variant-name": "Ürün varyant adlarını otomatik güncelle",
+        "calculated-price": "Hesaplanan fiyat",
+        "calculated-price-tooltip": "Yukarıda belirtilen fiyatı değiştiren özel bir fiyat hesaplaması yapılandırıldı:",
+        "cannot-create-variants-without-options": "Seçenekler olmadan varyant oluşturulamaz",
+        "channel-price-preview": "Kanal fiyatı önizlemesi",
+        "collection": "Koleksiyon",
+        "collection-contents": "Koleksiyon İçeriği",
+        "collections": "Koleksiyonlar",
+        "confirm-bulk-delete-products": "Toplu ürün silme işlemini onayla?",
+        "confirm-cancel": "İptali onayla?",
+        "confirm-delete-assets": "{count} {count, plural, one {dosya} other {dosya}} silinsin mi?",
+        "confirm-delete-facet-value": "Faset değeri silinsin mi?",
+        "confirm-delete-product": "Ürün silinsin mi?",
+        "confirm-delete-product-option": "\"{name}\" seçeneği silinsin mi?",
+        "confirm-delete-product-option-group": "\"{name}\" seçenek grubu silinsin mi?",
+        "confirm-delete-product-option-group-body": "Bu seçenek grubu {count} {count, plural, one {varyant} other {varyant}} tarafından kullanılıyor. Silmek istediğinize emin misiniz?",
+        "confirm-delete-product-variant": "\"{name}\" ürün varyantı silinsin mi?",
+        "confirm-deletion-of-unused-variants-body": "Yeni seçeneklerin eklenmesi nedeniyle aşağıdaki ürün varyantları kullanılmaz hale geldi. Yeni ürün varyantları oluşturulurken silinecekler.",
+        "confirm-deletion-of-unused-variants-title": "Kullanılmayan ürün varyantları silinsin mi?",
+        "create-draft-order": "Taslak sipariş oluştur",
+        "create-facet-value": "Yeni faset değeri oluştur",
+        "create-new-collection": "Yeni koleksiyon oluştur",
+        "create-new-facet": "Yeni faset oluştur",
+        "create-new-product": "Yeni ürün oluştur",
+        "create-new-stock-location": "Yeni stok konumu oluştur",
+        "create-product-option-group": "Ürün seçenek grubu oluştur",
+        "create-product-variant": "Ürün varyantı oluştur",
+        "default-currency": "Varsayılan para birimi",
+        "do-not-inherit-filters": "Filtreleri miras alma",
+        "drop-files-to-upload": "Yüklemek için dosyaları sürükle",
+        "duplicate-collections": "Koleksiyonları çoğalt",
+        "duplicate-facets": "Fasetleri çoğalt",
+        "duplicate-products": "Ürünleri çoğalt",
+        "edit-facet-values": "Faset değerlerini düzenle",
+        "edit-options": "Seçenekleri düzenle",
+        "facet": "Faset değeri",
+        "facet-value-not-available": "\"{ id }\" faset değeri mevcut değil",
+        "facet-values": "Faset değerleri",
+        "facets": "Fasetler",
+        "filter-by-name": "İsme göre filtrele",
+        "filter-inheritance": "Filtre mirası",
+        "filters": "Filtreler",
+        "inherit-filters-from-parent": "Filtreleri üst öğeden miras al",
+        "live-preview-contents": "Canlı içerik önizlemesi",
+        "manage-variants": "Varyantları yönet",
+        "move-collection-to": "{ name } koleksiyonuna taşı",
+        "move-collections": "Koleksiyonları taşı",
+        "move-collections-success": "{count, plural, one {1 koleksiyon} other {{count} koleksiyon}} taşındı",
+        "move-down": "Aşağı taşı",
+        "move-to": "Taşı",
+        "move-up": "Yukarı taşı",
+        "name": "İsim",
+        "no-channel-selected": "Kanal seçilmedi",
+        "no-featured-asset": "Öne çıkan varlık yok",
+        "no-selection": "Seçim yok",
+        "no-stock-locations-available-on-current-channel": "Mevcut kanalda stok konumu bulunmamaktadır. Ürün eklemeden önce en az bir stok konumu yapılandırın.",
+        "notify-bulk-delete-products-success": "{count, plural, one {1 ürün} other {{count} ürün}} başarıyla silindi",
+        "notify-remove-facets-from-channel-success": "{count, plural, one {1 faset} other {{count} faset}} { channelCode } kanalından başarıyla kaldırıldı",
+        "notify-remove-product-from-channel-error": "Ürün kanaldan kaldırılırken hata oluştu",
+        "notify-remove-product-from-channel-success": "Ürün kanaldan başarıyla kaldırıldı",
+        "notify-remove-variant-from-channel-error": "Ürün varyantı kanaldan kaldırılırken hata oluştu",
+        "notify-remove-variant-from-channel-success": "Ürün varyantı kanaldan başarıyla kaldırıldı",
+        "number-of-variants": "Varyant sayısı",
+        "option": "Seçenek",
+        "option-name": "Seçenek adı",
+        "option-values": "Seçenek değerleri",
+        "out-of-stock-threshold": "Stok tükenme eşiği",
+        "out-of-stock-threshold-tooltip": "Varyantın stokta tükendiği kabul edilecek stok seviyesini ayarlayın. Negatif bir değer, bekleyen siparişleri kabul etmenizi sağlar.",
+        "page-description-options-editor": "Bu ürün için seçenek adlarını ve kodlarını düzenleyin. Seçenek eklemek veya kaldırmak için, ürün varyantları listesinin altındaki \"varyantları yönet\" düğmesini kullanın.",
+        "price": "Fiyat",
+        "price-and-tax": "Fiyat ve vergi",
+        "price-conversion-factor": "Fiyat dönüşüm faktörü",
+        "price-in-channel": "{ channel } kanalındaki fiyat",
+        "price-includes-tax-at": "{ rate }% vergi dahil",
+        "price-with-tax-in-default-zone": "{ rate }% vergi dahil: { price }",
+        "private": "Özel",
+        "product": "Ürün",
+        "product-name": "Ürün adı",
+        "product-options": "Ürün seçenekleri",
+        "product-variant-exists": "Bu seçeneklere sahip bir ürün varyantı zaten var",
+        "product-variants": "Ürün varyantları",
+        "products": "Ürünler",
+        "public": "Herkese açık",
+        "quick-jump-placeholder": "Varyanta git",
+        "rebuild-search-index": "Arama indeksini yeniden oluştur",
+        "reindex-error": "Arama indeksi yeniden oluşturulurken bir hata oluştu",
+        "reindex-successful": "{count, plural, one {1 ürün varyantı} other {{count} ürün varyantı}} {time} ms içinde indekslendi",
+        "reindexing": "Arama indeksi yeniden oluşturuluyor",
+        "remove-from-channel": "Kanaldan kaldır",
+        "remove-option": "Seçeneği kaldır",
+        "remove-product-from-channel": "Ürünü kanaldan kaldır",
+        "remove-product-variant-from-channel": "Ürün varyantını kanaldan kaldır",
+        "reorder-collection": "Koleksiyonu yeniden sırala",
+        "root-collection": "Kök koleksiyon",
+        "run-pending-search-index-updates": "Arama indeksi: {count, plural, one {1 bekleyen güncelleme} other {{count} bekleyen güncelleme}} çalıştır",
+        "running-search-index-updates": "{count, plural, one {1 güncelleme} other {{count} güncelleme}} çalıştırılıyor",
+        "search-asset-name-or-tag": "Varlık adı veya etikete göre ara",
+        "search-for-term": "Terim ara",
+        "search-product-name-or-code": "Ürün adı veya koda göre ara",
+        "select-product": "Ürün seç",
+        "select-product-variant": "Ürün varyantı seç",
+        "sku": "SKU",
+        "slug": "Slug",
+        "slug-pattern-error": "Geçersiz slug",
+        "stock-allocated": "Ayrılmış",
+        "stock-levels": "Stok seviyeleri",
+        "stock-location": "Stok konumu",
+        "stock-locations": "Stok konumları",
+        "stock-on-hand": "Stokta mevcut",
+        "tax-category": "Vergi kategorisi",
+        "taxes": "Vergiler",
+        "track-inventory": "Stok takibi",
+        "track-inventory-false": "Takip etme",
+        "track-inventory-inherit": "Genel ayarlardan miras al",
+        "track-inventory-tooltip": "Etkinleştirildiğinde, ürün varyantlarının stok seviyeleri satış sonrası otomatik olarak güncellenir.",
+        "track-inventory-true": "Takip et",
+        "update-product-option": "Ürün seçeneğini güncelle",
+        "use-global-value": "Genel değeri kullan",
+        "values": "Değerler",
+        "variant": "Varyant",
+        "variant-count": "{count, plural, one {1 varyant} other {{count} varyant}}",
+        "view-contents": "İçeriği görüntüle",
+        "visibility": "Görünürlük"
+    },
+    "common": {
+        "ID": "Kimlik",
+        "add-filter": "Filtre ekle",
+        "add-item-to-list": "Listeye öğe ekle",
+        "add-note": "Not ekle",
+        "apply": "Uygula",
+        "assign-to-channel": "Kanala ata",
+        "assign-to-channels": "{count, plural, one {kanal} other {kanallar}} ata",
+        "available-currencies": "Mevcut para birimleri",
+        "available-languages": "Mevcut diller",
+        "boolean-and": "ve",
+        "boolean-false": "yanlış",
+        "boolean-or": "veya",
+        "boolean-true": "doğru",
+        "breadcrumb": "Gezinti yolu",
+        "browser-default": "Tarayıcı varsayılanı",
+        "cancel": "İptal",
+        "cancel-navigation": "Gezintiyi iptal et",
+        "change-selection": "Seçimi değiştir",
+        "channel": "Kanal",
+        "channels": "Kanallar",
+        "clear-selection": "Seçimi temizle",
+        "code": "Kod",
+        "collapse-entries": "Girdileri daralt",
+        "confirm": "Onayla",
+        "confirm-bulk-assign-to-channel": "Öğeleri kanala atamak istiyor musunuz?",
+        "confirm-bulk-delete": "Seçili öğeleri silmek istiyor musunuz?",
+        "confirm-bulk-remove-from-channel": "Öğeleri mevcut kanaldan kaldırmak istiyor musunuz?",
+        "confirm-delete-note": "Notu silmek istiyor musunuz?",
+        "confirm-navigation": "Gezintiyi onayla",
+        "contents": "İçerik",
+        "create": "Oluştur",
+        "created-at": "Oluşturulma zamanı",
+        "custom-fields": "Özel alanlar",
+        "data-table-filter-date-mode": "Tarih modu",
+        "data-table-filter-date-range": "Tarih aralığı",
+        "data-table-filter-date-relative": "Göreceli tarih",
+        "default-channel": "Varsayılan kanal",
+        "default-language": "Varsayılan dil",
+        "default-tax-category": "Varsayılan vergi kategorisi",
+        "delete": "Sil",
+        "description": "Açıklama",
+        "details": "Detaylar",
+        "disabled": "Devre dışı",
+        "discard-changes": "Değişiklikleri iptal et",
+        "duplicate": "Çoğalt",
+        "edit": "Düzenle",
+        "edit-field": "Alanı düzenle",
+        "edit-note": "Notu düzenle",
+        "enabled": "Etkin",
+        "end-date": "Bitiş tarihi",
+        "expand-entries": "Girdileri genişlet",
+        "extension-running-in-separate-window": "Eklenti ayrı bir pencerede çalışıyor",
+        "filter": "Filtre",
+        "filter-preset-name": "Filtre ön ayar adı",
+        "force-delete": "Zorla sil",
+        "force-remove": "Zorla kaldır",
+        "general": "Genel",
+        "guest": "Misafir",
+        "id": "Kimlik",
+        "image": "Görüntü",
+        "items-per-page-option": "Sayfa başına { count }",
+        "items-selected-count": "{ count } {count, plural, one {öğe} other {öğeler}} seçildi",
+        "keep-editing": "Düzenlemeye devam et",
+        "language": "Dil",
+        "launch-extension": "Eklentiyi başlat",
+        "list-items-and-n-more": "{ articles } ve {nMore} daha",
+        "live-update": "Canlı güncelleme",
+        "locale": "Yerel ayar",
+        "log-out": "Çıkış yap",
+        "login": "Giriş yap",
+        "login-image-title": "Merhaba! Tekrar hoş geldiniz.",
+        "login-title": "{brand} ile giriş yapın",
+        "manage-tags": "Etiketleri yönet",
+        "manage-tags-description": "Etiketleri toplu olarak güncelle veya sil",
+        "medium-date": "Orta tarih",
+        "more": "Daha fazla...",
+        "name": "Ad",
+        "no-alerts": "Uyarı yok",
+        "no-bulk-actions-available": "Toplu işlem yok",
+        "no-channel-selected": "Kanal seçilmedi",
+        "no-results": "Sonuç yok",
+        "not-applicable": "Uygulanamaz",
+        "not-set": "Ayarlanmadı",
+        "notify-assign-to-channel-success-with-count": "{count, plural, one {1 öğe} other {{count} öğe}} başarıyla { channelCode } kanalına atandı",
+        "notify-bulk-update-success": "{ count } { entity } güncellendi",
+        "notify-create-error": "{ entity } oluşturulurken bir hata oluştu",
+        "notify-create-success": "Yeni { entity } oluşturuldu",
+        "notify-delete-error": "{ entity } silinirken bir hata oluştu",
+        "notify-delete-error-with-count": "{count, plural, one {1 öğe} other {{count} öğe}} silinemedi",
+        "notify-delete-success": "{ entity } silindi",
+        "notify-delete-success-with-count": "{count, plural, one {1 öğe} other {{count} öğe}} başarıyla silindi",
+        "notify-duplicate-error": "{ name } çoğaltılamadı: { error }",
+        "notify-duplicate-error-excess": "{ count } {count, plural, one {öğe} other {öğeler}} çoğaltılamadı: { error }",
+        "notify-duplicate-success": "{count, plural, one {1 öğe} other {{count} öğe}} başarıyla çoğaltıldı: { names }",
+        "notify-remove-from-channel-success-with-count": "{count, plural, one {1 öğe} other {{count} öğe}} kanaldan başarıyla kaldırıldı",
+        "notify-save-changes-error": "Değişiklikler kaydedilemedi",
+        "notify-saved-changes": "Değişiklikler kaydedildi",
+        "notify-update-error": "{ entity } güncellenirken bir hata oluştu",
+        "notify-update-success": "{ entity } güncellendi",
+        "notify-updated-tags-success": "Etiketler başarıyla güncellendi",
+        "okay": "Tamam",
+        "operator-contains": "içerir",
+        "operator-eq": "eşittir",
+        "operator-gt": "büyüktür",
+        "operator-lt": "küçüktür",
+        "operator-not-contains": "içermez",
+        "operator-not-eq": "eşit değildir",
+        "operator-notContains": "içermez",
+        "operator-regex": "düzenli ifadeye uyar",
+        "password": "Şifre",
+        "position": "Pozisyon",
+        "price": "Fiyat",
+        "price-with-tax": "Vergi dahil fiyat",
+        "private": "Özel",
+        "public": "Genel",
+        "remember-me": "Beni hatırla",
+        "remove": "Kaldır",
+        "remove-from-channel": "Kanaldan kaldır",
+        "remove-item-from-list": "Liste öğesini kaldır",
+        "rename-filter-preset": "Filtre ön ayarını yeniden adlandır",
+        "reset-columns": "Sütunları sıfırla",
+        "results-count": "{ count } {count, plural, one {sonuç} other {sonuçlar}}",
+        "sample-formatting": "Örnek biçimlendirme",
+        "save-filter-preset": "Ön ayar olarak kaydet",
+        "search-and-filter-list": "Listeyi ara ve filtrele",
+        "search-by-name": "İsme göre ara",
+        "select": "Seç...",
+        "select-display-language": "Görüntüleme dilini seç",
+        "select-items-with-count": "{ count } {count, plural, one {öğe} other {öğeler}} seç",
+        "select-products": "Ürünleri seç",
+        "select-relation-id": "İlişki kimliğini seç",
+        "select-table-columns": "Tablo sütunlarını seç",
+        "select-today": "Bugünü seç",
+        "select-variants": "Varyantları seç",
+        "seller": "Satıcı",
+        "set-language": "Dili ayarla",
+        "short-date": "Kısa tarih",
+        "slug": "Kısa ad",
+        "start-date": "Başlangıç tarihi",
+        "status": "Durum",
+        "tags": "Etiketler",
+        "theme": "Tema",
+        "there-are-unsaved-changes": "Kaydedilmemiş değişiklikler var. Başka bir yere gitmek bu değişiklikleri kaybettirir.",
+        "toggle-all": "Tümünü seç/deselect",
+        "total-items": "{currentStart} - {currentEnd} / {totalItems}",
+        "update": "Güncelle",
+        "updated-at": "Güncellenme zamanı",
+        "username": "Kullanıcı adı",
+        "value": "Değer",
+        "view-contents": "İçeriği görüntüle",
+        "view-next-month": "Sonraki ayı görüntüle",
+        "view-previous-month": "Önceki ayı görüntüle",
+        "visibility": "Görünürlük",
+        "with-selected": "Seçilenlerle..."
+    },
+    "customer": {
+        "add-customer-to-group": "Müşteriyi gruba ekle",
+        "add-customer-to-groups-with-count": "Müşteriyi {count, plural, one {bir gruba} other {{count} gruba}} ekle",
+        "add-customers-to-group": "Müşterileri gruba ekle",
+        "add-customers-to-group-success": "{customerCount, plural, one {Bir müşteri} other {{customerCount} müşteri}} \"{ groupName }\" grubuna eklendi",
+        "add-customers-to-group-with-count": "{count, plural, one {Bir müşteri} other {{count} müşteri}} eklendi",
+        "add-customers-to-group-with-name": "Müşterileri \"{ groupName }\" grubuna ekle",
+        "addresses": "Adresler",
+        "city": "Şehir",
+        "company": "Şirket",
+        "confirm-remove-customer-from-group": "Müşteriyi gruptan kaldırmak istiyor musunuz?",
+        "country": "Ülke",
+        "create-customer-group": "Müşteri grubu oluştur",
+        "create-new-address": "Yeni adres oluştur",
+        "create-new-customer": "Yeni müşteri oluştur",
+        "create-new-customer-group": "Yeni müşteri grubu oluştur",
+        "customer": "Müşteri",
+        "customer-group": "Müşteri grubu",
+        "customer-groups": "Müşteri grupları",
+        "customer-history": "Müşteri geçmişi",
+        "customers": "Müşteriler",
+        "default-billing-address": "Varsayılan fatura adresi",
+        "default-shipping-address": "Varsayılan teslimat adresi",
+        "email-address": "E-posta adresi",
+        "email-verification-sent": "{ emailAddress } adresine doğrulama e-postası gönderildi",
+        "first-name": "Ad",
+        "full-name": "Tam ad",
+        "guest": "Misafir",
+        "history-customer-added-to-group": "Müşteri \"{ groupName }\" grubuna eklendi",
+        "history-customer-address-created": "Adres oluşturuldu",
+        "history-customer-address-deleted": "Adres silindi",
+        "history-customer-address-updated": "Adres güncellendi",
+        "history-customer-detail-updated": "Detaylar güncellendi",
+        "history-customer-email-update-requested": "E-posta güncelleme talep edildi",
+        "history-customer-email-update-verified": "E-posta güncellemesi doğrulandı",
+        "history-customer-password-reset-requested": "Şifre sıfırlama talep edildi",
+        "history-customer-password-reset-verified": "Şifre sıfırlama doğrulandı",
+        "history-customer-password-updated": "Şifre güncellendi",
+        "history-customer-registered": "Müşteri kaydedildi",
+        "history-customer-removed-from-group": "Müşteri \"{ groupName }\" grubundan kaldırıldı",
+        "history-customer-verified": "Müşteri doğrulandı",
+        "history-using-external-auth-strategy": "{ strategy } kullanıldı",
+        "history-using-native-auth-strategy": "E-posta adresi kullanıldı",
+        "last-login": "Son giriş",
+        "last-name": "Soyad",
+        "name": "Ad",
+        "new-email-address": "Yeni e-posta adresi",
+        "no-orders-placed": "Hiç sipariş verilmedi",
+        "not-a-member-of-any-groups": "Bu müşteri hiçbir grubun üyesi değil",
+        "old-email-address": "Eski e-posta adresi",
+        "orders": "Siparişler",
+        "password": "Şifre",
+        "phone-number": "Telefon numarası",
+        "postal-code": "Posta kodu",
+        "province": "İl",
+        "registered": "Kayıtlı",
+        "remove-customers-from-group-success": "{customerCount, plural, one {Bir müşteri} other {{customerCount} müşteri}} \"{ groupName }\" grubundan kaldırıldı",
+        "remove-from-group": "Bu gruptan kaldır",
+        "search-customers-by-email": "E-posta adresine göre ara",
+        "search-customers-by-email-last-name-postal-code": "Ad / E-posta adresi / Posta koduna göre ara",
+        "select-customer": "Müşteri seç",
+        "set-as-default-billing-address": "Varsayılan fatura adresi olarak ayarla",
+        "set-as-default-shipping-address": "Varsayılan teslimat adresi olarak ayarla",
+        "street-line-1": "Sokak satırı 1",
+        "street-line-2": "Sokak satırı 2",
+        "title": "Başlık",
+        "update-customer-group": "Müşteri grubunu güncelle",
+        "verified": "Doğrulandı",
+        "view-group-members": "Grup üyelerini görüntüle"
+    },
+    "dashboard": {
+        "add-widget": "Widget ekle",
+        "latest-orders": "Son siparişler",
+        "metric-average-order-value": "Ortalama sipariş değeri",
+        "metric-number-of-orders": "Sipariş sayısı",
+        "metric-order-total-value": "Toplam sipariş değeri",
+        "metrics": "İstatistikler",
+        "orders-summary": "Sipariş özeti",
+        "remove-widget": "Widget'ı kaldır",
+        "thisMonth": "Bu ay",
+        "thisWeek": "Bu hafta",
+        "today": "Bugün",
+        "total-order-value": "Toplam değer",
+        "total-orders": "Toplam siparişler",
+        "widget-resize": "Yeniden boyutlandır",
+        "widget-width": "Genişlik: {width}",
+        "yesterday": "Dün"
+    },
+    "datetime": {
+        "ago-days": "{count, plural, one {1 gün} other {{count} gün}} önce",
+        "ago-hours": "{count, plural, one {1 saat} other {{count} saat}} önce",
+        "ago-minutes": "{count, plural, one {1 dakika} other {{count} dakika}} önce",
+        "ago-seconds": "{count, plural, =0 {az önce} one {1 saniye} other {{count} saniye}} önce",
+        "ago-years": "{count, plural, one {1 yıl} other {{count} yıl}} önce",
+        "day": "gün",
+        "duration-milliseconds": "{ms}ms",
+        "duration-minutes:seconds": "{m}:{s}dk",
+        "duration-seconds": "{s}sn",
+        "month": "ay",
+        "month-apr": "Nisan",
+        "month-aug": "Ağustos",
+        "month-dec": "Aralık",
+        "month-feb": "Şubat",
+        "month-jan": "Ocak",
+        "month-jul": "Temmuz",
+        "month-jun": "Haziran",
+        "month-mar": "Mart",
+        "month-may": "Mayıs",
+        "month-nov": "Kasım",
+        "month-oct": "Ekim",
+        "month-sep": "Eylül",
+        "relative-past-days": "{count} {count, plural, one {gün} other {gün}} önce",
+        "relative-past-months": "{count} {count, plural, one {ay} other {ay}} önce",
+        "relative-past-years": "{count} {count, plural, one {yıl} other {yıl}} önce",
+        "time": "Zaman",
+        "weekday-fr": "Cuma",
+        "weekday-mo": "Pazartesi",
+        "weekday-sa": "Cumartesi",
+        "weekday-su": "Pazar",
+        "weekday-th": "Perşembe",
+        "weekday-tu": "Salı",
+        "weekday-we": "Çarşamba",
+        "year": "yıl"
+    },
+    "editor": {
+        "image-alt": "Açıklama (alt)",
+        "image-src": "Kaynak",
+        "image-title": "Başlık",
+        "insert-image": "Resim ekle",
+        "link-href": "Bağlantı adresi",
+        "link-target": "Bağlantı hedefi",
+        "link-title": "Bağlantı başlığı",
+        "remove-link": "Bağlantıyı kaldır",
+        "set-link": "Bağlantıyı ayarla"
+    },
+    "error": {
+        "403-forbidden": "\"{ path }\" yoluna erişim izniniz yok. İzniniz yok veya oturumunuz sona erdi.",
+        "could-not-connect-to-server": "{ url } adresindeki Vendure sunucusuna bağlanılamadı",
+        "health-check-failed": "Sistem sağlık kontrolü başarısız oldu",
+        "no-default-shipping-zone-set": "Bu kanalın varsayılan bir teslimat bölgesi yok. Bu, nakliye maliyeti hesaplamasında hatalara neden olabilir.",
+        "no-default-tax-zone-set": "Bu kanalın varsayılan bir vergi bölgesi yok, bu da fiyat hesaplamasında hatalara neden olabilir. Bir bölge oluşturun veya seçin."
+    },
+    "marketing": {
+        "actions": "Eylemler",
+        "add-action": "Eylem ekle",
+        "add-condition": "Koşul ekle",
+        "conditions": "Koşullar",
+        "coupon-code": "Kupon kodu",
+        "create-new-promotion": "Yeni promosyon oluştur",
+        "duplicate-promotions": "Promosyonları çoğalt",
+        "ends-at": "Bitiş tarihi",
+        "per-customer-limit": "Müşteri başına limit",
+        "per-customer-limit-tooltip": "Bu promosyonun bir müşteri tarafından kullanılabileceği maksimum sayı",
+        "promotion": "Promosyon",
+        "search-by-name-or-coupon-code": "İsme veya kupon koduna göre ara",
+        "starts-at": "Başlangıç tarihi",
+        "usage-limit": "Toplam kullanım limiti",
+        "usage-limit-tooltip": "Bu promosyonun toplamda kullanılabileceği maksimum sayı"
+    },
+    "nav": {
+        "administrators": "Yöneticiler",
+        "assets": "Dosyalar",
+        "catalog": "Katalog",
+        "channels": "Kanallar",
+        "collections": "Koleksiyonlar",
+        "countries": "Ülkeler",
+        "customer-groups": "Müşteri grupları",
+        "customers": "Müşteriler",
+        "facets": "Bileşenler",
+        "global-settings": "Genel ayarlar",
+        "job-queue": "Görev kuyruğu",
+        "marketing": "Pazarlama",
+        "orders": "Siparişler",
+        "payment-methods": "Ödeme yöntemleri",
+        "products": "Ürünler",
+        "promotions": "Promosyonlar",
+        "roles": "Roller",
+        "sales": "Satışlar",
+        "sellers": "Satıcılar",
+        "settings": "Ayarlar",
+        "shipping-methods": "Nakliye yöntemleri",
+        "stock-locations": "Stok konumları",
+        "system": "Sistem",
+        "system-status": "Sistem durumu",
+        "tax-categories": "Vergi kategorileri",
+        "tax-rates": "Vergi oranları",
+        "zones": "Bölgeler"
+    },
+    "order": {
+        "add-item-to-order": "Siparişe öğe ekle",
+        "add-note": "Not ekle",
+        "add-payment": "Ödeme yöntemi ekle",
+        "add-payment-to-order": "Siparişe ödeme yöntemi ekle",
+        "add-payment-to-order-success": "Ödeme yöntemi başarıyla eklendi",
+        "add-surcharge": "Ek ücret ekle",
+        "added-items": "Öğeler eklendi",
+        "amount": "Miktar",
+        "arrange-additional-payment": "Ek ödeme düzenle",
+        "assign-order-to-another-customer": "Siparişi başka bir müşteriye ata",
+        "billing-address": "Fatura adresi",
+        "cancel": "İptal",
+        "cancel-entire-order": "Tüm siparişi iptal et",
+        "cancel-fulfillment": "Hazırlığı iptal et",
+        "cancel-modification": "Değişikliği iptal et",
+        "cancel-order": "Siparişi iptal et",
+        "cancel-payment": "Ödemeyi iptal et",
+        "cancel-reason-customer-request": "Müşteri talebi",
+        "cancel-reason-not-available": "Mevcut değil",
+        "cancel-selected-items": "Seçili öğeleri iptal et",
+        "cancel-specified-items": "Belirtilen öğeleri iptal et",
+        "cancellation-reason": "İptal nedeni",
+        "cancelled-order-items-success": "{ count } { count, plural, one {öğe} other {öğeler} } iptal edildi",
+        "cancelled-order-success": "Sipariş iptal edildi",
+        "complete-draft-order": "Taslağı tamamla",
+        "confirm-modifications": "Değişiklikleri onayla",
+        "contents": "İçerik",
+        "create-fulfillment": "Hazırlık oluştur",
+        "create-fulfillment-success": "Hazırlık başarıyla oluşturuldu",
+        "customer": "Müşteri",
+        "delete-draft-order": "Taslağı sil",
+        "draft-order": "Taslak sipariş",
+        "edit-billing-address": "Fatura adresini düzenle",
+        "edit-shipping-address": "Teslimat adresini düzenle",
+        "error-message": "Hata mesajı",
+        "existing-address": "Mevcut adres",
+        "existing-customer": "Mevcut müşteri",
+        "filter-is-active": "Filtre aktif",
+        "fulfill": "Hazırla",
+        "fulfill-order": "Siparişi hazırla",
+        "fulfillment": "Hazırlık",
+        "fulfillment-method": "Hazırlık yöntemi",
+        "history-coupon-code-applied": "Kupon kodu uygulandı",
+        "history-coupon-code-removed": "Kupon kodu kaldırıldı",
+        "history-customer-updated": "Müşteri güncellendi",
+        "history-fulfillment-created": "Hazırlık oluşturuldu",
+        "history-fulfillment-delivered": "Hazırlık teslim edildi",
+        "history-fulfillment-shipped": "Hazırlık gönderildi",
+        "history-fulfillment-transition": "Hazırlık {from} durumundan {to} durumuna geçirildi",
+        "history-items-cancelled": "{count} {count, plural, one {öğe iptal edildi} other {öğeler iptal edildi}}",
+        "history-order-cancelled": "Sipariş iptal edildi",
+        "history-order-created": "Sipariş oluşturuldu",
+        "history-order-fulfilled": "Sipariş hazırlandı",
+        "history-order-modified": "Sipariş değiştirildi",
+        "history-order-transition": "Sipariş {from} durumundan {to} durumuna geçirildi",
+        "history-payment-settled": "Ödeme tamamlandı",
+        "history-payment-transition": "Ödeme #{id} {from} durumundan {to} durumuna geçirildi",
+        "history-refund-transition": "İade #{id} {from} durumundan {to} durumuna geçirildi",
+        "item-count": "{count} {count, plural, one {öğe} other {öğeler}}",
+        "line-fulfillment-all": "Tüm öğeler hazırlandı",
+        "line-fulfillment-none": "Hiçbir öğe hazırlanmadı",
+        "line-fulfillment-partial": "{ count } / { total } {count, plural, one {öğe hazırlandı} other {öğeler hazırlandı}}",
+        "manually-transition-to-state": "Sipariş durumunu manuel olarak değiştir...",
+        "manually-transition-to-state-message": "Sipariş durumunu manuel olarak değiştirin. Durumlar belirli kurallara tabidir ve bazı geçişler engellenebilir.",
+        "modification-adding-items": "{count} {count, plural, one {öğe} other {öğeler}} ekleniyor",
+        "modification-adding-surcharges": "{count} {count, plural, one {ek ücret} other {ek ücretler}} ekleniyor",
+        "modification-adjusting-lines": "{count} {count, plural, one {satır} other {satırlar}} ayarlanıyor",
+        "modification-not-settled": "Tamamlanmadı",
+        "modification-recalculate-shipping": "Nakliye maliyetini yeniden hesapla",
+        "modification-settled": "Değişiklik tamamlandı",
+        "modification-summary": "Değişiklik özeti",
+        "modification-updating-billing-address": "Fatura adresi güncelleniyor",
+        "modification-updating-shipping-address": "Teslimat adresi güncelleniyor",
+        "modified-items": "Değiştirilen öğeler",
+        "modify-order": "Siparişi değiştir",
+        "modify-order-price-difference": "Fiyat farkı",
+        "net-price": "Net fiyat",
+        "new-customer": "Yeni müşteri",
+        "no-modifications-made": "Hiçbir değişiklik yapılmadı",
+        "note": "Not",
+        "note-is-private": "Not özel",
+        "note-only-visible-to-administrators": "Sadece yöneticiler tarafından görülebilir",
+        "note-visible-to-customer": "Yöneticiler ve müşteri tarafından görülebilir",
+        "order": "Sipariş",
+        "order-history": "Sipariş geçmişi",
+        "order-is-empty": "Sipariş boş",
+        "order-state-diagram": "Sipariş durumu diyagramı",
+        "order-type": "Sipariş türü",
+        "order-type-aggregate": "Toplu",
+        "order-type-regular": "Normal",
+        "order-type-seller": "Satıcı",
+        "orders": "Siparişler",
+        "original-quantity-at-checkout": "Ödeme sırasında orijinal miktar",
+        "payment": "Ödeme",
+        "payment-amount": "Ödeme miktarı",
+        "payment-metadata": "Ödeme meta verileri",
+        "payment-method": "Ödeme yöntemi",
+        "payment-state": "Durum",
+        "payments": "Ödemeler",
+        "placed-at": "Yerleştirildi",
+        "preview-changes": "Değişiklikleri önizle",
+        "previous-customer": "Önceki müşteri",
+        "product-name": "Ürün adı",
+        "product-sku": "SKU",
+        "promotions-applied": "Uygulanan promosyonlar",
+        "prorated-unit-price": "Birim fiyat",
+        "quantity": "Miktar",
+        "refund": "İade",
+        "refund-amount": "İade miktarı",
+        "refund-and-cancel-order": "İade ve siparişi iptal et",
+        "refund-cancellation-reason": "İade/iptal nedeni",
+        "refund-cancellation-reason-required": "İade/iptal nedeni gerekli",
+        "refund-metadata": "İade meta verileri",
+        "refund-order-failed": "Sipariş başarısız oldu",
+        "refund-order-success": "Sipariş iade edildi",
+        "refund-reason": "İade nedeni",
+        "refund-reason-customer-request": "Müşteri talebi",
+        "refund-reason-not-available": "Mevcut değil",
+        "refund-shipping": "Nakliye iadesi",
+        "refund-this-payment": "Bu ödemeyi iade et",
+        "refund-total": "Toplam iade",
+        "refund-total-error": "Toplam iade {min} ile {max} arasında olmalıdır",
+        "refund-total-warning": "Lütfen toplam iade miktarına eşdeğer iade tutarlarını belirtin.",
+        "refund-with-amount": "{amount} iade et",
+        "refundable-amount": "İade edilebilir miktar",
+        "refunded-count": "{count} {count, plural, one {öğe iade edildi} other {öğeler iade edildi}}",
+        "removed-items": "Kaldırılan öğeler",
+        "return-to-stock": "Stoka geri dön",
+        "search-by-order-filters": "Sipariş numarası / müşteri adı / işlem numarasına göre ara",
+        "select-address": "Adres seç",
+        "select-shipping-method": "Nakliye yöntemini seç",
+        "select-state": "Durum seç",
+        "seller-orders": "Satıcı siparişleri",
+        "set-billing-address": "Fatura adresini ayarla",
+        "set-coupon-codes": "Kupon kodlarını ayarla",
+        "set-customer-for-order": "Sipariş için müşteri ayarla",
+        "set-customer-success": "Müşteri başarıyla ayarlandı",
+        "set-fulfillment-state": "{state} olarak işaretle",
+        "set-shipping-address": "Teslimat adresini ayarla",
+        "set-shipping-method": "Nakliye yöntemini ayarla",
+        "settle-payment": "Ödemeyi tamamla",
+        "settle-payment-error": "Ödeme başarısız oldu",
+        "settle-payment-success": "Ödeme başarıyla tamamlandı",
+        "settle-refund": "İadeyi tamamla",
+        "settle-refund-manual-instructions": "Ödeme sağlayıcısı ({method}) aracılığıyla manuel olarak iade ettikten sonra, işlem numarasını buraya girin.",
+        "settle-refund-success": "İade başarıyla tamamlandı",
+        "shipping": "Nakliye",
+        "shipping-address": "Teslimat adresi",
+        "shipping-cancelled": "Nakliye iptal edildi",
+        "shipping-method": "Nakliye yöntemi",
+        "state": "Durum",
+        "sub-total": "Ara toplam",
+        "successfully-updated-fulfillment": "Hazırlık başarıyla güncellendi",
+        "surcharges": "Ek ücretler",
+        "tax-base": "Vergi matrahı",
+        "tax-description": "Vergi açıklaması",
+        "tax-rate": "Vergi oranı",
+        "tax-summary": "Vergi özeti",
+        "tax-total": "Toplam vergi",
+        "total": "Toplam",
+        "tracking-code": "Takip numarası",
+        "transaction-id": "İşlem numarası",
+        "transition-to-state": "Duruma geçiş: { state }",
+        "transitioned-payment-to-state-success": "Ödeme durumu { state } olarak başarıyla değiştirildi",
+        "transitioned-to-state-success": "Duruma geçiş { state } başarıyla tamamlandı",
+        "unable-to-transition-to-state-try-another": "Sipariş \"{state}\" durumuna geçirilemedi. Lütfen başka bir durum seçin.",
+        "unfulfilled": "Hazırlanmamış",
+        "unit-price": "Birim fiyat"
+    },
+    "settings": {
+        "add-countries-to-zone": "{ zoneName } bölgesine ülke ekle",
+        "add-countries-to-zone-success": "{ countryCount } {countryCount, plural, one {ülke eklendi} other {ülke eklendi}} \"{ zoneName }\" bölgesine eklendi",
+        "add-products-to-test-order": "Test siparişine ürün ekle",
+        "administrator": "Yönetici",
+        "channel": "Kanal",
+        "channel-token": "Kanal jetonu",
+        "country": "Ülke",
+        "create-new-channel": "Yeni kanal oluştur",
+        "create-new-country": "Yeni ülke oluştur",
+        "create-new-payment-method": "Yeni ödeme yöntemi oluştur",
+        "create-new-role": "Yeni rol oluştur",
+        "create-new-seller": "Yeni satıcı oluştur",
+        "create-new-shipping-method": "Yeni nakliye yöntemi oluştur",
+        "create-new-tax-category": "Yeni vergi kategorisi oluştur",
+        "create-new-tax-rate": "Yeni vergi oranı oluştur",
+        "create-new-zone": "Yeni bölge oluştur",
+        "default-currency": "Varsayılan para birimi",
+        "default-role-label": "Bu varsayılan roldür ve değiştirilemez",
+        "default-shipping-zone": "Varsayılan teslimat bölgesi",
+        "default-tax-zone": "Varsayılan vergi bölgesi",
+        "defaults": "Varsayılanlar",
+        "eligible": "Uygun",
+        "email-address": "E-posta adresi",
+        "email-address-or-identifier": "E-posta adresi veya kimlik",
+        "first-name": "Ad",
+        "fulfillment-handler": "Hazırlık yöneticisi",
+        "global-available-languages-tooltip": "Tüm kanallar için kullanılabilir dilleri belirler. Bireysel kanallar bu dillerin bir alt kümesini destekleyebilir.",
+        "global-out-of-stock-threshold": "Genel stok tükenme eşiği",
+        "global-out-of-stock-threshold-tooltip": "Bir varyantın stokta tükenmiş olarak kabul edileceği stok seviyesini ayarlayın. Negatif bir değer girmek, bekleyen siparişleri kabul etmeyi sağlar. Değer, ürün varyantı bazında ayrı ayrı ayarlanabilir.",
+        "last-name": "Soyad",
+        "no-eligible-shipping-methods": "Uygun nakliye yöntemi yok",
+        "password": "Şifre",
+        "payment-eligibility-checker": "Ödeme uygunluk denetleyicisi",
+        "payment-handler": "Ödeme yöneticisi",
+        "payment-method": "Ödeme yöntemi",
+        "permissions": "İzinler",
+        "prices-include-tax": "Varsayılan bölge için KDV dahil fiyatlar",
+        "profile": "Profil",
+        "rate": "Oran",
+        "remove-countries-from-zone-success": "{ countryCount } {countryCount, plural, one {ülke kaldırıldı} other {ülke kaldırıldı}} \"{ zoneName }\" bölgesinden kaldırıldı",
+        "remove-from-zone": "Bölgeden kaldır",
+        "role": "Rol",
+        "roles": "Roller",
+        "search-by-product-name-or-sku": "Ürün adı veya SKU'ya göre ara",
+        "seller": "Satıcı",
+        "shipping-calculator": "Nakliye hesaplayıcı",
+        "shipping-eligibility-checker": "Nakliye uygunluk denetleyicisi",
+        "shipping-method": "Nakliye yöntemi",
+        "tax-category": "Vergi kategorisi",
+        "tax-rate": "Vergi oranı",
+        "test-address": "Test adresi",
+        "test-result": "Test sonucu",
+        "test-shipping-method": "Test nakliye yöntemi",
+        "test-shipping-methods": "Test nakliye yöntemleri",
+        "track-inventory-default": "Varsayılan olarak envanteri takip et",
+        "view-zone-members": "Bölge üyelerini görüntüle",
+        "zone": "Bölge"
+    },
+    "state": {
+        "adding-items": "Öğeler ekleniyor",
+        "arranging-additional-payment": "Ek ödeme düzenleniyor",
+        "arranging-payment": "Ödeme düzenleniyor",
+        "authorized": "Yetkilendirilmiş",
+        "cancelled": "İptal edildi",
+        "created": "Oluşturuldu",
+        "declined": "Reddedildi",
+        "delivered": "Teslim edildi",
+        "draft": "Taslak",
+        "error": "Hata",
+        "failed": "Başarısız",
+        "modifying": "Değiştiriliyor",
+        "partially-delivered": "Kısmen teslim edildi",
+        "partially-shipped": "Kısmen gönderildi",
+        "payment-authorized": "Ödeme yetkilendirildi",
+        "payment-settled": "Ödeme tamamlandı",
+        "pending": "Beklemede",
+        "settled": "Tamamlandı",
+        "shipped": "Gönderildi"
+    },
+    "system": {
+        "all-job-queues": "Tüm görev kuyrukları",
+        "health-all-systems-up": "Tüm sistemler çalışıyor",
+        "health-error": "Hata: bir veya daha fazla sistem arızalı!",
+        "health-last-checked": "Son kontrol",
+        "health-message": "Mesaj",
+        "health-refresh": "Yenile",
+        "health-status": "Durum",
+        "health-status-down": "Arızalı",
+        "health-status-up": "Çalışıyor",
+        "job-data": "Görev verisi",
+        "job-duration": "Süre",
+        "job-error": "Görev hatası",
+        "job-queue-name": "Görev kuyruğu adı",
+        "job-result": "Görev sonucu",
+        "job-state": "Görev durumu",
+        "job-state-all": "Tüm durumlar",
+        "job-state-cancelled": "İptal edildi",
+        "job-state-completed": "Tamamlandı",
+        "job-state-failed": "Başarısız",
+        "job-state-pending": "Beklemede",
+        "job-state-running": "Çalışıyor"
+    }
+}

+ 4 - 17
packages/admin-ui/src/lib/static/i18n-messages/uk.json

@@ -6,7 +6,6 @@
     "add-asset": "Додати медіа-об'єкт",
     "add-asset": "Додати медіа-об'єкт",
     "add-asset-with-count": "Додати {count, plural, =0 {медіа-об'єктів} one {1 медіа-об'єкт} other {{count} медіа-об'єктів}}",
     "add-asset-with-count": "Додати {count, plural, =0 {медіа-об'єктів} one {1 медіа-об'єкт} other {{count} медіа-об'єктів}}",
     "assets-selected-count": "Вибрано { count } медіа-об'єктів",
     "assets-selected-count": "Вибрано { count } медіа-об'єктів",
-    "change-asset": "Змінити медіа-об'єкт",
     "dimensions": "Розміри",
     "dimensions": "Розміри",
     "focal-point": "Точка фокусу",
     "focal-point": "Точка фокусу",
     "notify-create-assets-success": "Створено {count, plural, one {новий медіа-об'єкт} other {{count} нових медіа-об'єктів}}",
     "notify-create-assets-success": "Створено {count, plural, one {новий медіа-об'єкт} other {{count} нових медіа-об'єктів}}",
@@ -17,7 +16,6 @@
     "select-assets": "Вибрати медіа-об'єкты",
     "select-assets": "Вибрати медіа-об'єкты",
     "set-as-featured-asset": "Встановити як обраний медіа-об'єкт",
     "set-as-featured-asset": "Встановити як обраний медіа-об'єкт",
     "set-focal-point": "Встановити точку фокусу",
     "set-focal-point": "Встановити точку фокусу",
-    "size": "Розмір",
     "source-file": "Початковий файл",
     "source-file": "Початковий файл",
     "unset-focal-point": "Видалити точку фокусу",
     "unset-focal-point": "Видалити точку фокусу",
     "update-focal-point": "Оновити точку фокусу",
     "update-focal-point": "Оновити точку фокусу",
@@ -47,7 +45,6 @@
     "profile": "Профіль",
     "profile": "Профіль",
     "promotions": "Акції",
     "promotions": "Акції",
     "roles": "Ролі",
     "roles": "Ролі",
-    "scheduled-tasks": "Завдання",
     "seller-orders": "Замовлення продавця",
     "seller-orders": "Замовлення продавця",
     "sellers": "Продавці",
     "sellers": "Продавці",
     "shipping-methods": "Способи доставки",
     "shipping-methods": "Способи доставки",
@@ -240,14 +237,12 @@
     "delete": "Видалити",
     "delete": "Видалити",
     "description": "Опис",
     "description": "Опис",
     "details": "Подробиці",
     "details": "Подробиці",
-    "disable": "Виключити",
     "disabled": "Виключений",
     "disabled": "Виключений",
     "discard-changes": "Скасувати зміни",
     "discard-changes": "Скасувати зміни",
     "duplicate": "Дублювати",
     "duplicate": "Дублювати",
     "edit": "Редагувати",
     "edit": "Редагувати",
     "edit-field": "Редагувати поле",
     "edit-field": "Редагувати поле",
     "edit-note": "Редагувати замітку",
     "edit-note": "Редагувати замітку",
-    "enable": "Включити",
     "enabled": "Включений",
     "enabled": "Включений",
     "end-date": "Дата закінчення",
     "end-date": "Дата закінчення",
     "expand-entries": "Розгорнути записи",
     "expand-entries": "Розгорнути записи",
@@ -279,7 +274,7 @@
     "name": "Ім'я",
     "name": "Ім'я",
     "no-alerts": "Немає сповіщень",
     "no-alerts": "Немає сповіщень",
     "no-bulk-actions-available": "Масові дії недоступні",
     "no-bulk-actions-available": "Масові дії недоступні",
-    "no-channel-selected": "Не вибрано канал",
+    "no-channel-selected": "",
     "no-results": "Немає результатів",
     "no-results": "Немає результатів",
     "not-applicable": "Не застосовно",
     "not-applicable": "Не застосовно",
     "not-set": "Не задано",
     "not-set": "Не задано",
@@ -480,7 +475,6 @@
     "year": "рік"
     "year": "рік"
   },
   },
   "editor": {
   "editor": {
-    "height": "Висота",
     "image-alt": "Опис (alt)",
     "image-alt": "Опис (alt)",
     "image-src": "Джерело",
     "image-src": "Джерело",
     "image-title": "Заголовок",
     "image-title": "Заголовок",
@@ -489,8 +483,7 @@
     "link-target": "Ціль посилання",
     "link-target": "Ціль посилання",
     "link-title": "Заголовок посилання",
     "link-title": "Заголовок посилання",
     "remove-link": "Удалить",
     "remove-link": "Удалить",
-    "set-link": "Встановити посилання",
-    "width": "Ширина"
+    "set-link": "Встановити посилання"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "В даний час у вас немає прав доступу \"{ path }\". Або у вас немає дозволів на перегляд, або термін вашого сеансу минув.",
     "403-forbidden": "В даний час у вас немає прав доступу \"{ path }\". Або у вас немає дозволів на перегляд, або термін вашого сеансу минув.",
@@ -535,7 +528,6 @@
     "promotions": "Промо-акції",
     "promotions": "Промо-акції",
     "roles": "Ролі",
     "roles": "Ролі",
     "sales": "Продажі",
     "sales": "Продажі",
-    "scheduled-tasks": "Завдання",
     "sellers": "Продавці",
     "sellers": "Продавці",
     "settings": "Налаштування",
     "settings": "Налаштування",
     "shipping-methods": "Способи доставки",
     "shipping-methods": "Способи доставки",
@@ -683,7 +675,7 @@
     "set-billing-address": "Встановити адресу для рахунків",
     "set-billing-address": "Встановити адресу для рахунків",
     "set-coupon-codes": "Встановити промокоди",
     "set-coupon-codes": "Встановити промокоди",
     "set-customer-for-order": "Встановити клієнта",
     "set-customer-for-order": "Встановити клієнта",
-    "set-customer-success": "Клієнт успішно встановлений",
+    "set-customer-success": "",
     "set-fulfillment-state": "Помітити як {state}",
     "set-fulfillment-state": "Помітити як {state}",
     "set-shipping-address": "Встановити адресу доставки",
     "set-shipping-address": "Встановити адресу доставки",
     "set-shipping-method": "Встановити спосіб доставки",
     "set-shipping-method": "Встановити спосіб доставки",
@@ -817,11 +809,6 @@
     "job-state-completed": "Завершено",
     "job-state-completed": "Завершено",
     "job-state-failed": "Не вдалося",
     "job-state-failed": "Не вдалося",
     "job-state-pending": "В очікуванні",
     "job-state-pending": "В очікуванні",
-    "job-state-running": "Виконується",
-    "last-executed-at": "Останнє виконання",
-    "last-result": "Останній результат",
-    "next-execution-at": "Наступне виконання",
-    "schedule": "Розклад",
-    "task-id": "ID завдання"
+    "job-state-running": "Виконується"
   }
   }
 }
 }

+ 224 - 237
packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json

@@ -6,7 +6,6 @@
     "add-asset": "添加资源",
     "add-asset": "添加资源",
     "add-asset-with-count": "添加{count}个资源",
     "add-asset-with-count": "添加{count}个资源",
     "assets-selected-count": "已选择{ count }个资源",
     "assets-selected-count": "已选择{ count }个资源",
-    "change-asset": "修改资源",
     "dimensions": "图片尺寸",
     "dimensions": "图片尺寸",
     "focal-point": "图片焦点",
     "focal-point": "图片焦点",
     "notify-create-assets-success": "创建了{count}个新资源",
     "notify-create-assets-success": "创建了{count}个新资源",
@@ -17,7 +16,6 @@
     "select-assets": "选择资源",
     "select-assets": "选择资源",
     "set-as-featured-asset": "设置为特征图片",
     "set-as-featured-asset": "设置为特征图片",
     "set-focal-point": "设置图片焦点",
     "set-focal-point": "设置图片焦点",
-    "size": "图片尺寸",
     "source-file": "源文件",
     "source-file": "源文件",
     "unset-focal-point": "删除焦点设置",
     "unset-focal-point": "删除焦点设置",
     "update-focal-point": "重新设置焦点",
     "update-focal-point": "重新设置焦点",
@@ -42,14 +40,13 @@
     "modifying-order": "修改订单",
     "modifying-order": "修改订单",
     "orders": "订单管理",
     "orders": "订单管理",
     "payment-methods": "支付管理",
     "payment-methods": "支付管理",
-    "product-options": "商品规格",
+    "product-options": "",
     "products": "产品",
     "products": "产品",
     "profile": "个人资料",
     "profile": "个人资料",
     "promotions": "优惠券管理",
     "promotions": "优惠券管理",
     "roles": "角色管理",
     "roles": "角色管理",
-    "scheduled-tasks": "任务管理",
-    "seller-orders": "卖家订单",
-    "sellers": "卖家管理",
+    "seller-orders": "",
+    "sellers": "",
     "shipping-methods": "配送方式管理",
     "shipping-methods": "配送方式管理",
     "stock-locations": "库存位置",
     "stock-locations": "库存位置",
     "system-status": "系统状态",
     "system-status": "系统状态",
@@ -61,12 +58,12 @@
     "add-facet-value": "添加特征值",
     "add-facet-value": "添加特征值",
     "add-facets": "添加特征",
     "add-facets": "添加特征",
     "add-option": "添加规格组",
     "add-option": "添加规格组",
-    "add-price-in-another-currency": "在其他货币中添加价格",
-    "add-stock-location": "添加库存位置",
-    "add-stock-to-location": "添加库存到位置",
-    "asset": "资源",
-    "asset-preview-links": "资源预览链接",
-    "assets": "资源",
+    "add-price-in-another-currency": "",
+    "add-stock-location": "",
+    "add-stock-to-location": "",
+    "asset": "",
+    "asset-preview-links": "",
+    "assets": "",
     "assign-product-to-channel-success": "成功将产品添加至销售渠道\"{ channel }\"",
     "assign-product-to-channel-success": "成功将产品添加至销售渠道\"{ channel }\"",
     "assign-products-to-channel": "分配产品到销售渠道",
     "assign-products-to-channel": "分配产品到销售渠道",
     "assign-to-named-channel": "分配到{ channelCode }",
     "assign-to-named-channel": "分配到{ channelCode }",
@@ -76,87 +73,87 @@
     "auto-update-product-variant-name": "自动更新不同商品变体名称",
     "auto-update-product-variant-name": "自动更新不同商品变体名称",
     "calculated-price": "计算价格",
     "calculated-price": "计算价格",
     "calculated-price-tooltip": "有一个配置的自定义价格计算,修改了上面设置的价格:",
     "calculated-price-tooltip": "有一个配置的自定义价格计算,修改了上面设置的价格:",
-    "cannot-create-variants-without-options": "无法在没有选项的情况下创建变体",
+    "cannot-create-variants-without-options": "",
     "channel-price-preview": "渠道价格预览",
     "channel-price-preview": "渠道价格预览",
-    "collection": "系列",
+    "collection": "",
     "collection-contents": "系列产品",
     "collection-contents": "系列产品",
-    "collections": "系列",
-    "confirm-bulk-delete-products": "确认删除商品?",
-    "confirm-cancel": "确认取消?",
+    "collections": "",
+    "confirm-bulk-delete-products": "",
+    "confirm-cancel": "",
     "confirm-delete-assets": "确认删除{count}个资源吗?",
     "confirm-delete-assets": "确认删除{count}个资源吗?",
     "confirm-delete-facet-value": "确认删除特征值?",
     "confirm-delete-facet-value": "确认删除特征值?",
     "confirm-delete-product": "确认删除商品?",
     "confirm-delete-product": "确认删除商品?",
-    "confirm-delete-product-option": "确认删除规格?",
-    "confirm-delete-product-option-group": "确认删除规格组?",
-    "confirm-delete-product-option-group-body": "确认删除规格组?",
+    "confirm-delete-product-option": "",
+    "confirm-delete-product-option-group": "",
+    "confirm-delete-product-option-group-body": "",
     "confirm-delete-product-variant": "确认删除商品规格?",
     "confirm-delete-product-variant": "确认删除商品规格?",
-    "confirm-deletion-of-unused-variants-body": "确认删除未使用的规格?",
-    "confirm-deletion-of-unused-variants-title": "确认删除未使用的规格?",
-    "create-draft-order": "创建草稿订单",
+    "confirm-deletion-of-unused-variants-body": "",
+    "confirm-deletion-of-unused-variants-title": "",
+    "create-draft-order": "",
     "create-facet-value": "创建新特征值",
     "create-facet-value": "创建新特征值",
     "create-new-collection": "添加系列",
     "create-new-collection": "添加系列",
     "create-new-facet": "添加特征",
     "create-new-facet": "添加特征",
     "create-new-product": "添加商品",
     "create-new-product": "添加商品",
-    "create-new-stock-location": "添加库存位置",
-    "create-product-option-group": "创建规格组",
-    "create-product-variant": "创建商品规格",
-    "default-currency": "默认货币",
-    "do-not-inherit-filters": "不继承过滤条件",
+    "create-new-stock-location": "",
+    "create-product-option-group": "",
+    "create-product-variant": "",
+    "default-currency": "",
+    "do-not-inherit-filters": "",
     "drop-files-to-upload": "拖拽文件上传",
     "drop-files-to-upload": "拖拽文件上传",
     "duplicate-collections": "复制集合",
     "duplicate-collections": "复制集合",
     "duplicate-facets": "复制外观",
     "duplicate-facets": "复制外观",
     "duplicate-products": "复制产品",
     "duplicate-products": "复制产品",
-    "edit-facet-values": "编辑特征值",
-    "edit-options": "编辑规格",
-    "facet": "特征",
-    "facet-value-not-available": "特征值不存在",
+    "edit-facet-values": "",
+    "edit-options": "",
+    "facet": "",
+    "facet-value-not-available": "",
     "facet-values": "特征值列表",
     "facet-values": "特征值列表",
-    "facets": "特征",
+    "facets": "",
     "filter-by-name": "按名字过滤",
     "filter-by-name": "按名字过滤",
-    "filter-inheritance": "继承过滤条件",
+    "filter-inheritance": "",
     "filters": "过滤条件",
     "filters": "过滤条件",
-    "inherit-filters-from-parent": "从父级继承过滤条件",
-    "live-preview-contents": "实时预览",
+    "inherit-filters-from-parent": "",
+    "live-preview-contents": "",
     "manage-variants": "商品规格管理",
     "manage-variants": "商品规格管理",
-    "move-collection-to": "移动系列到",
-    "move-collections": "移动系列",
-    "move-collections-success": "系列移动成功",
+    "move-collection-to": "",
+    "move-collections": "",
+    "move-collections-success": "",
     "move-down": "向下移",
     "move-down": "向下移",
     "move-to": "移至",
     "move-to": "移至",
     "move-up": "向上移",
     "move-up": "向上移",
-    "name": "名称",
+    "name": "",
     "no-channel-selected": "未选择销售渠道",
     "no-channel-selected": "未选择销售渠道",
     "no-featured-asset": "无特征图片",
     "no-featured-asset": "无特征图片",
     "no-selection": "尚未选择",
     "no-selection": "尚未选择",
-    "no-stock-locations-available-on-current-channel": "当前渠道没有库存位置",
-    "notify-bulk-delete-products-success": "成功删除商品",
-    "notify-remove-facets-from-channel-success": "成功从渠道中移除特征",
+    "no-stock-locations-available-on-current-channel": "",
+    "notify-bulk-delete-products-success": "",
+    "notify-remove-facets-from-channel-success": "",
     "notify-remove-product-from-channel-error": "从渠道中移除商品失败",
     "notify-remove-product-from-channel-error": "从渠道中移除商品失败",
     "notify-remove-product-from-channel-success": "成功从渠道中移除商品",
     "notify-remove-product-from-channel-success": "成功从渠道中移除商品",
     "notify-remove-variant-from-channel-error": "从渠道中移除商品变体失败",
     "notify-remove-variant-from-channel-error": "从渠道中移除商品变体失败",
     "notify-remove-variant-from-channel-success": "成功从渠道中移除商品变体",
     "notify-remove-variant-from-channel-success": "成功从渠道中移除商品变体",
-    "number-of-variants": "商品规格数量",
+    "number-of-variants": "",
     "option": "规格",
     "option": "规格",
     "option-name": "规格名称",
     "option-name": "规格名称",
     "option-values": "规格列表(按回车键添加)",
     "option-values": "规格列表(按回车键添加)",
     "out-of-stock-threshold": "售空限制",
     "out-of-stock-threshold": "售空限制",
     "out-of-stock-threshold-tooltip": "当此规格产品库存值低于此限制时,产品将为售空状态。设置为负数设置此规格产品为缺货状态。",
     "out-of-stock-threshold-tooltip": "当此规格产品库存值低于此限制时,产品将为售空状态。设置为负数设置此规格产品为缺货状态。",
-    "page-description-options-editor": "规格编辑器",
+    "page-description-options-editor": "",
     "price": "价格",
     "price": "价格",
-    "price-and-tax": "价格(含税)",
+    "price-and-tax": "",
     "price-conversion-factor": "价格换算因数",
     "price-conversion-factor": "价格换算因数",
     "price-in-channel": "渠道{ channel }价格",
     "price-in-channel": "渠道{ channel }价格",
     "price-includes-tax-at": "含税{ rate }%",
     "price-includes-tax-at": "含税{ rate }%",
     "price-with-tax-in-default-zone": "含税{ rate }% 价格{ price }",
     "price-with-tax-in-default-zone": "含税{ rate }% 价格{ price }",
     "private": "隐藏",
     "private": "隐藏",
-    "product": "商品",
+    "product": "",
     "product-name": "商品名称",
     "product-name": "商品名称",
-    "product-options": "商品规格",
-    "product-variant-exists": "商品规格已存在",
+    "product-options": "",
+    "product-variant-exists": "",
     "product-variants": "商品规格",
     "product-variants": "商品规格",
     "products": "产品",
     "products": "产品",
     "public": "公开",
     "public": "公开",
-    "quick-jump-placeholder": "快速跳转",
+    "quick-jump-placeholder": "",
     "rebuild-search-index": "重建搜索索引",
     "rebuild-search-index": "重建搜索索引",
     "reindex-error": "重建索引失败",
     "reindex-error": "重建索引失败",
     "reindex-successful": "已成功重建{count}个产品索引,耗时{time}毫秒",
     "reindex-successful": "已成功重建{count}个产品索引,耗时{time}毫秒",
@@ -165,10 +162,10 @@
     "remove-option": "移除选项",
     "remove-option": "移除选项",
     "remove-product-from-channel": "从销售渠道移除商品",
     "remove-product-from-channel": "从销售渠道移除商品",
     "remove-product-variant-from-channel": "从销售渠道移除商品变体",
     "remove-product-variant-from-channel": "从销售渠道移除商品变体",
-    "reorder-collection": "重新排序系列",
-    "root-collection": "根系列",
-    "run-pending-search-index-updates": "运行待处理搜索索引更新",
-    "running-search-index-updates": "正在运行搜索索引更新",
+    "reorder-collection": "",
+    "root-collection": "",
+    "run-pending-search-index-updates": "",
+    "running-search-index-updates": "",
     "search-asset-name-or-tag": "输入要搜索的资源名称或标签",
     "search-asset-name-or-tag": "输入要搜索的资源名称或标签",
     "search-for-term": "输入搜索条目",
     "search-for-term": "输入搜索条目",
     "search-product-name-or-code": "输入要搜索的商品名称或商品编码",
     "search-product-name-or-code": "输入要搜索的商品名称或商品编码",
@@ -178,56 +175,56 @@
     "slug": "名称缩写",
     "slug": "名称缩写",
     "slug-pattern-error": "名称缩写无效",
     "slug-pattern-error": "名称缩写无效",
     "stock-allocated": "已分配",
     "stock-allocated": "已分配",
-    "stock-levels": "库存水平",
-    "stock-location": "库存位置",
+    "stock-levels": "",
+    "stock-location": "",
     "stock-locations": "库存位置",
     "stock-locations": "库存位置",
     "stock-on-hand": "当前库存",
     "stock-on-hand": "当前库存",
     "tax-category": "税表分类",
     "tax-category": "税表分类",
     "taxes": "价格(含税)",
     "taxes": "价格(含税)",
     "track-inventory": "跟踪库存",
     "track-inventory": "跟踪库存",
     "track-inventory-false": "不跟踪",
     "track-inventory-false": "不跟踪",
-    "track-inventory-inherit": "继承",
+    "track-inventory-inherit": "",
     "track-inventory-tooltip": "当设置跟踪,当前规格产品库存数量会跟进销售数量自动减少",
     "track-inventory-tooltip": "当设置跟踪,当前规格产品库存数量会跟进销售数量自动减少",
     "track-inventory-true": "跟踪",
     "track-inventory-true": "跟踪",
     "update-product-option": "更新产品规格",
     "update-product-option": "更新产品规格",
     "use-global-value": "使用系统默认值",
     "use-global-value": "使用系统默认值",
     "values": "值",
     "values": "值",
     "variant": "商品规格",
     "variant": "商品规格",
-    "variant-count": "商品规格数量",
+    "variant-count": "",
     "view-contents": "查看详情",
     "view-contents": "查看详情",
     "visibility": "访问控制"
     "visibility": "访问控制"
   },
   },
   "common": {
   "common": {
     "ID": "ID",
     "ID": "ID",
-    "add-filter": "添加过滤器",
+    "add-filter": "",
     "add-item-to-list": "添加到列表",
     "add-item-to-list": "添加到列表",
     "add-note": "添加注释",
     "add-note": "添加注释",
-    "apply": "应用",
-    "assign-to-channel": "分配到{count, plural, one {渠道} other {渠道}}",
+    "apply": "",
+    "assign-to-channel": "",
     "assign-to-channels": "分配到{count, plural, one {渠道} other {渠道}}",
     "assign-to-channels": "分配到{count, plural, one {渠道} other {渠道}}",
-    "available-currencies": "可用货币",
+    "available-currencies": "",
     "available-languages": "可用语言",
     "available-languages": "可用语言",
-    "boolean-and": "",
-    "boolean-false": "",
-    "boolean-or": "",
-    "boolean-true": "",
-    "breadcrumb": "面包屑",
-    "browser-default": "浏览器默认",
+    "boolean-and": "",
+    "boolean-false": "",
+    "boolean-or": "",
+    "boolean-true": "",
+    "breadcrumb": "",
+    "browser-default": "",
     "cancel": "取消",
     "cancel": "取消",
     "cancel-navigation": "取消",
     "cancel-navigation": "取消",
     "change-selection": "更改选项",
     "change-selection": "更改选项",
     "channel": "销售渠道",
     "channel": "销售渠道",
     "channels": "销售渠道",
     "channels": "销售渠道",
-    "clear-selection": "清除选项",
+    "clear-selection": "",
     "code": "编码",
     "code": "编码",
     "collapse-entries": "收起",
     "collapse-entries": "收起",
     "confirm": "确认",
     "confirm": "确认",
-    "confirm-bulk-assign-to-channel": "确认分配到{count, plural, one {渠道} other {渠道}}",
-    "confirm-bulk-delete": "确认删除",
-    "confirm-bulk-remove-from-channel": "确认从{count, plural, one {渠道} other {渠道}}中移除",
-    "confirm-delete-note": "确认删除笔记",
+    "confirm-bulk-assign-to-channel": "",
+    "confirm-bulk-delete": "",
+    "confirm-bulk-remove-from-channel": "",
+    "confirm-delete-note": "删除笔记",
     "confirm-navigation": "导航确认",
     "confirm-navigation": "导航确认",
-    "contents": "内容",
+    "contents": "",
     "create": "添加",
     "create": "添加",
     "created-at": "创建时间",
     "created-at": "创建时间",
     "custom-fields": "客户化字段",
     "custom-fields": "客户化字段",
@@ -240,106 +237,104 @@
     "delete": "删除",
     "delete": "删除",
     "description": "描述",
     "description": "描述",
     "details": "详情",
     "details": "详情",
-    "disable": "禁用",
     "disabled": "禁用",
     "disabled": "禁用",
     "discard-changes": "放弃修改",
     "discard-changes": "放弃修改",
     "duplicate": "复制",
     "duplicate": "复制",
     "edit": "编辑",
     "edit": "编辑",
     "edit-field": "编辑域",
     "edit-field": "编辑域",
     "edit-note": "编辑笔记",
     "edit-note": "编辑笔记",
-    "enable": "启用",
     "enabled": "启用",
     "enabled": "启用",
-    "end-date": "结束日期",
+    "end-date": "",
     "expand-entries": "展开",
     "expand-entries": "展开",
     "extension-running-in-separate-window": "扩展已在另一个窗口启动",
     "extension-running-in-separate-window": "扩展已在另一个窗口启动",
     "filter": "过滤",
     "filter": "过滤",
     "filter-preset-name": "过滤器预设名称",
     "filter-preset-name": "过滤器预设名称",
-    "force-delete": "强制删除",
-    "force-remove": "强制移除",
-    "general": "常规",
+    "force-delete": "",
+    "force-remove": "",
+    "general": "",
     "guest": "游客",
     "guest": "游客",
-    "id": "ID",
-    "image": "图片",
+    "id": "",
+    "image": "",
     "items-per-page-option": "每页显示 { count } 条",
     "items-per-page-option": "每页显示 { count } 条",
-    "items-selected-count": "已选择{count}个",
-    "keep-editing": "继续编辑",
+    "items-selected-count": "",
+    "keep-editing": "",
     "language": "语言",
     "language": "语言",
     "launch-extension": "启动扩展插件",
     "launch-extension": "启动扩展插件",
-    "list-items-and-n-more": "显示{count}个项目",
+    "list-items-and-n-more": "",
     "live-update": "在线更新",
     "live-update": "在线更新",
-    "locale": "区域",
+    "locale": "",
     "log-out": "退出",
     "log-out": "退出",
     "login": "登陆",
     "login": "登陆",
-    "login-image-title": "登录图片",
-    "login-title": "登录",
+    "login-image-title": "",
+    "login-title": "",
     "manage-tags": "管理标签",
     "manage-tags": "管理标签",
     "manage-tags-description": "更新或删除标签",
     "manage-tags-description": "更新或删除标签",
-    "medium-date": "日期",
+    "medium-date": "",
     "more": "更多...",
     "more": "更多...",
     "name": "名称",
     "name": "名称",
-    "no-alerts": "无警报",
-    "no-bulk-actions-available": "无批量操作",
-    "no-channel-selected": "未选择销售渠道",
+    "no-alerts": "",
+    "no-bulk-actions-available": "",
+    "no-channel-selected": "",
     "no-results": "没找到任何结果",
     "no-results": "没找到任何结果",
-    "not-applicable": "不适用",
+    "not-applicable": "",
     "not-set": "未设置",
     "not-set": "未设置",
-    "notify-assign-to-channel-success-with-count": "成功分配到{count, plural, one {渠道} other {渠道}}",
-    "notify-bulk-update-success": "成功更新{count}个项目",
+    "notify-assign-to-channel-success-with-count": "",
+    "notify-bulk-update-success": "",
     "notify-create-error": "添加{ entity }失败",
     "notify-create-error": "添加{ entity }失败",
     "notify-create-success": "{ entity }已添加",
     "notify-create-success": "{ entity }已添加",
     "notify-delete-error": "删除{ entity }失败",
     "notify-delete-error": "删除{ entity }失败",
-    "notify-delete-error-with-count": "删除{count}个项目失败",
+    "notify-delete-error-with-count": "",
     "notify-delete-success": "{ entity }已删除",
     "notify-delete-success": "{ entity }已删除",
-    "notify-delete-success-with-count": "成功删除{count}个项目",
+    "notify-delete-success-with-count": "",
     "notify-duplicate-error": "由于错误无法复制 { name } :{ error }",
     "notify-duplicate-error": "由于错误无法复制 { name } :{ error }",
     "notify-duplicate-error-excess": "由于错误,无法复制额外的 { count } {count, plural, one {项目} other {项目}}",
     "notify-duplicate-error-excess": "由于错误,无法复制额外的 { count } {count, plural, one {项目} other {项目}}",
     "notify-duplicate-success": "成功复制 {count, plural, one {1 项目} other {{count} 项目}} :{ names }",
     "notify-duplicate-success": "成功复制 {count, plural, one {1 项目} other {{count} 项目}} :{ names }",
-    "notify-remove-from-channel-success-with-count": "成功从{count, plural, one {渠道} other {渠道}}中移除{count}个项目",
+    "notify-remove-from-channel-success-with-count": "",
     "notify-save-changes-error": "保存失败",
     "notify-save-changes-error": "保存失败",
     "notify-saved-changes": "修改已保存",
     "notify-saved-changes": "修改已保存",
     "notify-update-error": "更新{ entity }失败",
     "notify-update-error": "更新{ entity }失败",
     "notify-update-success": "{ entity }已更新",
     "notify-update-success": "{ entity }已更新",
     "notify-updated-tags-success": "成功更新标签",
     "notify-updated-tags-success": "成功更新标签",
-    "okay": "确定",
-    "operator-contains": "包含",
-    "operator-eq": "等于",
-    "operator-gt": "大于",
-    "operator-lt": "小于",
-    "operator-not-contains": "不包含",
-    "operator-not-eq": "不等于",
-    "operator-notContains": "不包含",
-    "operator-regex": "正则表达式",
+    "okay": "",
+    "operator-contains": "",
+    "operator-eq": "",
+    "operator-gt": "",
+    "operator-lt": "",
+    "operator-not-contains": "",
+    "operator-not-eq": "",
+    "operator-notContains": "",
+    "operator-regex": "",
     "password": "密码",
     "password": "密码",
-    "position": "位置",
+    "position": "",
     "price": "价格",
     "price": "价格",
     "price-with-tax": "价格(含税)",
     "price-with-tax": "价格(含税)",
     "private": "隐藏",
     "private": "隐藏",
     "public": "公开",
     "public": "公开",
     "remember-me": "记住我",
     "remember-me": "记住我",
     "remove": "删除",
     "remove": "删除",
-    "remove-from-channel": "从渠道中移除",
+    "remove-from-channel": "",
     "remove-item-from-list": "从列表中移除",
     "remove-item-from-list": "从列表中移除",
     "rename-filter-preset": "重命名预设",
     "rename-filter-preset": "重命名预设",
-    "reset-columns": "重置列",
+    "reset-columns": "",
     "results-count": "{count, plural, =0{无} other {{count}个过滤结果}}",
     "results-count": "{count, plural, =0{无} other {{count}个过滤结果}}",
-    "sample-formatting": "示例格式化",
+    "sample-formatting": "",
     "save-filter-preset": "保存为预设",
     "save-filter-preset": "保存为预设",
-    "search-and-filter-list": "搜索和过滤列表",
-    "search-by-name": "按名称搜索",
+    "search-and-filter-list": "",
+    "search-by-name": "",
     "select": "选择...",
     "select": "选择...",
     "select-display-language": "选择显示语言",
     "select-display-language": "选择显示语言",
-    "select-items-with-count": "选择{count}个项目",
-    "select-products": "选择商品",
-    "select-relation-id": "选择关系ID",
-    "select-table-columns": "选择表格列",
+    "select-items-with-count": "",
+    "select-products": "",
+    "select-relation-id": "",
+    "select-table-columns": "",
     "select-today": "选择今天",
     "select-today": "选择今天",
-    "select-variants": "选择规格",
-    "seller": "卖家",
-    "set-language": "设置语言",
-    "short-date": "日期",
-    "slug": "缩写",
-    "start-date": "开始日期",
-    "status": "状态",
+    "select-variants": "",
+    "seller": "",
+    "set-language": "",
+    "short-date": "",
+    "slug": "",
+    "start-date": "",
+    "status": "",
     "tags": "标签",
     "tags": "标签",
     "theme": "主题",
     "theme": "主题",
     "there-are-unsaved-changes": "修改尚未被保存,现在离开会导致您的修改会被删除",
     "there-are-unsaved-changes": "修改尚未被保存,现在离开会导致您的修改会被删除",
@@ -348,11 +343,11 @@
     "update": "确认修改",
     "update": "确认修改",
     "updated-at": "修改时间",
     "updated-at": "修改时间",
     "username": "用户名",
     "username": "用户名",
-    "value": "",
-    "view-contents": "查看详情",
+    "value": "",
+    "view-contents": "",
     "view-next-month": "查看下个月",
     "view-next-month": "查看下个月",
     "view-previous-month": "查看下个月",
     "view-previous-month": "查看下个月",
-    "visibility": "访问控制",
+    "visibility": "",
     "with-selected": "从已选中..."
     "with-selected": "从已选中..."
   },
   },
   "customer": {
   "customer": {
@@ -364,18 +359,18 @@
     "add-customers-to-group-with-name": "添加客户到\"{ groupName }\"分组",
     "add-customers-to-group-with-name": "添加客户到\"{ groupName }\"分组",
     "addresses": "地址",
     "addresses": "地址",
     "city": "市",
     "city": "市",
-    "company": "公司",
+    "company": "",
     "confirm-remove-customer-from-group": "确认从分组移除客户?",
     "confirm-remove-customer-from-group": "确认从分组移除客户?",
     "country": "国家",
     "country": "国家",
     "create-customer-group": "添加分组",
     "create-customer-group": "添加分组",
     "create-new-address": "添加地址",
     "create-new-address": "添加地址",
     "create-new-customer": "添加客户",
     "create-new-customer": "添加客户",
     "create-new-customer-group": "确认添加",
     "create-new-customer-group": "确认添加",
-    "customer": "客户",
-    "customer-group": "客户分组",
+    "customer": "",
+    "customer-group": "",
     "customer-groups": "客户分组",
     "customer-groups": "客户分组",
     "customer-history": "客户记录",
     "customer-history": "客户记录",
-    "customers": "客户",
+    "customers": "",
     "default-billing-address": "默认账单地址",
     "default-billing-address": "默认账单地址",
     "default-shipping-address": "默认邮寄地址",
     "default-shipping-address": "默认邮寄地址",
     "email-address": "电子邮件地址",
     "email-address": "电子邮件地址",
@@ -414,7 +409,7 @@
     "remove-customers-from-group-success": "成功从分组\"{ groupName }\"中移除{customerCount}个客户",
     "remove-customers-from-group-success": "成功从分组\"{ groupName }\"中移除{customerCount}个客户",
     "remove-from-group": "从分组中移除",
     "remove-from-group": "从分组中移除",
     "search-customers-by-email": "输入要搜索的客户邮件地址",
     "search-customers-by-email": "输入要搜索的客户邮件地址",
-    "search-customers-by-email-last-name-postal-code": "输入要搜索的客户邮件地址,姓氏,邮政编码",
+    "search-customers-by-email-last-name-postal-code": "",
     "select-customer": "选择客户",
     "select-customer": "选择客户",
     "set-as-default-billing-address": "设置为默认账单地址",
     "set-as-default-billing-address": "设置为默认账单地址",
     "set-as-default-shipping-address": "设置为默认邮寄地址",
     "set-as-default-shipping-address": "设置为默认邮寄地址",
@@ -428,10 +423,10 @@
   "dashboard": {
   "dashboard": {
     "add-widget": "添加窗口工具",
     "add-widget": "添加窗口工具",
     "latest-orders": "最新订单",
     "latest-orders": "最新订单",
-    "metric-average-order-value": "平均订单价值",
-    "metric-number-of-orders": "订单数量",
-    "metric-order-total-value": "订单总额",
-    "metrics": "指标",
+    "metric-average-order-value": "",
+    "metric-number-of-orders": "",
+    "metric-order-total-value": "",
+    "metrics": "",
     "orders-summary": "订单预览",
     "orders-summary": "订单预览",
     "remove-widget": "移除窗口",
     "remove-widget": "移除窗口",
     "thisMonth": "本月",
     "thisMonth": "本月",
@@ -480,17 +475,15 @@
     "year": "年"
     "year": "年"
   },
   },
   "editor": {
   "editor": {
-    "height": "高度",
     "image-alt": "图片备注",
     "image-alt": "图片备注",
     "image-src": "图片源文件",
     "image-src": "图片源文件",
     "image-title": "图片标题",
     "image-title": "图片标题",
     "insert-image": "插入图片",
     "insert-image": "插入图片",
     "link-href": "链接",
     "link-href": "链接",
-    "link-target": "目标",
+    "link-target": "",
     "link-title": "链接标题",
     "link-title": "链接标题",
     "remove-link": "删除链接",
     "remove-link": "删除链接",
-    "set-link": "设置链接",
-    "width": "宽度"
+    "set-link": "设置链接"
   },
   },
   "error": {
   "error": {
     "403-forbidden": "无权限访问路径 \"{ path }\"。无权限或会话已过期,请重新登陆",
     "403-forbidden": "无权限访问路径 \"{ path }\"。无权限或会话已过期,请重新登陆",
@@ -510,14 +503,14 @@
     "ends-at": "有效起始时间",
     "ends-at": "有效起始时间",
     "per-customer-limit": "每人限领数",
     "per-customer-limit": "每人限领数",
     "per-customer-limit-tooltip": "单个客户可以使用此优惠的最大次数",
     "per-customer-limit-tooltip": "单个客户可以使用此优惠的最大次数",
-    "promotion": "促销活动",
-    "search-by-name-or-coupon-code": "按名称或优惠码搜索",
+    "promotion": "",
+    "search-by-name-or-coupon-code": "",
     "starts-at": "有效结束时间",
     "starts-at": "有效结束时间",
     "usage-limit": "总使用限制",
     "usage-limit": "总使用限制",
     "usage-limit-tooltip": "此优惠的总使用次数上限"
     "usage-limit-tooltip": "此优惠的总使用次数上限"
   },
   },
   "nav": {
   "nav": {
-    "administrators": "管理",
+    "administrators": "登陆管理",
     "assets": "资源列表",
     "assets": "资源列表",
     "catalog": "商品管理",
     "catalog": "商品管理",
     "channels": "销售渠道",
     "channels": "销售渠道",
@@ -535,8 +528,7 @@
     "promotions": "优惠券管理",
     "promotions": "优惠券管理",
     "roles": "角色管理",
     "roles": "角色管理",
     "sales": "销售管理",
     "sales": "销售管理",
-    "scheduled-tasks": "计划任务",
-    "sellers": "卖家管理",
+    "sellers": "",
     "settings": "系统设置",
     "settings": "系统设置",
     "shipping-methods": "配送方式",
     "shipping-methods": "配送方式",
     "stock-locations": "库存位置",
     "stock-locations": "库存位置",
@@ -559,7 +551,7 @@
     "assign-order-to-another-customer": "分配订单给另一个客户",
     "assign-order-to-another-customer": "分配订单给另一个客户",
     "billing-address": "账单地址",
     "billing-address": "账单地址",
     "cancel": "取消",
     "cancel": "取消",
-    "cancel-entire-order": "取消整个订单",
+    "cancel-entire-order": "",
     "cancel-fulfillment": "取消发货",
     "cancel-fulfillment": "取消发货",
     "cancel-modification": "取消修改",
     "cancel-modification": "取消修改",
     "cancel-order": "取消订单",
     "cancel-order": "取消订单",
@@ -567,24 +559,24 @@
     "cancel-reason-customer-request": "客户要求",
     "cancel-reason-customer-request": "客户要求",
     "cancel-reason-not-available": "产品无库存",
     "cancel-reason-not-available": "产品无库存",
     "cancel-selected-items": "取消已选",
     "cancel-selected-items": "取消已选",
-    "cancel-specified-items": "取消指定项目",
+    "cancel-specified-items": "",
     "cancellation-reason": "取消原因",
     "cancellation-reason": "取消原因",
     "cancelled-order-items-success": "从订单中取消 { count } { count, plural, one {项} other {项} }",
     "cancelled-order-items-success": "从订单中取消 { count } { count, plural, one {项} other {项} }",
     "cancelled-order-success": "订单成功取消",
     "cancelled-order-success": "订单成功取消",
-    "complete-draft-order": "完成草稿订单",
+    "complete-draft-order": "",
     "confirm-modifications": "确认修改",
     "confirm-modifications": "确认修改",
     "contents": "具体内容",
     "contents": "具体内容",
     "create-fulfillment": "确认配货",
     "create-fulfillment": "确认配货",
     "create-fulfillment-success": "确认配货成功",
     "create-fulfillment-success": "确认配货成功",
     "customer": "客户",
     "customer": "客户",
-    "delete-draft-order": "删除草稿订单",
-    "draft-order": "草稿订单",
+    "delete-draft-order": "",
+    "draft-order": "",
     "edit-billing-address": "编辑账单地址",
     "edit-billing-address": "编辑账单地址",
     "edit-shipping-address": "编辑邮寄地址",
     "edit-shipping-address": "编辑邮寄地址",
     "error-message": "错误消息",
     "error-message": "错误消息",
-    "existing-address": "现有地址",
-    "existing-customer": "现有客户",
-    "filter-is-active": "过滤器已激活",
+    "existing-address": "",
+    "existing-customer": "",
+    "filter-is-active": "",
     "fulfill": "已配货",
     "fulfill": "已配货",
     "fulfill-order": "接受订单",
     "fulfill-order": "接受订单",
     "fulfillment": "配货记录",
     "fulfillment": "配货记录",
@@ -592,15 +584,15 @@
     "history-coupon-code-applied": "优惠卷已使用",
     "history-coupon-code-applied": "优惠卷已使用",
     "history-coupon-code-removed": "优惠卷已移除",
     "history-coupon-code-removed": "优惠卷已移除",
     "history-customer-updated": "客户已更新",
     "history-customer-updated": "客户已更新",
-    "history-fulfillment-created": "配货已创建",
-    "history-fulfillment-delivered": "配货已交付",
-    "history-fulfillment-shipped": "配货已发货",
-    "history-fulfillment-transition": "配货状态从{from}更新至{to}",
+    "history-fulfillment-created": "",
+    "history-fulfillment-delivered": "",
+    "history-fulfillment-shipped": "",
+    "history-fulfillment-transition": "",
     "history-items-cancelled": "{count}个已取消",
     "history-items-cancelled": "{count}个已取消",
     "history-order-cancelled": "订单已取消",
     "history-order-cancelled": "订单已取消",
-    "history-order-created": "订单已创建",
+    "history-order-created": "",
     "history-order-fulfilled": "订单已配货",
     "history-order-fulfilled": "订单已配货",
-    "history-order-modified": "订单已修改",
+    "history-order-modified": "",
     "history-order-transition": "订单状态从{from}更新至{to}",
     "history-order-transition": "订单状态从{from}更新至{to}",
     "history-payment-settled": "已结算付款",
     "history-payment-settled": "已结算付款",
     "history-payment-transition": "付款交易 #{id} 状态从{from}更新至{to}",
     "history-payment-transition": "付款交易 #{id} 状态从{from}更新至{to}",
@@ -609,58 +601,58 @@
     "line-fulfillment-all": "订单已全部配货完成",
     "line-fulfillment-all": "订单已全部配货完成",
     "line-fulfillment-none": "无订单配货记录",
     "line-fulfillment-none": "无订单配货记录",
     "line-fulfillment-partial": "总共{ total }个订单项,{ count }个已配货",
     "line-fulfillment-partial": "总共{ total }个订单项,{ count }个已配货",
-    "manually-transition-to-state": "手动更新状态",
-    "manually-transition-to-state-message": "请输入要更新的状态",
-    "modification-adding-items": "添加项目",
-    "modification-adding-surcharges": "添加附加费",
-    "modification-adjusting-lines": "调整项目",
-    "modification-not-settled": "未结算",
-    "modification-recalculate-shipping": "重新计算运费",
-    "modification-settled": "已结算",
-    "modification-summary": "修改总结",
-    "modification-updating-billing-address": "更新账单地址",
-    "modification-updating-shipping-address": "更新配送地址",
+    "manually-transition-to-state": "",
+    "manually-transition-to-state-message": "",
+    "modification-adding-items": "",
+    "modification-adding-surcharges": "",
+    "modification-adjusting-lines": "",
+    "modification-not-settled": "",
+    "modification-recalculate-shipping": "",
+    "modification-settled": "",
+    "modification-summary": "",
+    "modification-updating-billing-address": "",
+    "modification-updating-shipping-address": "",
     "modified-items": "修改过的商品",
     "modified-items": "修改过的商品",
-    "modify-order": "修改订单",
-    "modify-order-price-difference": "修改订单价格差异",
+    "modify-order": "",
+    "modify-order-price-difference": "",
     "net-price": "净价",
     "net-price": "净价",
     "new-customer": "新客户",
     "new-customer": "新客户",
     "no-modifications-made": "没有进行任何修改",
     "no-modifications-made": "没有进行任何修改",
-    "note": "备注",
+    "note": "",
     "note-is-private": "隐藏备注",
     "note-is-private": "隐藏备注",
     "note-only-visible-to-administrators": "仅管理员可见",
     "note-only-visible-to-administrators": "仅管理员可见",
     "note-visible-to-customer": "管理员及客户可见",
     "note-visible-to-customer": "管理员及客户可见",
-    "order": "订单",
+    "order": "",
     "order-history": "历史订单",
     "order-history": "历史订单",
-    "order-is-empty": "订单为空",
-    "order-state-diagram": "订单状态图",
-    "order-type": "订单类型",
-    "order-type-aggregate": "聚合订单",
-    "order-type-regular": "常规订单",
-    "order-type-seller": "卖家订单",
-    "orders": "订单",
+    "order-is-empty": "",
+    "order-state-diagram": "",
+    "order-type": "",
+    "order-type-aggregate": "",
+    "order-type-regular": "",
+    "order-type-seller": "",
+    "orders": "",
     "original-quantity-at-checkout": "结账时的原始数量",
     "original-quantity-at-checkout": "结账时的原始数量",
     "payment": "付款信息",
     "payment": "付款信息",
     "payment-amount": "付款金额",
     "payment-amount": "付款金额",
     "payment-metadata": "付款元数据",
     "payment-metadata": "付款元数据",
     "payment-method": "付款方式",
     "payment-method": "付款方式",
     "payment-state": "付款状态",
     "payment-state": "付款状态",
-    "payments": "付款信息",
-    "placed-at": "下单时间",
-    "preview-changes": "预览修改",
+    "payments": "",
+    "placed-at": "",
+    "preview-changes": "",
     "previous-customer": "以前的客户",
     "previous-customer": "以前的客户",
     "product-name": "产品名称",
     "product-name": "产品名称",
     "product-sku": "库存编码",
     "product-sku": "库存编码",
     "promotions-applied": "已使用代金券",
     "promotions-applied": "已使用代金券",
-    "prorated-unit-price": "分摊单价",
+    "prorated-unit-price": "",
     "quantity": "数量",
     "quantity": "数量",
     "refund": "退款",
     "refund": "退款",
     "refund-amount": "退款金额",
     "refund-amount": "退款金额",
     "refund-and-cancel-order": "退款|取消订单",
     "refund-and-cancel-order": "退款|取消订单",
-    "refund-cancellation-reason": "退款原因",
-    "refund-cancellation-reason-required": "请输入退款原因",
+    "refund-cancellation-reason": "",
+    "refund-cancellation-reason-required": "",
     "refund-metadata": "退款元数据",
     "refund-metadata": "退款元数据",
-    "refund-order-failed": "退款订单处理失败",
+    "refund-order-failed": "",
     "refund-order-success": "退款订单处理成功",
     "refund-order-success": "退款订单处理成功",
     "refund-reason": "退款原因",
     "refund-reason": "退款原因",
     "refund-reason-customer-request": "客户要求",
     "refund-reason-customer-request": "客户要求",
@@ -673,20 +665,20 @@
     "refund-with-amount": "退款金额{amount}",
     "refund-with-amount": "退款金额{amount}",
     "refundable-amount": "可退款金额",
     "refundable-amount": "可退款金额",
     "refunded-count": "{count}个商品已退款",
     "refunded-count": "{count}个商品已退款",
-    "removed-items": "已移除项目",
+    "removed-items": "",
     "return-to-stock": "返回库存",
     "return-to-stock": "返回库存",
     "search-by-order-filters": "输入要搜索的订单编号 / 姓 / 交易ID ",
     "search-by-order-filters": "输入要搜索的订单编号 / 姓 / 交易ID ",
-    "select-address": "选择地址",
-    "select-shipping-method": "选择配送方式",
-    "select-state": "选择状态",
-    "seller-orders": "卖家订单",
-    "set-billing-address": "设置账单地址",
-    "set-coupon-codes": "设置优惠券",
-    "set-customer-for-order": "设置客户",
-    "set-customer-success": "客户设置成功",
-    "set-fulfillment-state": "设置配货状态",
-    "set-shipping-address": "设置配送地址",
-    "set-shipping-method": "设置配送方式",
+    "select-address": "",
+    "select-shipping-method": "",
+    "select-state": "",
+    "seller-orders": "",
+    "set-billing-address": "",
+    "set-coupon-codes": "",
+    "set-customer-for-order": "",
+    "set-customer-success": "",
+    "set-fulfillment-state": "",
+    "set-shipping-address": "",
+    "set-shipping-method": "",
     "settle-payment": "结算付款",
     "settle-payment": "结算付款",
     "settle-payment-error": "结算付款失败",
     "settle-payment-error": "结算付款失败",
     "settle-payment-success": "结算付款成功",
     "settle-payment-success": "结算付款成功",
@@ -695,24 +687,24 @@
     "settle-refund-success": "结算退款成功",
     "settle-refund-success": "结算退款成功",
     "shipping": "运费",
     "shipping": "运费",
     "shipping-address": "配送地址",
     "shipping-address": "配送地址",
-    "shipping-cancelled": "配送已取消",
+    "shipping-cancelled": "",
     "shipping-method": "配送方式",
     "shipping-method": "配送方式",
     "state": "状态",
     "state": "状态",
     "sub-total": "小计金额",
     "sub-total": "小计金额",
-    "successfully-updated-fulfillment": "配货更新成功",
-    "surcharges": "附加费",
-    "tax-base": "税基",
-    "tax-description": "税描述",
-    "tax-rate": "税率",
-    "tax-summary": "税总结",
-    "tax-total": "税总计",
+    "successfully-updated-fulfillment": "",
+    "surcharges": "",
+    "tax-base": "",
+    "tax-description": "",
+    "tax-rate": "",
+    "tax-summary": "",
+    "tax-total": "",
     "total": "总计金额",
     "total": "总计金额",
     "tracking-code": "物流码",
     "tracking-code": "物流码",
     "transaction-id": "交易ID",
     "transaction-id": "交易ID",
-    "transition-to-state": "更新状态",
-    "transitioned-payment-to-state-success": "付款状态更新成功",
-    "transitioned-to-state-success": "状态更新成功",
-    "unable-to-transition-to-state-try-another": "无法更新状态,请尝试其他状态",
+    "transition-to-state": "",
+    "transitioned-payment-to-state-success": "",
+    "transitioned-to-state-success": "",
+    "unable-to-transition-to-state-try-another": "",
     "unfulfilled": "未配货",
     "unfulfilled": "未配货",
     "unit-price": "单价"
     "unit-price": "单价"
   },
   },
@@ -720,48 +712,48 @@
     "add-countries-to-zone": "添加国家到销售区域...",
     "add-countries-to-zone": "添加国家到销售区域...",
     "add-countries-to-zone-success": "{ countryCount }个国家已到销售区域 \"{ zoneName }\"",
     "add-countries-to-zone-success": "{ countryCount }个国家已到销售区域 \"{ zoneName }\"",
     "add-products-to-test-order": "添加产品到测试订单",
     "add-products-to-test-order": "添加产品到测试订单",
-    "administrator": "管理员",
+    "administrator": "",
     "channel": "销售渠道",
     "channel": "销售渠道",
     "channel-token": "渠道唯一码",
     "channel-token": "渠道唯一码",
-    "country": "国家",
+    "country": "",
     "create-new-channel": "添加销售渠道",
     "create-new-channel": "添加销售渠道",
     "create-new-country": "添加国家",
     "create-new-country": "添加国家",
-    "create-new-payment-method": "添加付款方式",
+    "create-new-payment-method": "",
     "create-new-role": "添加角色",
     "create-new-role": "添加角色",
-    "create-new-seller": "添加卖家",
+    "create-new-seller": "",
     "create-new-shipping-method": "添加配送方式",
     "create-new-shipping-method": "添加配送方式",
     "create-new-tax-category": "创建税表分类",
     "create-new-tax-category": "创建税表分类",
     "create-new-tax-rate": "添加税率",
     "create-new-tax-rate": "添加税率",
-    "create-new-zone": "创建销售区域",
-    "default-currency": "默认货币",
+    "create-new-zone": "",
+    "default-currency": "",
     "default-role-label": "默认角色不可修改",
     "default-role-label": "默认角色不可修改",
     "default-shipping-zone": "默认配送区域",
     "default-shipping-zone": "默认配送区域",
     "default-tax-zone": "默认销售区域",
     "default-tax-zone": "默认销售区域",
-    "defaults": "默认",
+    "defaults": "",
     "eligible": "符合条件",
     "eligible": "符合条件",
     "email-address": "电子邮件",
     "email-address": "电子邮件",
-    "email-address-or-identifier": "电子邮件或标识符",
+    "email-address-or-identifier": "",
     "first-name": "名",
     "first-name": "名",
-    "fulfillment-handler": "配货处理",
-    "global-available-languages-tooltip": "系统支持的语言",
+    "fulfillment-handler": "",
+    "global-available-languages-tooltip": "",
     "global-out-of-stock-threshold": "默认售空限制",
     "global-out-of-stock-threshold": "默认售空限制",
     "global-out-of-stock-threshold-tooltip": "当此规格产品库存值低于此限制时,产品将为售空状态。设置为负数设置此规格产品为缺货状态。可以在产品页面更改默认限制",
     "global-out-of-stock-threshold-tooltip": "当此规格产品库存值低于此限制时,产品将为售空状态。设置为负数设置此规格产品为缺货状态。可以在产品页面更改默认限制",
     "last-name": "姓",
     "last-name": "姓",
     "no-eligible-shipping-methods": "没有符合条件的配送方式",
     "no-eligible-shipping-methods": "没有符合条件的配送方式",
     "password": "密码",
     "password": "密码",
-    "payment-eligibility-checker": "付款合格条件",
-    "payment-handler": "付款处理",
-    "payment-method": "付款方式",
+    "payment-eligibility-checker": "",
+    "payment-handler": "",
+    "payment-method": "",
     "permissions": "权限",
     "permissions": "权限",
     "prices-include-tax": "设置默认销售区域价格含税",
     "prices-include-tax": "设置默认销售区域价格含税",
-    "profile": "配置文件",
+    "profile": "",
     "rate": "税率",
     "rate": "税率",
     "remove-countries-from-zone-success": "{ countryCount }个国际已从\"{ zoneName }\"中移除",
     "remove-countries-from-zone-success": "{ countryCount }个国际已从\"{ zoneName }\"中移除",
-    "remove-from-zone": "移除",
-    "role": "角色",
+    "remove-from-zone": "",
+    "role": "",
     "roles": "角色列表",
     "roles": "角色列表",
     "search-by-product-name-or-sku": "输入要搜索的产品名称或库存编码",
     "search-by-product-name-or-sku": "输入要搜索的产品名称或库存编码",
-    "seller": "卖家",
+    "seller": "",
     "shipping-calculator": "配送费计算",
     "shipping-calculator": "配送费计算",
     "shipping-eligibility-checker": "使用此配送方式的合格条件",
     "shipping-eligibility-checker": "使用此配送方式的合格条件",
     "shipping-method": "配送方式",
     "shipping-method": "配送方式",
@@ -772,7 +764,7 @@
     "test-shipping-method": "模拟测试配送方式",
     "test-shipping-method": "模拟测试配送方式",
     "test-shipping-methods": "模拟测试配送方式",
     "test-shipping-methods": "模拟测试配送方式",
     "track-inventory-default": "默认跟踪库存",
     "track-inventory-default": "默认跟踪库存",
-    "view-zone-members": "查看销售区域成员",
+    "view-zone-members": "",
     "zone": "销售区域"
     "zone": "销售区域"
   },
   },
   "state": {
   "state": {
@@ -784,7 +776,7 @@
     "created": "已创建",
     "created": "已创建",
     "declined": "已拒绝",
     "declined": "已拒绝",
     "delivered": "已完成",
     "delivered": "已完成",
-    "draft": "草稿",
+    "draft": "",
     "error": "错误",
     "error": "错误",
     "failed": "失败",
     "failed": "失败",
     "modifying": "正在修改",
     "modifying": "正在修改",
@@ -817,11 +809,6 @@
     "job-state-completed": "已完成",
     "job-state-completed": "已完成",
     "job-state-failed": "失败",
     "job-state-failed": "失败",
     "job-state-pending": "等待中",
     "job-state-pending": "等待中",
-    "job-state-running": "运行中",
-    "last-executed-at": "最后执行时间",
-    "last-result": "最后结果",
-    "next-execution-at": "下次执行时间",
-    "schedule": "计划",
-    "task-id": "任务ID"
+    "job-state-running": "运行中"
   }
   }
 }
 }

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 356 - 364
packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json


+ 0 - 96
packages/admin-ui/src/lib/system/src/components/scheduled-tasks/scheduled-task-list.component.html

@@ -1,96 +0,0 @@
-<vdr-page-header>
-    <vdr-page-title></vdr-page-title>
-</vdr-page-header>
-<vdr-page-body>
-    <vdr-page-block>
-        <vdr-action-bar>
-            <vdr-ab-left> </vdr-ab-left>
-            <vdr-ab-right> </vdr-ab-right>
-        </vdr-action-bar>
-    </vdr-page-block>
-
-    <vdr-data-table-2 id="scheduled-task-list" [items]="tasks$ | async">
-        <vdr-dt2-column [heading]="'system.task-id' | translate" id="task-id" [optional]="false">
-            <ng-template let-task="item">
-                {{ task.id }}
-            </ng-template>
-        </vdr-dt2-column>
-        <vdr-dt2-column [heading]="'common.description' | translate" id="description">
-            <ng-template let-task="item">
-                {{ task.description }}
-            </ng-template>
-        </vdr-dt2-column>
-        <vdr-dt2-column [heading]="'system.schedule' | translate" id="schedule">
-            <ng-template let-task="item">
-                <div class="">{{ task.scheduleDescription }}</div>
-            </ng-template>
-        </vdr-dt2-column>
-        <vdr-dt2-column [heading]="'system.last-executed-at' | translate" id="last-executed-at">
-            <ng-template let-task="item">
-                <span *ngIf="task.lastExecutedAt" [title]="task.lastExecutedAt | localeDate">
-                    {{ task.lastExecutedAt | timeAgo }}
-                </span>
-            </ng-template>
-        </vdr-dt2-column>
-        <vdr-dt2-column
-            [heading]="'system.next-execution-at' | translate"
-            id="next-execution-at"
-            [hiddenByDefault]="true"
-        >
-            <ng-template let-task="item">
-                {{ task.nextExecutionAt | localeDate }}
-            </ng-template>
-        </vdr-dt2-column>
-        <vdr-dt2-column [heading]="'system.last-result' | translate" id="last-result">
-            <ng-template let-task="item">
-                <vdr-dropdown *ngIf="task.lastResult">
-                    <button class="button-small mr-1" vdrDropdownTrigger>
-                        <clr-icon shape="details"></clr-icon>
-                        {{ 'system.last-result' | translate }}
-                    </button>
-                    <vdr-dropdown-menu>
-                        <div class="result-detail">
-                            <vdr-object-tree [value]="task.lastResult"></vdr-object-tree>
-                        </div>
-                    </vdr-dropdown-menu>
-                </vdr-dropdown>
-            </ng-template>
-        </vdr-dt2-column>
-        <vdr-dt2-column [heading]="'common.enabled' | translate" id="enabled">
-            <ng-template let-task="item">
-                <ng-container *ngIf="task.enabled">
-                    <vdr-chip [colorType]="'success'">{{ 'common.enabled' | translate }}</vdr-chip>
-                </ng-container>
-                <ng-container *ngIf="!task.enabled">
-                    <vdr-chip [colorType]="'warning'">{{ 'common.disabled' | translate }}</vdr-chip>
-                </ng-container>
-            </ng-template>
-        </vdr-dt2-column>
-        <vdr-dt2-column id="actions">
-            <ng-template let-task="item">
-                <vdr-dropdown *ngIf="!task.isSettled && task.state !== 'FAILED'">
-                    <button class="icon-button" vdrDropdownTrigger>
-                        <clr-icon shape="ellipsis-vertical" size="12"></clr-icon>
-                    </button>
-                    <vdr-dropdown-menu vdrPosition="bottom-right">
-                        <button
-                            type="button"
-                            class="delete-button"
-                            (click)="toggleEnabled(task)"
-                            [disabled]="!(['UpdateSettings', 'UpdateSystem'] | hasPermission)"
-                            vdrDropdownItem
-                        >
-                            <clr-icon shape="ban" class="is-danger"></clr-icon>
-                            <div *ngIf="task.enabled">
-                                {{ 'common.disable' | translate }}
-                            </div>
-                            <div *ngIf="!task.enabled">
-                                {{ 'common.enable' | translate }}
-                            </div>
-                        </button>
-                    </vdr-dropdown-menu>
-                </vdr-dropdown>
-            </ng-template>
-        </vdr-dt2-column>
-    </vdr-data-table-2>
-</vdr-page-body>

+ 0 - 8
packages/admin-ui/src/lib/system/src/components/scheduled-tasks/scheduled-task-list.component.scss

@@ -1,8 +0,0 @@
-.result-detail {
-    margin: 0 12px;
-}
-
-.retry-info {
-    margin-inline-start: 6px;
-    color: var(--color-grey-400);
-}

+ 0 - 72
packages/admin-ui/src/lib/system/src/components/scheduled-tasks/scheduled-task-list.component.ts

@@ -1,72 +0,0 @@
-import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
-import { FormControl } from '@angular/forms';
-import {
-    DataService,
-    GetAllScheduledTasksQuery,
-    ToggleScheduledTaskEnabledMutation,
-    ToggleScheduledTaskEnabledMutationVariables,
-} from '@vendure/admin-ui/core';
-import { gql } from 'apollo-angular';
-import { Observable } from 'rxjs';
-
-export const GET_SCHEDULED_TASKS_LIST = gql`
-    query GetAllScheduledTasks {
-        scheduledTasks {
-            id
-            description
-            schedule
-            scheduleDescription
-            lastExecutedAt
-            nextExecutionAt
-            isRunning
-            lastResult
-            enabled
-        }
-    }
-`;
-
-const TOGGLE_SCHEDULED_TASK_ENABLED = gql`
-    mutation ToggleScheduledTaskEnabled($input: UpdateScheduledTaskInput!) {
-        updateScheduledTask(input: $input) {
-            id
-            enabled
-        }
-    }
-`;
-
-@Component({
-    selector: 'vdr-scheduled-task-list',
-    templateUrl: './scheduled-task-list.component.html',
-    styleUrls: ['./scheduled-task-list.component.scss'],
-    changeDetection: ChangeDetectionStrategy.OnPush,
-    standalone: false,
-})
-export class ScheduledTaskListComponent implements OnInit {
-    tasks$: Observable<GetAllScheduledTasksQuery['scheduledTasks']>;
-    liveUpdate = new FormControl(true);
-
-    constructor(private dataService: DataService) {}
-
-    ngOnInit(): void {
-        this.tasks$ = this.dataService
-            .query<GetAllScheduledTasksQuery>(GET_SCHEDULED_TASKS_LIST)
-            .mapStream(res => {
-                console.log(res.scheduledTasks);
-                return res.scheduledTasks;
-            });
-    }
-
-    toggleEnabled(task: GetAllScheduledTasksQuery['scheduledTasks'][0]) {
-        this.dataService
-            .mutate<ToggleScheduledTaskEnabledMutation, ToggleScheduledTaskEnabledMutationVariables>(
-                TOGGLE_SCHEDULED_TASK_ENABLED,
-                {
-                    input: {
-                        id: task.id,
-                        enabled: !task.enabled,
-                    },
-                },
-            )
-            .subscribe();
-    }
-}

+ 0 - 1
packages/admin-ui/src/lib/system/src/public_api.ts

@@ -2,6 +2,5 @@
 export * from './components/health-check/health-check.component';
 export * from './components/health-check/health-check.component';
 export * from './components/job-list/job-list.component';
 export * from './components/job-list/job-list.component';
 export * from './components/job-state-label/job-state-label.component';
 export * from './components/job-state-label/job-state-label.component';
-export * from './components/scheduled-tasks/scheduled-task-list.component';
 export * from './system.module';
 export * from './system.module';
 export * from './system.routes';
 export * from './system.routes';

+ 1 - 7
packages/admin-ui/src/lib/system/src/system.module.ts

@@ -5,16 +5,10 @@ import { SharedModule } from '@vendure/admin-ui/core';
 import { HealthCheckComponent } from './components/health-check/health-check.component';
 import { HealthCheckComponent } from './components/health-check/health-check.component';
 import { JobListComponent } from './components/job-list/job-list.component';
 import { JobListComponent } from './components/job-list/job-list.component';
 import { JobStateLabelComponent } from './components/job-state-label/job-state-label.component';
 import { JobStateLabelComponent } from './components/job-state-label/job-state-label.component';
-import { ScheduledTaskListComponent } from './components/scheduled-tasks/scheduled-task-list.component';
 import { systemRoutes } from './system.routes';
 import { systemRoutes } from './system.routes';
 
 
 @NgModule({
 @NgModule({
-    declarations: [
-        HealthCheckComponent,
-        JobListComponent,
-        JobStateLabelComponent,
-        ScheduledTaskListComponent,
-    ],
+    declarations: [HealthCheckComponent, JobListComponent, JobStateLabelComponent],
     imports: [SharedModule, RouterModule.forChild(systemRoutes)],
     imports: [SharedModule, RouterModule.forChild(systemRoutes)],
 })
 })
 export class SystemModule {}
 export class SystemModule {}

+ 0 - 8
packages/admin-ui/src/lib/system/src/system.routes.ts

@@ -3,7 +3,6 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 
 
 import { HealthCheckComponent } from './components/health-check/health-check.component';
 import { HealthCheckComponent } from './components/health-check/health-check.component';
 import { JobListComponent } from './components/job-list/job-list.component';
 import { JobListComponent } from './components/job-list/job-list.component';
-import { ScheduledTaskListComponent } from './components/scheduled-tasks/scheduled-task-list.component';
 
 
 export const systemRoutes: Route[] = [
 export const systemRoutes: Route[] = [
     {
     {
@@ -20,11 +19,4 @@ export const systemRoutes: Route[] = [
             breadcrumb: _('breadcrumb.system-status'),
             breadcrumb: _('breadcrumb.system-status'),
         },
         },
     },
     },
-    {
-        path: 'scheduled-tasks',
-        component: ScheduledTaskListComponent,
-        data: {
-            breadcrumb: _('breadcrumb.scheduled-tasks'),
-        },
-    },
 ];
 ];

+ 0 - 23
packages/asset-server-plugin/e2e/graphql/generated-e2e-asset-server-plugin-types.ts

@@ -2990,7 +2990,6 @@ export type Mutation = {
     updateProvince: Province;
     updateProvince: Province;
     /** Update an existing Role */
     /** Update an existing Role */
     updateRole: Role;
     updateRole: Role;
-    updateScheduledTask: ScheduledTask;
     /** Update an existing Seller */
     /** Update an existing Seller */
     updateSeller: Seller;
     updateSeller: Seller;
     /** Update an existing ShippingMethod */
     /** Update an existing ShippingMethod */
@@ -3655,10 +3654,6 @@ export type MutationUpdateRoleArgs = {
     input: UpdateRoleInput;
     input: UpdateRoleInput;
 };
 };
 
 
-export type MutationUpdateScheduledTaskArgs = {
-    input: UpdateScheduledTaskInput;
-};
-
 export type MutationUpdateSellerArgs = {
 export type MutationUpdateSellerArgs = {
     input: UpdateSellerInput;
     input: UpdateSellerInput;
 };
 };
@@ -4891,7 +4886,6 @@ export type Query = {
     provinces: ProvinceList;
     provinces: ProvinceList;
     role?: Maybe<Role>;
     role?: Maybe<Role>;
     roles: RoleList;
     roles: RoleList;
-    scheduledTasks: Array<ScheduledTask>;
     search: SearchResponse;
     search: SearchResponse;
     seller?: Maybe<Seller>;
     seller?: Maybe<Seller>;
     sellers: SellerList;
     sellers: SellerList;
@@ -5394,18 +5388,6 @@ export type Sale = Node &
         updatedAt: Scalars['DateTime']['output'];
         updatedAt: Scalars['DateTime']['output'];
     };
     };
 
 
-export type ScheduledTask = {
-    description: Scalars['String']['output'];
-    enabled: Scalars['Boolean']['output'];
-    id: Scalars['String']['output'];
-    isRunning: Scalars['Boolean']['output'];
-    lastExecutedAt?: Maybe<Scalars['DateTime']['output']>;
-    lastResult?: Maybe<Scalars['JSON']['output']>;
-    nextExecutionAt?: Maybe<Scalars['DateTime']['output']>;
-    schedule: Scalars['String']['output'];
-    scheduleDescription: Scalars['String']['output'];
-};
-
 export type SearchInput = {
 export type SearchInput = {
     collectionId?: InputMaybe<Scalars['ID']['input']>;
     collectionId?: InputMaybe<Scalars['ID']['input']>;
     collectionSlug?: InputMaybe<Scalars['String']['input']>;
     collectionSlug?: InputMaybe<Scalars['String']['input']>;
@@ -6347,11 +6329,6 @@ export type UpdateRoleInput = {
     permissions?: InputMaybe<Array<Permission>>;
     permissions?: InputMaybe<Array<Permission>>;
 };
 };
 
 
-export type UpdateScheduledTaskInput = {
-    enabled?: InputMaybe<Scalars['Boolean']['input']>;
-    id: Scalars['String']['input'];
-};
-
 export type UpdateSellerInput = {
 export type UpdateSellerInput = {
     customFields?: InputMaybe<Scalars['JSON']['input']>;
     customFields?: InputMaybe<Scalars['JSON']['input']>;
     id: Scalars['ID']['input'];
     id: Scalars['ID']['input'];

+ 2 - 2
packages/asset-server-plugin/package.json

@@ -27,12 +27,12 @@
     "devDependencies": {
     "devDependencies": {
         "@aws-sdk/client-s3": "^3.529.1",
         "@aws-sdk/client-s3": "^3.529.1",
         "@aws-sdk/lib-storage": "^3.529.1",
         "@aws-sdk/lib-storage": "^3.529.1",
-        "@types/express": "^4.17.21",
+        "@types/express": "^5.0.1",
         "@types/fs-extra": "^11.0.4",
         "@types/fs-extra": "^11.0.4",
         "@types/node-fetch": "^2.6.11",
         "@types/node-fetch": "^2.6.11",
         "@vendure/common": "3.2.2",
         "@vendure/common": "3.2.2",
         "@vendure/core": "3.2.2",
         "@vendure/core": "3.2.2",
-        "express": "^4.18.3",
+        "express": "^5.1.0",
         "node-fetch": "^2.7.0",
         "node-fetch": "^2.7.0",
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
         "typescript": "5.8.2"
         "typescript": "5.8.2"

+ 0 - 25
packages/common/src/generated-types.ts

@@ -3041,7 +3041,6 @@ export type Mutation = {
   updateProvince: Province;
   updateProvince: Province;
   /** Update an existing Role */
   /** Update an existing Role */
   updateRole: Role;
   updateRole: Role;
-  updateScheduledTask: ScheduledTask;
   /** Update an existing Seller */
   /** Update an existing Seller */
   updateSeller: Seller;
   updateSeller: Seller;
   /** Update an existing ShippingMethod */
   /** Update an existing ShippingMethod */
@@ -3861,11 +3860,6 @@ export type MutationUpdateRoleArgs = {
 };
 };
 
 
 
 
-export type MutationUpdateScheduledTaskArgs = {
-  input: UpdateScheduledTaskInput;
-};
-
-
 export type MutationUpdateSellerArgs = {
 export type MutationUpdateSellerArgs = {
   input: UpdateSellerInput;
   input: UpdateSellerInput;
 };
 };
@@ -5153,7 +5147,6 @@ export type Query = {
   provinces: ProvinceList;
   provinces: ProvinceList;
   role?: Maybe<Role>;
   role?: Maybe<Role>;
   roles: RoleList;
   roles: RoleList;
-  scheduledTasks: Array<ScheduledTask>;
   search: SearchResponse;
   search: SearchResponse;
   seller?: Maybe<Seller>;
   seller?: Maybe<Seller>;
   sellers: SellerList;
   sellers: SellerList;
@@ -5713,19 +5706,6 @@ export type Sale = Node & StockMovement & {
   updatedAt: Scalars['DateTime']['output'];
   updatedAt: Scalars['DateTime']['output'];
 };
 };
 
 
-export type ScheduledTask = {
-  __typename?: 'ScheduledTask';
-  description: Scalars['String']['output'];
-  enabled: Scalars['Boolean']['output'];
-  id: Scalars['String']['output'];
-  isRunning: Scalars['Boolean']['output'];
-  lastExecutedAt?: Maybe<Scalars['DateTime']['output']>;
-  lastResult?: Maybe<Scalars['JSON']['output']>;
-  nextExecutionAt?: Maybe<Scalars['DateTime']['output']>;
-  schedule: Scalars['String']['output'];
-  scheduleDescription: Scalars['String']['output'];
-};
-
 export type SearchInput = {
 export type SearchInput = {
   collectionId?: InputMaybe<Scalars['ID']['input']>;
   collectionId?: InputMaybe<Scalars['ID']['input']>;
   collectionSlug?: InputMaybe<Scalars['String']['input']>;
   collectionSlug?: InputMaybe<Scalars['String']['input']>;
@@ -6682,11 +6662,6 @@ export type UpdateRoleInput = {
   permissions?: InputMaybe<Array<Permission>>;
   permissions?: InputMaybe<Array<Permission>>;
 };
 };
 
 
-export type UpdateScheduledTaskInput = {
-  enabled?: InputMaybe<Scalars['Boolean']['input']>;
-  id: Scalars['String']['input'];
-};
-
 export type UpdateSellerInput = {
 export type UpdateSellerInput = {
   customFields?: InputMaybe<Scalars['JSON']['input']>;
   customFields?: InputMaybe<Scalars['JSON']['input']>;
   id: Scalars['ID']['input'];
   id: Scalars['ID']['input'];

+ 0 - 23
packages/core/e2e/graphql/generated-e2e-admin-types.ts

@@ -2990,7 +2990,6 @@ export type Mutation = {
     updateProvince: Province;
     updateProvince: Province;
     /** Update an existing Role */
     /** Update an existing Role */
     updateRole: Role;
     updateRole: Role;
-    updateScheduledTask: ScheduledTask;
     /** Update an existing Seller */
     /** Update an existing Seller */
     updateSeller: Seller;
     updateSeller: Seller;
     /** Update an existing ShippingMethod */
     /** Update an existing ShippingMethod */
@@ -3655,10 +3654,6 @@ export type MutationUpdateRoleArgs = {
     input: UpdateRoleInput;
     input: UpdateRoleInput;
 };
 };
 
 
-export type MutationUpdateScheduledTaskArgs = {
-    input: UpdateScheduledTaskInput;
-};
-
 export type MutationUpdateSellerArgs = {
 export type MutationUpdateSellerArgs = {
     input: UpdateSellerInput;
     input: UpdateSellerInput;
 };
 };
@@ -4891,7 +4886,6 @@ export type Query = {
     provinces: ProvinceList;
     provinces: ProvinceList;
     role?: Maybe<Role>;
     role?: Maybe<Role>;
     roles: RoleList;
     roles: RoleList;
-    scheduledTasks: Array<ScheduledTask>;
     search: SearchResponse;
     search: SearchResponse;
     seller?: Maybe<Seller>;
     seller?: Maybe<Seller>;
     sellers: SellerList;
     sellers: SellerList;
@@ -5394,18 +5388,6 @@ export type Sale = Node &
         updatedAt: Scalars['DateTime']['output'];
         updatedAt: Scalars['DateTime']['output'];
     };
     };
 
 
-export type ScheduledTask = {
-    description: Scalars['String']['output'];
-    enabled: Scalars['Boolean']['output'];
-    id: Scalars['String']['output'];
-    isRunning: Scalars['Boolean']['output'];
-    lastExecutedAt?: Maybe<Scalars['DateTime']['output']>;
-    lastResult?: Maybe<Scalars['JSON']['output']>;
-    nextExecutionAt?: Maybe<Scalars['DateTime']['output']>;
-    schedule: Scalars['String']['output'];
-    scheduleDescription: Scalars['String']['output'];
-};
-
 export type SearchInput = {
 export type SearchInput = {
     collectionId?: InputMaybe<Scalars['ID']['input']>;
     collectionId?: InputMaybe<Scalars['ID']['input']>;
     collectionSlug?: InputMaybe<Scalars['String']['input']>;
     collectionSlug?: InputMaybe<Scalars['String']['input']>;
@@ -6347,11 +6329,6 @@ export type UpdateRoleInput = {
     permissions?: InputMaybe<Array<Permission>>;
     permissions?: InputMaybe<Array<Permission>>;
 };
 };
 
 
-export type UpdateScheduledTaskInput = {
-    enabled?: InputMaybe<Scalars['Boolean']['input']>;
-    id: Scalars['String']['input'];
-};
-
 export type UpdateSellerInput = {
 export type UpdateSellerInput = {
     customFields?: InputMaybe<Scalars['JSON']['input']>;
     customFields?: InputMaybe<Scalars['JSON']['input']>;
     id: Scalars['ID']['input'];
     id: Scalars['ID']['input'];

+ 8 - 11
packages/core/package.json

@@ -40,7 +40,7 @@
         "cli/**/*"
         "cli/**/*"
     ],
     ],
     "dependencies": {
     "dependencies": {
-        "@apollo/server": "^4.11.3",
+        "@apollo/server": "4.11.3",
         "@graphql-tools/stitch": "^9.4.5",
         "@graphql-tools/stitch": "^9.4.5",
         "@nestjs/apollo": "~13.0.4",
         "@nestjs/apollo": "~13.0.4",
         "@nestjs/common": "~11.0.12",
         "@nestjs/common": "~11.0.12",
@@ -53,21 +53,18 @@
         "bcrypt": "^5.1.1",
         "bcrypt": "^5.1.1",
         "body-parser": "^1.20.2",
         "body-parser": "^1.20.2",
         "cookie-session": "^2.1.0",
         "cookie-session": "^2.1.0",
-        "cron-time-generator": "^2.0.3",
-        "croner": "^9.0.0",
-        "cronstrue": "^2.57.0",
         "csv-parse": "^5.6.0",
         "csv-parse": "^5.6.0",
-        "express": "^5.0.1",
+        "express": "^5.1.0",
         "fs-extra": "^11.2.0",
         "fs-extra": "^11.2.0",
         "graphql": "^16.10.0",
         "graphql": "^16.10.0",
         "graphql-fields": "^2.0.3",
         "graphql-fields": "^2.0.3",
         "graphql-scalars": "^1.24.0",
         "graphql-scalars": "^1.24.0",
         "graphql-tag": "^2.12.6",
         "graphql-tag": "^2.12.6",
         "graphql-upload": "^17.0.0",
         "graphql-upload": "^17.0.0",
-        "http-proxy-middleware": "^2.0.7",
-        "i18next": "^23.12.1",
-        "i18next-fs-backend": "^2.3.1",
-        "i18next-http-middleware": "^3.5.0",
+        "http-proxy-middleware": "^3.0.3",
+        "i18next": "^24.2.3",
+        "i18next-fs-backend": "^2.6.0",
+        "i18next-http-middleware": "^3.7.2",
         "i18next-icu": "^2.3.0",
         "i18next-icu": "^2.3.0",
         "image-size": "^1.1.1",
         "image-size": "^1.1.1",
         "intl-messageformat": "^10.5.11",
         "intl-messageformat": "^10.5.11",
@@ -84,8 +81,8 @@
     "devDependencies": {
     "devDependencies": {
         "@nestjs/testing": "~11.0.12",
         "@nestjs/testing": "~11.0.12",
         "@types/bcrypt": "^5.0.2",
         "@types/bcrypt": "^5.0.2",
-        "@types/cookie-session": "^2.0.48",
-        "@types/express": "^4.17.21",
+        "@types/cookie-session": "^2.0.49",
+        "@types/express": "^5.0.1",
         "@types/fs-extra": "^11.0.4",
         "@types/fs-extra": "^11.0.4",
         "@types/graphql-upload": "^16.0.7",
         "@types/graphql-upload": "^16.0.7",
         "@types/gulp": "^4.0.17",
         "@types/gulp": "^4.0.17",

+ 0 - 4
packages/core/src/api/api-internal-modules.ts

@@ -6,7 +6,6 @@ import { ConnectionModule } from '../connection/connection.module';
 import { DataImportModule } from '../data-import/data-import.module';
 import { DataImportModule } from '../data-import/data-import.module';
 import { JobQueueModule } from '../job-queue/job-queue.module';
 import { JobQueueModule } from '../job-queue/job-queue.module';
 import { createDynamicGraphQlModulesForPlugins } from '../plugin/dynamic-plugin-api.module';
 import { createDynamicGraphQlModulesForPlugins } from '../plugin/dynamic-plugin-api.module';
-import { SchedulerModule } from '../scheduler/scheduler.module';
 import { ServiceModule } from '../service/service.module';
 import { ServiceModule } from '../service/service.module';
 
 
 import { ConfigurableOperationCodec } from './common/configurable-operation-codec';
 import { ConfigurableOperationCodec } from './common/configurable-operation-codec';
@@ -32,7 +31,6 @@ import { ProductOptionResolver } from './resolvers/admin/product-option.resolver
 import { ProductResolver } from './resolvers/admin/product.resolver';
 import { ProductResolver } from './resolvers/admin/product.resolver';
 import { PromotionResolver } from './resolvers/admin/promotion.resolver';
 import { PromotionResolver } from './resolvers/admin/promotion.resolver';
 import { RoleResolver } from './resolvers/admin/role.resolver';
 import { RoleResolver } from './resolvers/admin/role.resolver';
-import { ScheduledTaskResolver } from './resolvers/admin/scheduled-task.resolver';
 import { SearchResolver } from './resolvers/admin/search.resolver';
 import { SearchResolver } from './resolvers/admin/search.resolver';
 import { SellerResolver } from './resolvers/admin/seller.resolver';
 import { SellerResolver } from './resolvers/admin/seller.resolver';
 import { ShippingMethodResolver } from './resolvers/admin/shipping-method.resolver';
 import { ShippingMethodResolver } from './resolvers/admin/shipping-method.resolver';
@@ -114,7 +112,6 @@ const adminResolvers = [
     PromotionResolver,
     PromotionResolver,
     RoleResolver,
     RoleResolver,
     SearchResolver,
     SearchResolver,
-    ScheduledTaskResolver,
     ShippingMethodResolver,
     ShippingMethodResolver,
     StockLocationResolver,
     StockLocationResolver,
     TagResolver,
     TagResolver,
@@ -200,7 +197,6 @@ export class ApiSharedModule {}
     imports: [
     imports: [
         ApiSharedModule,
         ApiSharedModule,
         JobQueueModule,
         JobQueueModule,
-        SchedulerModule,
         DataImportModule,
         DataImportModule,
         ...createDynamicGraphQlModulesForPlugins('admin'),
         ...createDynamicGraphQlModulesForPlugins('admin'),
     ],
     ],

+ 0 - 22
packages/core/src/api/resolvers/admin/scheduled-task.resolver.ts

@@ -1,22 +0,0 @@
-import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
-import { MutationUpdateScheduledTaskArgs, Permission } from '@vendure/common/lib/generated-types';
-
-import { SchedulerService } from '../../../scheduler/scheduler.service';
-import { Allow } from '../../decorators/allow.decorator';
-
-@Resolver()
-export class ScheduledTaskResolver {
-    constructor(private readonly schedulerService: SchedulerService) {}
-
-    @Query()
-    @Allow(Permission.ReadSettings, Permission.ReadSystem)
-    scheduledTasks() {
-        return this.schedulerService.getTaskList();
-    }
-
-    @Mutation()
-    @Allow(Permission.UpdateSettings, Permission.UpdateSystem)
-    updateScheduledTask(@Args() { input }: MutationUpdateScheduledTaskArgs) {
-        return this.schedulerService.updateTask(input);
-    }
-}

+ 1 - 1
packages/core/src/api/schema/admin-api/province.api.graphql

@@ -19,7 +19,7 @@ input ProvinceTranslationInput {
     languageCode: LanguageCode!
     languageCode: LanguageCode!
     name: String
     name: String
 }
 }
- 
+
 input CreateProvinceInput {
 input CreateProvinceInput {
     code: String!
     code: String!
     translations: [ProvinceTranslationInput!]!
     translations: [ProvinceTranslationInput!]!

+ 0 - 24
packages/core/src/api/schema/admin-api/scheduled-task.api.graphql

@@ -1,24 +0,0 @@
-type Query {
-    scheduledTasks: [ScheduledTask!]!
-}
-
-input UpdateScheduledTaskInput {
-    id: String!
-    enabled: Boolean
-}
-
-type Mutation {
-    updateScheduledTask(input: UpdateScheduledTaskInput!): ScheduledTask!
-}
-
-type ScheduledTask {
-    id: String!
-    description: String!
-    schedule: String!
-    scheduleDescription: String!
-    lastExecutedAt: DateTime
-    nextExecutionAt: DateTime
-    isRunning: Boolean!
-    lastResult: JSON
-    enabled: Boolean!
-} 

+ 13 - 1
packages/core/src/config/asset-storage-strategy/asset-storage-strategy.ts

@@ -1,8 +1,20 @@
-import { Request } from 'express';
 import { Stream } from 'stream';
 import { Stream } from 'stream';
 
 
 import { InjectableStrategy } from '../../common/types/injectable-strategy';
 import { InjectableStrategy } from '../../common/types/injectable-strategy';
 
 
+// This is a workaround for a type mismatch between express v5 (Vendure core)
+// and express v4 (several transitive dependencies). Can be replaced with the
+// actual Request type once the ecosystem has more significantly shifted to v5.
+type Request = {
+    headers: Record<string, string>;
+    url: string;
+    method: string;
+    body: any;
+    query: any;
+    params: any;
+    ip: string;
+} & any;
+
 /**
 /**
  * @description
  * @description
  * The AssetPersistenceStrategy determines how Asset files are physically stored
  * The AssetPersistenceStrategy determines how Asset files are physically stored

+ 0 - 2
packages/core/src/config/config.module.ts

@@ -87,7 +87,6 @@ export class ConfigModule implements OnApplicationBootstrap, OnApplicationShutdo
         } = this.configService.authOptions;
         } = this.configService.authOptions;
         const { taxZoneStrategy, taxLineCalculationStrategy } = this.configService.taxOptions;
         const { taxZoneStrategy, taxLineCalculationStrategy } = this.configService.taxOptions;
         const { jobQueueStrategy, jobBufferStorageStrategy } = this.configService.jobQueueOptions;
         const { jobQueueStrategy, jobBufferStorageStrategy } = this.configService.jobQueueOptions;
-        const { schedulerStrategy } = this.configService.schedulerOptions;
         const {
         const {
             mergeStrategy,
             mergeStrategy,
             checkoutMergeStrategy,
             checkoutMergeStrategy,
@@ -157,7 +156,6 @@ export class ConfigModule implements OnApplicationBootstrap, OnApplicationShutdo
             ...refundProcess,
             ...refundProcess,
             cacheStrategy,
             cacheStrategy,
             ...orderInterceptors,
             ...orderInterceptors,
-            schedulerStrategy,
         ];
         ];
     }
     }
 
 

+ 0 - 5
packages/core/src/config/config.service.ts

@@ -18,7 +18,6 @@ import {
     PaymentOptions,
     PaymentOptions,
     PromotionOptions,
     PromotionOptions,
     RuntimeVendureConfig,
     RuntimeVendureConfig,
-    SchedulerOptions,
     ShippingOptions,
     ShippingOptions,
     SystemOptions,
     SystemOptions,
     TaxOptions,
     TaxOptions,
@@ -117,10 +116,6 @@ export class ConfigService implements VendureConfig {
         return this.activeConfig.jobQueueOptions;
         return this.activeConfig.jobQueueOptions;
     }
     }
 
 
-    get schedulerOptions(): Required<SchedulerOptions> {
-        return this.activeConfig.schedulerOptions;
-    }
-
     get systemOptions(): Required<SystemOptions> {
     get systemOptions(): Required<SystemOptions> {
         return this.activeConfig.systemOptions;
         return this.activeConfig.systemOptions;
     }
     }

+ 2 - 7
packages/core/src/config/default-config.ts

@@ -1,17 +1,15 @@
 import { LanguageCode } from '@vendure/common/lib/generated-types';
 import { LanguageCode } from '@vendure/common/lib/generated-types';
 import {
 import {
     DEFAULT_AUTH_TOKEN_HEADER_KEY,
     DEFAULT_AUTH_TOKEN_HEADER_KEY,
-    DEFAULT_CHANNEL_TOKEN_KEY,
     SUPER_ADMIN_USER_IDENTIFIER,
     SUPER_ADMIN_USER_IDENTIFIER,
     SUPER_ADMIN_USER_PASSWORD,
     SUPER_ADMIN_USER_PASSWORD,
+    DEFAULT_CHANNEL_TOKEN_KEY,
 } from '@vendure/common/lib/shared-constants';
 } from '@vendure/common/lib/shared-constants';
 import { randomBytes } from 'crypto';
 import { randomBytes } from 'crypto';
 
 
 import { TypeORMHealthCheckStrategy } from '../health-check/typeorm-health-check-strategy';
 import { TypeORMHealthCheckStrategy } from '../health-check/typeorm-health-check-strategy';
 import { InMemoryJobQueueStrategy } from '../job-queue/in-memory-job-queue-strategy';
 import { InMemoryJobQueueStrategy } from '../job-queue/in-memory-job-queue-strategy';
 import { InMemoryJobBufferStorageStrategy } from '../job-queue/job-buffer/in-memory-job-buffer-storage-strategy';
 import { InMemoryJobBufferStorageStrategy } from '../job-queue/job-buffer/in-memory-job-buffer-storage-strategy';
-import { NoopSchedulerStrategy } from '../scheduler/noop-scheduler-strategy';
-import { cleanSessionsTask } from '../scheduler/tasks/clean-sessions-task';
 
 
 import { DefaultAssetImportStrategy } from './asset-import-strategy/default-asset-import-strategy';
 import { DefaultAssetImportStrategy } from './asset-import-strategy/default-asset-import-strategy';
 import { DefaultAssetNamingStrategy } from './asset-naming-strategy/default-asset-naming-strategy';
 import { DefaultAssetNamingStrategy } from './asset-naming-strategy/default-asset-naming-strategy';
@@ -26,6 +24,7 @@ import { DefaultProductVariantPriceCalculationStrategy } from './catalog/default
 import { DefaultProductVariantPriceSelectionStrategy } from './catalog/default-product-variant-price-selection-strategy';
 import { DefaultProductVariantPriceSelectionStrategy } from './catalog/default-product-variant-price-selection-strategy';
 import { DefaultProductVariantPriceUpdateStrategy } from './catalog/default-product-variant-price-update-strategy';
 import { DefaultProductVariantPriceUpdateStrategy } from './catalog/default-product-variant-price-update-strategy';
 import { DefaultStockDisplayStrategy } from './catalog/default-stock-display-strategy';
 import { DefaultStockDisplayStrategy } from './catalog/default-stock-display-strategy';
+import { DefaultStockLocationStrategy } from './catalog/default-stock-location-strategy';
 import { MultiChannelStockLocationStrategy } from './catalog/multi-channel-stock-location-strategy';
 import { MultiChannelStockLocationStrategy } from './catalog/multi-channel-stock-location-strategy';
 import { AutoIncrementIdStrategy } from './entity/auto-increment-id-strategy';
 import { AutoIncrementIdStrategy } from './entity/auto-increment-id-strategy';
 import { DefaultMoneyStrategy } from './entity/default-money-strategy';
 import { DefaultMoneyStrategy } from './entity/default-money-strategy';
@@ -195,10 +194,6 @@ export const defaultConfig: RuntimeVendureConfig = {
         activeQueues: [],
         activeQueues: [],
         prefix: '',
         prefix: '',
     },
     },
-    schedulerOptions: {
-        schedulerStrategy: new NoopSchedulerStrategy(),
-        tasks: [cleanSessionsTask],
-    },
     customFields: {
     customFields: {
         Address: [],
         Address: [],
         Administrator: [],
         Administrator: [],

+ 0 - 33
packages/core/src/config/vendure-config.ts

@@ -9,8 +9,6 @@ import { DataSourceOptions } from 'typeorm';
 import { Middleware } from '../common';
 import { Middleware } from '../common';
 import { PermissionDefinition } from '../common/permission-definition';
 import { PermissionDefinition } from '../common/permission-definition';
 import { JobBufferStorageStrategy } from '../job-queue/job-buffer/job-buffer-storage-strategy';
 import { JobBufferStorageStrategy } from '../job-queue/job-buffer/job-buffer-storage-strategy';
-import { ScheduledTask } from '../scheduler/scheduled-task';
-import { SchedulerStrategy } from '../scheduler/scheduler-strategy';
 
 
 import { AssetImportStrategy } from './asset-import-strategy/asset-import-strategy';
 import { AssetImportStrategy } from './asset-import-strategy/asset-import-strategy';
 import { AssetNamingStrategy } from './asset-naming-strategy/asset-naming-strategy';
 import { AssetNamingStrategy } from './asset-naming-strategy/asset-naming-strategy';
@@ -964,29 +962,6 @@ export interface JobQueueOptions {
     prefix?: string;
     prefix?: string;
 }
 }
 
 
-/**
- * @description
- * Options related to scheduled tasks..
- *
- * @since 3.3.0
- * @docsCategory scheduled-tasks
- */
-export interface SchedulerOptions {
-    /**
-     * @description
-     * The strategy used to execute scheduled tasks. If you are using the
-     * {@link DefaultSchedulerPlugin} (which is recommended) then this will be set to the
-     * {@link DefaultSchedulerStrategy}.
-     */
-    schedulerStrategy?: SchedulerStrategy;
-
-    /**
-     * @description
-     * The tasks to be executed.
-     */
-    tasks?: ScheduledTask[];
-}
-
 /**
 /**
  * @description
  * @description
  * Options relating to the internal handling of entities.
  * Options relating to the internal handling of entities.
@@ -1236,13 +1211,6 @@ export interface VendureConfig {
      * Configures how the job queue is persisted and processed.
      * Configures how the job queue is persisted and processed.
      */
      */
     jobQueueOptions?: JobQueueOptions;
     jobQueueOptions?: JobQueueOptions;
-    /**
-     * @description
-     * Configures the scheduler mechanism and tasks.
-     *
-     * @since 3.3.0
-     */
-    schedulerOptions?: SchedulerOptions;
     /**
     /**
      * @description
      * @description
      * Configures system options
      * Configures system options
@@ -1268,7 +1236,6 @@ export interface RuntimeVendureConfig extends Required<VendureConfig> {
     entityOptions: Required<Omit<EntityOptions, 'entityIdStrategy'>> & EntityOptions;
     entityOptions: Required<Omit<EntityOptions, 'entityIdStrategy'>> & EntityOptions;
     importExportOptions: Required<ImportExportOptions>;
     importExportOptions: Required<ImportExportOptions>;
     jobQueueOptions: Required<JobQueueOptions>;
     jobQueueOptions: Required<JobQueueOptions>;
-    schedulerOptions: Required<SchedulerOptions>;
     orderOptions: Required<OrderOptions>;
     orderOptions: Required<OrderOptions>;
     promotionOptions: Required<PromotionOptions>;
     promotionOptions: Required<PromotionOptions>;
     shippingOptions: Required<ShippingOptions>;
     shippingOptions: Required<ShippingOptions>;

+ 3 - 1
packages/core/src/i18n/i18n.service.ts

@@ -75,7 +75,9 @@ export class I18nService implements OnModuleInit {
      * @internal
      * @internal
      */
      */
     handle(): Handler {
     handle(): Handler {
-        return i18nextMiddleware.handle(i18next);
+        // Explicit cast due to type mismatch between express v5 (Vendure core)
+        // and express v4 (several transitive dependencies)
+        return i18nextMiddleware.handle(i18next) as unknown as Handler;
     }
     }
 
 
     /**
     /**

+ 0 - 1
packages/core/src/index.ts

@@ -16,7 +16,6 @@ export * from './data-import/index';
 export * from './service/index';
 export * from './service/index';
 export * from './i18n/index';
 export * from './i18n/index';
 export * from './worker/index';
 export * from './worker/index';
-export * from './scheduler/index';
 export * from '@vendure/common/lib/shared-types';
 export * from '@vendure/common/lib/shared-types';
 export {
 export {
     Permission,
     Permission,

+ 0 - 2
packages/core/src/plugin/default-scheduler-plugin/constants.ts

@@ -1,2 +0,0 @@
-export const DEFAULT_SCHEDULER_PLUGIN_OPTIONS = Symbol('DEFAULT_SCHEDULER_PLUGIN_OPTIONS');
-export const DEFAULT_TIMEOUT = 60000;

+ 0 - 174
packages/core/src/plugin/default-scheduler-plugin/default-scheduler-strategy.ts

@@ -1,174 +0,0 @@
-import { UpdateScheduledTaskInput } from '@vendure/common/lib/generated-types';
-import { Cron } from 'croner';
-import ms from 'ms';
-
-import { Injector } from '../../common';
-import { assertFound } from '../../common/utils';
-import { Logger } from '../../config/logger/vendure-logger';
-import { TransactionalConnection } from '../../connection';
-import { ProcessContext } from '../../process-context';
-import { ScheduledTask } from '../../scheduler/scheduled-task';
-import { SchedulerStrategy, TaskReport } from '../../scheduler/scheduler-strategy';
-
-import { DEFAULT_SCHEDULER_PLUGIN_OPTIONS } from './constants';
-import { ScheduledTaskRecord } from './scheduled-task-record.entity';
-import { DefaultSchedulerPluginOptions } from './types';
-/**
- * @description
- * The default {@link SchedulerStrategy} implementation that uses the database to
- * execute scheduled tasks. This strategy is configured when you use the
- * {@link DefaultSchedulerPlugin}.
- *
- * @since 3.3.0
- * @docsCategory scheduled-tasks
- */
-export class DefaultSchedulerStrategy implements SchedulerStrategy {
-    private connection: TransactionalConnection;
-    private injector: Injector;
-    private processContext: ProcessContext;
-    private tasks: Map<string, { task: ScheduledTask; isRegistered: boolean }> = new Map();
-    private pluginOptions: DefaultSchedulerPluginOptions;
-    private runningTasks: ScheduledTask[] = [];
-
-    init(injector: Injector) {
-        this.connection = injector.get(TransactionalConnection);
-        this.processContext = injector.get(ProcessContext);
-        this.pluginOptions = injector.get(DEFAULT_SCHEDULER_PLUGIN_OPTIONS);
-        this.injector = injector;
-    }
-
-    async destroy() {
-        for (const task of this.runningTasks) {
-            await this.connection.rawConnection
-                .getRepository(ScheduledTaskRecord)
-                .update({ taskId: task.id }, { lockedAt: null });
-            Logger.info(`Released lock for task "${task.id}"`);
-        }
-    }
-
-    executeTask(task: ScheduledTask) {
-        return async (job: Cron) => {
-            if (this.processContext.isServer) {
-                return;
-            }
-            await this.ensureTaskIsRegistered(task);
-            const taskEntity = await this.connection.rawConnection
-                .getRepository(ScheduledTaskRecord)
-                .createQueryBuilder('task')
-                .update()
-                .set({ lockedAt: new Date() })
-                .where('taskId = :taskId', { taskId: task.id })
-                .andWhere('lockedAt IS NULL')
-                .andWhere('enabled = TRUE')
-                .execute();
-            if (!taskEntity.affected) {
-                return;
-            }
-
-            Logger.verbose(`Executing scheduled task "${task.id}"`);
-            try {
-                this.runningTasks.push(task);
-                const timeout = task.options.timeout ?? (this.pluginOptions.defaultTimeout as number);
-                const timeoutMs = typeof timeout === 'number' ? timeout : ms(timeout);
-
-                let timeoutTimer: NodeJS.Timeout | undefined;
-                const timeoutPromise = new Promise((_, reject) => {
-                    timeoutTimer = setTimeout(() => {
-                        Logger.warn(`Scheduled task ${task.id} timed out after ${timeoutMs}ms`);
-                        reject(new Error('Task timed out'));
-                    }, timeoutMs);
-                });
-
-                const result = await Promise.race([task.execute(this.injector), timeoutPromise]);
-
-                if (timeoutTimer) {
-                    clearTimeout(timeoutTimer);
-                }
-
-                await this.connection.rawConnection.getRepository(ScheduledTaskRecord).update(
-                    {
-                        taskId: task.id,
-                    },
-                    {
-                        lastExecutedAt: new Date(),
-                        lockedAt: null,
-                        lastResult: result ?? '',
-                    },
-                );
-                Logger.verbose(`Scheduled task "${task.id}" completed successfully`);
-                this.runningTasks = this.runningTasks.filter(t => t !== task);
-            } catch (error) {
-                let errorMessage = 'Unknown error';
-                if (error instanceof Error) {
-                    errorMessage = error.message;
-                }
-                Logger.error(`Scheduled task "${task.id}" failed with error: ${errorMessage}`);
-                await this.connection.rawConnection.getRepository(ScheduledTaskRecord).update(
-                    {
-                        taskId: task.id,
-                    },
-                    {
-                        lockedAt: null,
-                        lastResult: { error: errorMessage } as any,
-                    },
-                );
-                this.runningTasks = this.runningTasks.filter(t => t !== task);
-            }
-        };
-    }
-
-    getTasks(): Promise<TaskReport[]> {
-        return this.connection.rawConnection
-            .getRepository(ScheduledTaskRecord)
-            .createQueryBuilder('task')
-            .getMany()
-            .then(tasks => {
-                return tasks.map(task => this.entityToReport(task));
-            });
-    }
-
-    getTask(id: string): Promise<TaskReport | undefined> {
-        return this.connection.rawConnection
-            .getRepository(ScheduledTaskRecord)
-            .createQueryBuilder('task')
-            .where('task.taskId = :id', { id })
-            .getOne()
-            .then(task => (task ? this.entityToReport(task) : undefined));
-    }
-
-    async updateTask(input: UpdateScheduledTaskInput): Promise<TaskReport> {
-        await this.connection.rawConnection
-            .getRepository(ScheduledTaskRecord)
-            .createQueryBuilder('task')
-            .update()
-            .set({ enabled: input.enabled })
-            .where('taskId = :id', { id: input.id })
-            .execute();
-        return assertFound(this.getTask(input.id));
-    }
-
-    private entityToReport(task: ScheduledTaskRecord): TaskReport {
-        return {
-            id: task.taskId,
-            lastExecutedAt: task.lastExecutedAt,
-            isRunning: task.lockedAt !== null,
-            lastResult: task.lastResult,
-            enabled: task.enabled,
-        };
-    }
-
-    private async ensureTaskIsRegistered(task: ScheduledTask) {
-        if (!this.tasks.get(task.id)?.isRegistered) {
-            await this.connection.rawConnection
-                .getRepository(ScheduledTaskRecord)
-                .createQueryBuilder()
-                .insert()
-                .into(ScheduledTaskRecord)
-                .values({ taskId: task.id })
-                .orIgnore()
-                .execute();
-
-            this.tasks.set(task.id, { task, isRegistered: true });
-        }
-    }
-}

+ 0 - 59
packages/core/src/plugin/default-scheduler-plugin/default-scheduler.plugin.ts

@@ -1,59 +0,0 @@
-import { PluginCommonModule } from '../../plugin/plugin-common.module';
-import { VendurePlugin } from '../../plugin/vendure-plugin';
-
-import { DEFAULT_SCHEDULER_PLUGIN_OPTIONS, DEFAULT_TIMEOUT } from './constants';
-import { DefaultSchedulerStrategy } from './default-scheduler-strategy';
-import { ScheduledTaskRecord } from './scheduled-task-record.entity';
-import { DefaultSchedulerPluginOptions } from './types';
-
-/**
- * @description
- * This plugin configures a default scheduling strategy that executes scheduled
- * tasks using the database to ensure that each task is executed exactly once
- * at the scheduled time, even if there are multiple instances of the worker
- * running.
- *
- * @example
- * ```ts
- * import { DefaultSchedulerPlugin, VendureConfig } from '@vendure/core';
- *
- * export const config: VendureConfig = {
- *   plugins: [
- *     DefaultSchedulerPlugin.init({
- *       // The default is 60s, but you can override it here
- *       defaultTimeout: '10s',
- *     }),
- *   ],
- * };
- * ```
- *
- * @since 3.3.0
- * @docsCategory scheduled-tasks
- * @docsPage DefaultSchedulerPlugin
- * @docsWeight 0
- */
-@VendurePlugin({
-    imports: [PluginCommonModule],
-    entities: [ScheduledTaskRecord],
-    configuration: config => {
-        config.schedulerOptions.schedulerStrategy = new DefaultSchedulerStrategy();
-        return config;
-    },
-    providers: [
-        {
-            provide: DEFAULT_SCHEDULER_PLUGIN_OPTIONS,
-            useValue: DefaultSchedulerPlugin.options,
-        },
-    ],
-    compatibility: '>0.0.0',
-})
-export class DefaultSchedulerPlugin {
-    static options: DefaultSchedulerPluginOptions = {
-        defaultTimeout: DEFAULT_TIMEOUT,
-    };
-
-    static init(config?: DefaultSchedulerPluginOptions) {
-        this.options = { ...this.options, ...(config || {}) };
-        return this;
-    }
-}

+ 0 - 26
packages/core/src/plugin/default-scheduler-plugin/scheduled-task-record.entity.ts

@@ -1,26 +0,0 @@
-import { Column, Entity, Unique } from 'typeorm';
-
-import { VendureEntity } from '../../entity/base/base.entity';
-
-@Entity()
-@Unique(['taskId'])
-export class ScheduledTaskRecord extends VendureEntity {
-    constructor(input: Partial<ScheduledTaskRecord>) {
-        super(input);
-    }
-
-    @Column()
-    taskId: string;
-
-    @Column({ default: true })
-    enabled: boolean;
-
-    @Column({ nullable: true, type: 'datetime', precision: 3 })
-    lockedAt: Date | null;
-
-    @Column({ nullable: true, type: 'datetime', precision: 3 })
-    lastExecutedAt: Date | null;
-
-    @Column({ type: 'json', nullable: true })
-    lastResult: Record<string, any> | string | number | null;
-}

+ 0 - 17
packages/core/src/plugin/default-scheduler-plugin/types.ts

@@ -1,17 +0,0 @@
-/**
- * @description
- * The options for the {@link DefaultSchedulerPlugin}.
- *
- * @since 3.3.0
- * @docsCategory scheduled-tasks
- * @docsPage DefaultSchedulerPlugin
- */
-export interface DefaultSchedulerPluginOptions {
-    /**
-     * @description
-     * The default timeout for scheduled tasks.
-     *
-     * @default 60_000ms
-     */
-    defaultTimeout?: string | number;
-}

+ 0 - 1
packages/core/src/plugin/index.ts

@@ -4,7 +4,6 @@ export * from './default-job-queue-plugin/job-record-buffer.entity';
 export * from './default-job-queue-plugin/sql-job-buffer-storage-strategy';
 export * from './default-job-queue-plugin/sql-job-buffer-storage-strategy';
 export * from './default-cache-plugin/default-cache-plugin';
 export * from './default-cache-plugin/default-cache-plugin';
 export * from './default-cache-plugin/sql-cache-strategy';
 export * from './default-cache-plugin/sql-cache-strategy';
-export * from './default-scheduler-plugin/default-scheduler.plugin';
 export * from './redis-cache-plugin/redis-cache-plugin';
 export * from './redis-cache-plugin/redis-cache-plugin';
 export * from './redis-cache-plugin/redis-cache-strategy';
 export * from './redis-cache-plugin/redis-cache-strategy';
 export * from './redis-cache-plugin/types';
 export * from './redis-cache-plugin/types';

+ 17 - 19
packages/core/src/plugin/plugin-utils.ts

@@ -1,7 +1,7 @@
 import { RequestHandler } from 'express';
 import { RequestHandler } from 'express';
 import { createProxyMiddleware } from 'http-proxy-middleware';
 import { createProxyMiddleware } from 'http-proxy-middleware';
 
 
-import { Logger, RuntimeVendureConfig, VendureConfig } from '../config';
+import { Logger } from '../config';
 
 
 /**
 /**
  * @description
  * @description
@@ -43,24 +43,22 @@ export function createProxyHandler(options: ProxyOptions): RequestHandler {
         pathRewrite: {
         pathRewrite: {
             [`^${route}`]: '/' + (options.basePath || ''),
             [`^${route}`]: '/' + (options.basePath || ''),
         },
         },
-        logProvider(provider) {
-            return {
-                log(message: string) {
-                    Logger.debug(message, options.label);
-                },
-                debug(message: string) {
-                    Logger.debug(message, options.label);
-                },
-                info(message: string) {
-                    Logger.debug(message, options.label);
-                },
-                warn(message: string) {
-                    Logger.warn(message, options.label);
-                },
-                error(message: string) {
-                    Logger.error(message, options.label);
-                },
-            };
+        logger: {
+            log(message: string) {
+                Logger.debug(message, options.label);
+            },
+            debug(message: string) {
+                Logger.debug(message, options.label);
+            },
+            info(message: string) {
+                Logger.debug(message, options.label);
+            },
+            warn(message: string) {
+                Logger.warn(message, options.label);
+            },
+            error(message: string) {
+                Logger.error(message, options.label);
+            },
         },
         },
     });
     });
     return middleware;
     return middleware;

+ 0 - 4
packages/core/src/scheduler/index.ts

@@ -1,4 +0,0 @@
-export * from './tasks/clean-sessions-task';
-export * from './scheduled-task';
-export * from './scheduler.service';
-export * from './scheduler-strategy';

+ 0 - 25
packages/core/src/scheduler/noop-scheduler-strategy.ts

@@ -1,25 +0,0 @@
-import { UpdateScheduledTaskInput } from '@vendure/common/lib/generated-types';
-
-import { Logger } from '../config/logger/vendure-logger';
-
-import { ScheduledTask } from './scheduled-task';
-import { SchedulerStrategy, TaskReport } from './scheduler-strategy';
-
-export class NoopSchedulerStrategy implements SchedulerStrategy {
-    getTasks(): Promise<TaskReport[]> {
-        return Promise.resolve([]);
-    }
-
-    getTask(id: string): Promise<TaskReport | undefined> {
-        return Promise.resolve(undefined);
-    }
-
-    executeTask(task: ScheduledTask) {
-        Logger.warn(`No task scheduler is configured! The task ${task.id} will not be executed.`);
-        return () => Promise.resolve();
-    }
-
-    updateTask(input: UpdateScheduledTaskInput): Promise<TaskReport> {
-        throw new Error(`Not implemented`);
-    }
-}

+ 0 - 138
packages/core/src/scheduler/scheduled-task.ts

@@ -1,138 +0,0 @@
-import CronTime from 'cron-time-generator';
-
-import { Injector } from '../common/index';
-/**
- * @description
- * The configuration for a scheduled task.
- *
- * @since 3.3.0
- * @docsCategory scheduled-tasks
- * @docsPage ScheduledTask
- */
-export interface ScheduledTaskConfig<C extends Record<string, any> = Record<string, any>> {
-    /**
-     * @description
-     * The unique identifier for the scheduled task.
-     */
-    id: string;
-    /**
-     * @description
-     * The description for the scheduled task.
-     */
-    description?: string;
-    /**
-     * @description
-     * Optional parameters that will be passed to the `execute` function.
-     */
-    params?: C;
-    /**
-     * @description
-     * The cron schedule for the scheduled task. This can be a standard cron expression or
-     * a function that returns a [cron-time-generator](https://www.npmjs.com/package/cron-time-generator)
-     * expression.
-     *
-     * @example
-     * ```ts
-     * // Standard cron expression
-     * { schedule: '0 0-23/5 * * *', } // every 5 hours
-     * { schedule: '0 22 * * *', } // every day at 10:00 PM
-     *
-     * // Cron-time-generator expression
-     * { schedule: cronTime => cronTime.every(2).minutes(), }
-     * { schedule: cronTime => cronTime.every(5).hours(), }
-     * ```
-     */
-    schedule: string | ((cronTime: typeof CronTime) => string);
-    /**
-     * @description
-     * The timeout for the scheduled task. If the task takes longer than the timeout, the task
-     * will be considered to have failed with a timeout error.
-     *
-     * @default 60_000ms
-     */
-    timeout?: number | string;
-    /**
-     * @description
-     * Whether the scheduled task should be prevented from running if it is already running.
-     *
-     * @default true
-     */
-    preventOverlap?: boolean;
-    /**
-     * @description
-     * The function that will be executed when the scheduled task is run.
-     */
-    execute(injector: Injector, config: C): Promise<any>;
-}
-
-/**
- * @description
- * Use this class to define a scheduled task that will be executed at a given cron schedule.
- *
- * @example
- * ```ts
- * import { ScheduledTask } from '\@vendure/core';
- *
- * const task = new ScheduledTask({
- *     id: 'test-job',
- *     schedule: cron => cron.every(2).minutes(),
- *     execute: async (injector, params) => {
- *         // some logic here
- *     },
- * });
- * ```
- *
- * @since 3.3.0
- * @docsCategory scheduled-tasks
- * @docsPage ScheduledTask
- * @docsWeight 0
- */
-export class ScheduledTask<C extends Record<string, any> = Record<string, any>> {
-    constructor(private readonly config: ScheduledTaskConfig<C>) {}
-
-    get id() {
-        return this.config.id;
-    }
-
-    get options() {
-        return this.config;
-    }
-
-    async execute(injector: Injector) {
-        return this.config.execute(injector, this.config.params ?? ({} as any));
-    }
-
-    /**
-     * @description
-     * This method allows you to further configure existing scheduled tasks. For example, you may
-     * wish to change the schedule or timeout of a task, without having to define a new task.
-     *
-     * @example
-     * ```ts
-     * import { ScheduledTask } from '\@vendure/core';
-     *
-     * const task = new ScheduledTask({
-     *     id: 'test-job',
-     *     schedule: cron => cron.every(2).minutes(),
-     *     execute: async (injector, params) => {
-     *         // some logic here
-     *     },
-     * });
-     *
-     * // later, you can configure the task
-     * task.configure({ schedule: cron => cron.every(5).minutes() });
-     * ```
-     */
-    configure(additionalConfig: Partial<Pick<ScheduledTaskConfig<C>, 'schedule' | 'timeout' | 'params'>>) {
-        if (additionalConfig.schedule) {
-            this.config.schedule = additionalConfig.schedule;
-        }
-        if (additionalConfig.timeout) {
-            this.config.timeout = additionalConfig.timeout;
-        }
-        if (additionalConfig.params) {
-            this.config.params = additionalConfig.params;
-        }
-        return this;
-    }
-}

+ 0 - 71
packages/core/src/scheduler/scheduler-strategy.ts

@@ -1,71 +0,0 @@
-import { UpdateScheduledTaskInput } from '@vendure/common/lib/generated-types';
-import { Cron } from 'croner';
-
-import { InjectableStrategy } from '../common';
-
-import { ScheduledTask } from './scheduled-task';
-
-/**
- * @description
- * A report on the status of a scheduled task.
- *
- * @since 3.3.0
- * @docsCategory scheduled-tasks
- * @docsPage SchedulerStrategy
- */
-export interface TaskReport {
-    id: string;
-    lastExecutedAt: Date | null;
-    isRunning: boolean;
-    lastResult: any;
-    enabled: boolean;
-}
-
-/**
- * @description
- * This strategy is used to define the mechanism by which scheduled tasks are executed
- * and how they are reported on. The main purpose of this strategy is to ensure
- * that a given task is executed exactly once at the scheduled time, even if there
- * are multiple instances of the worker running.
- *
- * To do this, the strategy must use some form of shared storage and a method of
- * locking so that only a single worker is allowed to execute the task.
- *
- * By default, the {@link DefaultSchedulerStrategy} will use the database to enable
- * this functionality.
- *
- * @since 3.3.0
- * @docsCategory scheduled-tasks
- * @docsPage SchedulerStrategy
- * @docsWeight 0
- */
-export interface SchedulerStrategy extends InjectableStrategy {
-    /**
-     * @description
-     * Execute a scheduled task. This method must also take care of
-     * ensuring that the task is executed exactly once at the scheduled time,
-     * even if there are multiple instances of the worker running.
-     *
-     * For instance, in the {@link DefaultSchedulerStrategy} we make use of a
-     * dedicated database table and a locking mechansim. If you implement a custom
-     * SchedulerStrategy, you must use some other form of shared locking mechanism
-     * that could make use of something like Redis etc. to ensure that the task
-     * is executed exactly once at the scheduled time.
-     */
-    executeTask(task: ScheduledTask): (job: Cron) => Promise<any> | any;
-    /**
-     * @description
-     * Get all scheduled tasks.
-     */
-    getTasks(): Promise<TaskReport[]>;
-    /**
-     * @description
-     * Get a single scheduled task by its id.
-     */
-    getTask(id: string): Promise<TaskReport | undefined>;
-    /**
-     * @description
-     * Update a scheduled task.
-     */
-    updateTask(input: UpdateScheduledTaskInput): Promise<TaskReport>;
-}

+ 0 - 12
packages/core/src/scheduler/scheduler.module.ts

@@ -1,12 +0,0 @@
-import { Module } from '@nestjs/common';
-
-import { ConfigModule } from '../config/index';
-
-import { SchedulerService } from './scheduler.service';
-
-@Module({
-    imports: [ConfigModule],
-    providers: [SchedulerService],
-    exports: [SchedulerService],
-})
-export class SchedulerModule {}

Vissa filer visades inte eftersom för många filer har ändrats