From 72ab319d37a7b896c2a3057057329605c8af72a0 Mon Sep 17 00:00:00 2001 From: Paul Date: Mon, 19 May 2025 12:59:12 -0700 Subject: [PATCH 1/7] fix(db-*): ensure consistent sorting even when sorting on non-unique fields or no sort parameters at all (#12447) The databases do not keep track of document order internally so when sorting by non-unique fields such as shared `order` number values, the returned order will be random and not consistent. While this issue is far more noticeable on mongo it could also occur in postgres on certain environments. This combined with pagination can lead to the perception of duplicated or inconsistent data. This PR adds a second sort parameter to queries so that we always have a fallback, `-createdAt` will be used by default or `id` if timestamps are disabled. --- .../db-mongodb/src/queries/buildSortParam.ts | 12 ++ packages/drizzle/src/queries/buildOrderBy.ts | 15 +- test/sort/collections/NonUniqueSort/index.ts | 17 ++ test/sort/config.ts | 25 +++ test/sort/int.spec.ts | 149 ++++++++++++++++++ test/sort/payload-types.ts | 75 ++++++--- 6 files changed, 268 insertions(+), 25 deletions(-) create mode 100644 test/sort/collections/NonUniqueSort/index.ts diff --git a/packages/db-mongodb/src/queries/buildSortParam.ts b/packages/db-mongodb/src/queries/buildSortParam.ts index 7b78068777..7074a1e152 100644 --- a/packages/db-mongodb/src/queries/buildSortParam.ts +++ b/packages/db-mongodb/src/queries/buildSortParam.ts @@ -150,6 +150,18 @@ export const buildSortParam = ({ sort = [sort] } + // In the case of Mongo, when sorting by a field that is not unique, the results are not guaranteed to be in the same order each time. + // So we add a fallback sort to ensure that the results are always in the same order. + let fallbackSort = '-id' + + if (timestamps) { + fallbackSort = '-createdAt' + } + + if (!(sort.includes(fallbackSort) || sort.includes(fallbackSort.replace('-', '')))) { + sort.push(fallbackSort) + } + const sorting = sort.reduce>((acc, item) => { let sortProperty: string let sortDirection: SortDirection diff --git a/packages/drizzle/src/queries/buildOrderBy.ts b/packages/drizzle/src/queries/buildOrderBy.ts index 742e96277e..8f79dada5f 100644 --- a/packages/drizzle/src/queries/buildOrderBy.ts +++ b/packages/drizzle/src/queries/buildOrderBy.ts @@ -39,8 +39,9 @@ export const buildOrderBy = ({ }: Args): BuildQueryResult['orderBy'] => { const orderBy: BuildQueryResult['orderBy'] = [] + const createdAt = adapter.tables[tableName]?.createdAt + if (!sort) { - const createdAt = adapter.tables[tableName]?.createdAt if (createdAt) { sort = '-createdAt' } else { @@ -52,6 +53,18 @@ export const buildOrderBy = ({ sort = [sort] } + // In the case of Mongo, when sorting by a field that is not unique, the results are not guaranteed to be in the same order each time. + // So we add a fallback sort to ensure that the results are always in the same order. + let fallbackSort = '-id' + + if (createdAt) { + fallbackSort = '-createdAt' + } + + if (!(sort.includes(fallbackSort) || sort.includes(fallbackSort.replace('-', '')))) { + sort.push(fallbackSort) + } + for (const sortItem of sort) { let sortProperty: string let sortDirection: 'asc' | 'desc' diff --git a/test/sort/collections/NonUniqueSort/index.ts b/test/sort/collections/NonUniqueSort/index.ts new file mode 100644 index 0000000000..2a721077df --- /dev/null +++ b/test/sort/collections/NonUniqueSort/index.ts @@ -0,0 +1,17 @@ +import type { CollectionConfig } from 'payload' + +export const nonUniqueSortSlug = 'non-unique-sort' + +export const NonUniqueSortCollection: CollectionConfig = { + slug: nonUniqueSortSlug, + fields: [ + { + name: 'title', + type: 'text', + }, + { + name: 'order', + type: 'number', + }, + ], +} diff --git a/test/sort/config.ts b/test/sort/config.ts index 5e6a1bed98..175b6cb6f8 100644 --- a/test/sort/config.ts +++ b/test/sort/config.ts @@ -2,12 +2,14 @@ import type { CollectionSlug, Payload } from 'payload' import { fileURLToPath } from 'node:url' import path from 'path' +import { wait } from 'payload/shared' import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' import { devUser } from '../credentials.js' import { DefaultSortCollection } from './collections/DefaultSort/index.js' import { DraftsCollection } from './collections/Drafts/index.js' import { LocalizedCollection } from './collections/Localized/index.js' +import { NonUniqueSortCollection, nonUniqueSortSlug } from './collections/NonUniqueSort/index.js' import { OrderableCollection } from './collections/Orderable/index.js' import { OrderableJoinCollection } from './collections/OrderableJoin/index.js' import { PostsCollection } from './collections/Posts/index.js' @@ -19,6 +21,7 @@ export default buildConfigWithDefaults({ PostsCollection, DraftsCollection, DefaultSortCollection, + NonUniqueSortCollection, LocalizedCollection, OrderableCollection, OrderableJoinCollection, @@ -87,6 +90,28 @@ async function seedSortable(payload: Payload) { await payload.create({ collection: 'orderable-join', data: { title: 'Join B' } }) + // Create 10 items to be sorted by non-unique field + for (const i of Array.from({ length: 10 }, (_, index) => index)) { + let order = 1 + + if (i > 3) { + order = 2 + } else if (i > 6) { + order = 3 + } + + await payload.create({ + collection: nonUniqueSortSlug, + data: { + title: `Post ${i}`, + order, + }, + }) + + // Wait 2 seconds to guarantee that the createdAt date is different + // await wait(2000) + } + return new Response(JSON.stringify({ success: true }), { headers: { 'Content-Type': 'application/json' }, status: 200, diff --git a/test/sort/int.spec.ts b/test/sort/int.spec.ts index 7064181cac..2e18887ddd 100644 --- a/test/sort/int.spec.ts +++ b/test/sort/int.spec.ts @@ -8,6 +8,7 @@ import type { Draft, Orderable, OrderableJoin } from './payload-types.js' import { initPayloadInt } from '../helpers/initPayloadInt.js' import { draftsSlug } from './collections/Drafts/index.js' +import { nonUniqueSortSlug } from './collections/NonUniqueSort/index.js' import { orderableSlug } from './collections/Orderable/index.js' import { orderableJoinSlug } from './collections/OrderableJoin/index.js' @@ -133,6 +134,154 @@ describe('Sort', () => { }) }) + describe('Non-unique sorting', () => { + // There are situations where the sort order is not guaranteed to be consistent, such as when sorting by a non-unique field in MongoDB which does not keep an internal order of items + // As a result, every time you fetch, including fetching specific pages, the order of items may change and appear as duplicated to some users. + it('should always be consistent when sorting', async () => { + const posts = await payload.find({ + collection: nonUniqueSortSlug, + sort: 'order', + }) + + const initialMap = posts.docs.map((post) => post.title) + + const dataFetches = await Promise.all( + Array.from({ length: 3 }).map(() => + payload.find({ + collection: nonUniqueSortSlug, + sort: 'order', + }), + ), + ) + + const [fetch1, fetch2, fetch3] = dataFetches.map((fetch) => + fetch.docs.map((post) => post.title), + ) + + expect(fetch1).toEqual(initialMap) + + expect(fetch2).toEqual(initialMap) + + expect(fetch3).toEqual(initialMap) + }) + + it('should always be consistent when sorting - with limited pages', async () => { + const posts = await payload.find({ + collection: nonUniqueSortSlug, + sort: 'order', + limit: 5, + page: 2, + }) + + const initialMap = posts.docs.map((post) => post.title) + + const dataFetches = await Promise.all( + Array.from({ length: 3 }).map(() => + payload.find({ + collection: nonUniqueSortSlug, + sort: 'order', + limit: 5, + page: 2, + }), + ), + ) + + const [fetch1, fetch2, fetch3] = dataFetches.map((fetch) => + fetch.docs.map((post) => post.title), + ) + + expect(fetch1).toEqual(initialMap) + + expect(fetch2).toEqual(initialMap) + + expect(fetch3).toEqual(initialMap) + }) + + it('should sort by createdAt as fallback', async () => { + // This is the (reverse - newest first) order that the posts are created in so this should remain consistent as the sort should fallback to '-createdAt' + const postsInOrder = ['Post 9', 'Post 8', 'Post 7', 'Post 6'] + + const dataFetches = await Promise.all( + Array.from({ length: 3 }).map(() => + payload.find({ + collection: nonUniqueSortSlug, + sort: 'order', + page: 2, + limit: 4, + }), + ), + ) + + const [fetch1, fetch2, fetch3] = dataFetches.map((fetch) => + fetch.docs.map((post) => post.title), + ) + + console.log({ fetch1, fetch2, fetch3 }) + + expect(fetch1).toEqual(postsInOrder) + + expect(fetch2).toEqual(postsInOrder) + + expect(fetch3).toEqual(postsInOrder) + }) + + it('should always be consistent without sort params in the query', async () => { + const posts = await payload.find({ + collection: nonUniqueSortSlug, + }) + + const initialMap = posts.docs.map((post) => post.title) + + const dataFetches = await Promise.all( + Array.from({ length: 3 }).map(() => + payload.find({ + collection: nonUniqueSortSlug, + }), + ), + ) + + const [fetch1, fetch2, fetch3] = dataFetches.map((fetch) => + fetch.docs.map((post) => post.title), + ) + + expect(fetch1).toEqual(initialMap) + + expect(fetch2).toEqual(initialMap) + + expect(fetch3).toEqual(initialMap) + }) + + it('should always be consistent without sort params in the query - with limited pages', async () => { + const posts = await payload.find({ + collection: nonUniqueSortSlug, + page: 2, + limit: 4, + }) + + const initialMap = posts.docs.map((post) => post.title) + + const dataFetches = await Promise.all( + Array.from({ length: 3 }).map(() => + payload.find({ + collection: nonUniqueSortSlug, + page: 2, + limit: 4, + }), + ), + ) + + const [fetch1, fetch2, fetch3] = dataFetches.map((fetch) => + fetch.docs.map((post) => post.title), + ) + + expect(fetch1).toEqual(initialMap) + + expect(fetch2).toEqual(initialMap) + + expect(fetch3).toEqual(initialMap) + }) + }) + describe('Sort by multiple fields', () => { it('should sort posts by multiple fields', async () => { const posts = await payload.find({ diff --git a/test/sort/payload-types.ts b/test/sort/payload-types.ts index 7dde9f7142..bd3984af57 100644 --- a/test/sort/payload-types.ts +++ b/test/sort/payload-types.ts @@ -70,6 +70,7 @@ export interface Config { posts: Post; drafts: Draft; 'default-sort': DefaultSort; + 'non-unique-sort': NonUniqueSort; localized: Localized; orderable: Orderable; 'orderable-join': OrderableJoin; @@ -89,6 +90,7 @@ export interface Config { posts: PostsSelect | PostsSelect; drafts: DraftsSelect | DraftsSelect; 'default-sort': DefaultSortSelect | DefaultSortSelect; + 'non-unique-sort': NonUniqueSortSelect | NonUniqueSortSelect; localized: LocalizedSelect | LocalizedSelect; orderable: OrderableSelect | OrderableSelect; 'orderable-join': OrderableJoinSelect | OrderableJoinSelect; @@ -98,7 +100,7 @@ export interface Config { 'payload-migrations': PayloadMigrationsSelect | PayloadMigrationsSelect; }; db: { - defaultIDType: string; + defaultIDType: number; }; globals: {}; globalsSelect: {}; @@ -134,7 +136,7 @@ export interface UserAuthOperations { * via the `definition` "posts". */ export interface Post { - id: string; + id: number; text?: string | null; number?: number | null; number2?: number | null; @@ -164,18 +166,29 @@ export interface Draft { * via the `definition` "default-sort". */ export interface DefaultSort { - id: string; + id: number; text?: string | null; number?: number | null; updatedAt: string; createdAt: string; } +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "non-unique-sort". + */ +export interface NonUniqueSort { + id: number; + title?: string | null; + order?: number | null; + updatedAt: string; + createdAt: string; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "localized". */ export interface Localized { - id: string; + id: number; text?: string | null; number?: number | null; number2?: number | null; @@ -196,7 +209,7 @@ export interface Orderable { _orderable_orderableJoinField1_order?: string | null; _order?: string | null; title?: string | null; - orderableField?: (string | null) | OrderableJoin; + orderableField?: (number | null) | OrderableJoin; updatedAt: string; createdAt: string; } @@ -205,20 +218,20 @@ export interface Orderable { * via the `definition` "orderable-join". */ export interface OrderableJoin { - id: string; + id: number; title?: string | null; orderableJoinField1?: { - docs?: (string | Orderable)[]; + docs?: (number | Orderable)[]; hasNextPage?: boolean; totalDocs?: number; }; orderableJoinField2?: { - docs?: (string | Orderable)[]; + docs?: (number | Orderable)[]; hasNextPage?: boolean; totalDocs?: number; }; nonOrderableJoinField?: { - docs?: (string | Orderable)[]; + docs?: (number | Orderable)[]; hasNextPage?: boolean; totalDocs?: number; }; @@ -230,7 +243,7 @@ export interface OrderableJoin { * via the `definition` "users". */ export interface User { - id: string; + id: number; updatedAt: string; createdAt: string; email: string; @@ -247,40 +260,44 @@ export interface User { * via the `definition` "payload-locked-documents". */ export interface PayloadLockedDocument { - id: string; + id: number; document?: | ({ relationTo: 'posts'; - value: string | Post; + value: number | Post; } | null) | ({ relationTo: 'drafts'; - value: string | Draft; + value: number | Draft; } | null) | ({ relationTo: 'default-sort'; - value: string | DefaultSort; + value: number | DefaultSort; + } | null) + | ({ + relationTo: 'non-unique-sort'; + value: number | NonUniqueSort; } | null) | ({ relationTo: 'localized'; - value: string | Localized; + value: number | Localized; } | null) | ({ relationTo: 'orderable'; - value: string | Orderable; + value: number | Orderable; } | null) | ({ relationTo: 'orderable-join'; - value: string | OrderableJoin; + value: number | OrderableJoin; } | null) | ({ relationTo: 'users'; - value: string | User; + value: number | User; } | null); globalSlug?: string | null; user: { relationTo: 'users'; - value: string | User; + value: number | User; }; updatedAt: string; createdAt: string; @@ -290,10 +307,10 @@ export interface PayloadLockedDocument { * via the `definition` "payload-preferences". */ export interface PayloadPreference { - id: string; + id: number; user: { relationTo: 'users'; - value: string | User; + value: number | User; }; key?: string | null; value?: @@ -313,7 +330,7 @@ export interface PayloadPreference { * via the `definition` "payload-migrations". */ export interface PayloadMigration { - id: string; + id: number; name?: string | null; batch?: number | null; updatedAt: string; @@ -359,6 +376,16 @@ export interface DefaultSortSelect { updatedAt?: T; createdAt?: T; } +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "non-unique-sort_select". + */ +export interface NonUniqueSortSelect { + title?: T; + order?: T; + updatedAt?: T; + createdAt?: T; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "localized_select". @@ -458,6 +485,6 @@ export interface Auth { declare module 'payload' { - // @ts-ignore + // @ts-ignore export interface GeneratedTypes extends Config {} -} \ No newline at end of file +} From 3127d6ad6db77c6ec760a3045714ce633a4c3fe0 Mon Sep 17 00:00:00 2001 From: Paul Date: Mon, 19 May 2025 13:19:55 -0700 Subject: [PATCH 2/7] fix(plugin-import-export): add translations for all UI elements and fields (#12449) Converts all text and field labels into variables that can be translated. Also generated the translations for them So now the UI here is internationalised ![image](https://github.com/user-attachments/assets/40d7c010-ac58-4cd7-8786-01b3de3cabb7) I've also moved some of the generic labels into the core package since those could be re-used elsewhere --- packages/plugin-import-export/package.json | 20 ++++ .../components/ExportListMenuItem/index.tsx | 28 ++++- .../src/components/ExportSaveButton/index.tsx | 11 +- .../src/components/FieldsToExport/index.tsx | 3 +- .../src/components/Preview/index.tsx | 30 ++++- .../src/components/SortBy/index.tsx | 3 +- .../src/export/getFields.ts | 40 +++++-- packages/plugin-import-export/src/index.ts | 19 +++- .../src/translations/en.ts | 9 -- .../src/translations/index.ts | 86 +++++++++++++- .../src/translations/languages/ar.ts | 27 +++++ .../src/translations/languages/az.ts | 27 +++++ .../src/translations/languages/bg.ts | 27 +++++ .../src/translations/languages/ca.ts | 27 +++++ .../src/translations/languages/cs.ts | 27 +++++ .../src/translations/languages/da.ts | 27 +++++ .../src/translations/languages/de.ts | 27 +++++ .../src/translations/languages/en.ts | 26 +++++ .../src/translations/languages/es.ts | 27 +++++ .../src/translations/languages/et.ts | 27 +++++ .../src/translations/languages/fa.ts | 27 +++++ .../src/translations/languages/fr.ts | 27 +++++ .../src/translations/languages/he.ts | 27 +++++ .../src/translations/languages/hr.ts | 27 +++++ .../src/translations/languages/hu.ts | 27 +++++ .../src/translations/languages/hy.ts | 27 +++++ .../src/translations/languages/it.ts | 27 +++++ .../src/translations/languages/ja.ts | 27 +++++ .../src/translations/languages/ko.ts | 27 +++++ .../src/translations/languages/lt.ts | 27 +++++ .../src/translations/languages/lv.ts | 27 +++++ .../src/translations/languages/my.ts | 27 +++++ .../src/translations/languages/nb.ts | 27 +++++ .../src/translations/languages/nl.ts | 27 +++++ .../src/translations/languages/pl.ts | 27 +++++ .../src/translations/languages/pt.ts | 27 +++++ .../src/translations/languages/rn.sh | 3 + .../src/translations/languages/ro.ts | 27 +++++ .../src/translations/languages/rs.ts | 27 +++++ .../src/translations/languages/rsLatin.ts | 27 +++++ .../src/translations/languages/ru.ts | 27 +++++ .../src/translations/languages/sk.ts | 27 +++++ .../src/translations/languages/sl.ts | 27 +++++ .../src/translations/languages/sv.ts | 27 +++++ .../src/translations/languages/th.ts | 27 +++++ .../src/translations/languages/tr.ts | 27 +++++ .../languages/translation-schema.json | 107 ++++++++++++++++++ .../src/translations/languages/uk.ts | 27 +++++ .../src/translations/languages/vi.ts | 27 +++++ .../src/translations/languages/zh.ts | 27 +++++ .../src/translations/languages/zhTw.ts | 27 +++++ .../src/translations/translation-schema.json | 24 ---- .../src/translations/types.ts | 25 ++++ packages/translations/src/clientKeys.ts | 6 + packages/translations/src/languages/ar.ts | 6 + packages/translations/src/languages/az.ts | 6 + packages/translations/src/languages/bg.ts | 6 + packages/translations/src/languages/ca.ts | 6 + packages/translations/src/languages/cs.ts | 6 + packages/translations/src/languages/da.ts | 6 + packages/translations/src/languages/de.ts | 12 +- packages/translations/src/languages/en.ts | 6 + packages/translations/src/languages/es.ts | 6 + packages/translations/src/languages/et.ts | 6 + packages/translations/src/languages/fa.ts | 6 + packages/translations/src/languages/fr.ts | 6 + packages/translations/src/languages/he.ts | 6 + packages/translations/src/languages/hr.ts | 6 + packages/translations/src/languages/hu.ts | 6 + packages/translations/src/languages/hy.ts | 11 +- packages/translations/src/languages/it.ts | 6 + packages/translations/src/languages/ja.ts | 6 + packages/translations/src/languages/ko.ts | 6 + packages/translations/src/languages/lt.ts | 6 + packages/translations/src/languages/lv.ts | 15 ++- packages/translations/src/languages/my.ts | 6 + packages/translations/src/languages/nb.ts | 6 + packages/translations/src/languages/nl.ts | 6 + packages/translations/src/languages/pl.ts | 6 + packages/translations/src/languages/pt.ts | 6 + packages/translations/src/languages/ro.ts | 6 + packages/translations/src/languages/rs.ts | 6 + .../translations/src/languages/rsLatin.ts | 6 + packages/translations/src/languages/ru.ts | 6 + packages/translations/src/languages/sk.ts | 6 + packages/translations/src/languages/sl.ts | 6 + packages/translations/src/languages/sv.ts | 6 + packages/translations/src/languages/th.ts | 6 + packages/translations/src/languages/tr.ts | 6 + packages/translations/src/languages/uk.ts | 6 + packages/translations/src/languages/vi.ts | 6 + packages/translations/src/languages/zh.ts | 6 + packages/translations/src/languages/zhTw.ts | 6 + pnpm-lock.yaml | 3 + .../plugin-import-export/collections/Pages.ts | 4 +- test/plugin-import-export/config.ts | 10 +- tools/scripts/package.json | 2 + .../plugin-import-export.ts | 39 +++++++ 98 files changed, 1704 insertions(+), 74 deletions(-) delete mode 100644 packages/plugin-import-export/src/translations/en.ts create mode 100644 packages/plugin-import-export/src/translations/languages/ar.ts create mode 100644 packages/plugin-import-export/src/translations/languages/az.ts create mode 100644 packages/plugin-import-export/src/translations/languages/bg.ts create mode 100644 packages/plugin-import-export/src/translations/languages/ca.ts create mode 100644 packages/plugin-import-export/src/translations/languages/cs.ts create mode 100644 packages/plugin-import-export/src/translations/languages/da.ts create mode 100644 packages/plugin-import-export/src/translations/languages/de.ts create mode 100644 packages/plugin-import-export/src/translations/languages/en.ts create mode 100644 packages/plugin-import-export/src/translations/languages/es.ts create mode 100644 packages/plugin-import-export/src/translations/languages/et.ts create mode 100644 packages/plugin-import-export/src/translations/languages/fa.ts create mode 100644 packages/plugin-import-export/src/translations/languages/fr.ts create mode 100644 packages/plugin-import-export/src/translations/languages/he.ts create mode 100644 packages/plugin-import-export/src/translations/languages/hr.ts create mode 100644 packages/plugin-import-export/src/translations/languages/hu.ts create mode 100644 packages/plugin-import-export/src/translations/languages/hy.ts create mode 100644 packages/plugin-import-export/src/translations/languages/it.ts create mode 100644 packages/plugin-import-export/src/translations/languages/ja.ts create mode 100644 packages/plugin-import-export/src/translations/languages/ko.ts create mode 100644 packages/plugin-import-export/src/translations/languages/lt.ts create mode 100644 packages/plugin-import-export/src/translations/languages/lv.ts create mode 100644 packages/plugin-import-export/src/translations/languages/my.ts create mode 100644 packages/plugin-import-export/src/translations/languages/nb.ts create mode 100644 packages/plugin-import-export/src/translations/languages/nl.ts create mode 100644 packages/plugin-import-export/src/translations/languages/pl.ts create mode 100644 packages/plugin-import-export/src/translations/languages/pt.ts create mode 100644 packages/plugin-import-export/src/translations/languages/rn.sh create mode 100644 packages/plugin-import-export/src/translations/languages/ro.ts create mode 100644 packages/plugin-import-export/src/translations/languages/rs.ts create mode 100644 packages/plugin-import-export/src/translations/languages/rsLatin.ts create mode 100644 packages/plugin-import-export/src/translations/languages/ru.ts create mode 100644 packages/plugin-import-export/src/translations/languages/sk.ts create mode 100644 packages/plugin-import-export/src/translations/languages/sl.ts create mode 100644 packages/plugin-import-export/src/translations/languages/sv.ts create mode 100644 packages/plugin-import-export/src/translations/languages/th.ts create mode 100644 packages/plugin-import-export/src/translations/languages/tr.ts create mode 100644 packages/plugin-import-export/src/translations/languages/translation-schema.json create mode 100644 packages/plugin-import-export/src/translations/languages/uk.ts create mode 100644 packages/plugin-import-export/src/translations/languages/vi.ts create mode 100644 packages/plugin-import-export/src/translations/languages/zh.ts create mode 100644 packages/plugin-import-export/src/translations/languages/zhTw.ts delete mode 100644 packages/plugin-import-export/src/translations/translation-schema.json create mode 100644 packages/plugin-import-export/src/translations/types.ts create mode 100644 tools/scripts/src/generateTranslations/plugin-import-export.ts diff --git a/packages/plugin-import-export/package.json b/packages/plugin-import-export/package.json index bb1356d6ac..f348f4606e 100644 --- a/packages/plugin-import-export/package.json +++ b/packages/plugin-import-export/package.json @@ -42,6 +42,16 @@ "import": "./src/exports/rsc.ts", "types": "./src/exports/rsc.ts", "default": "./src/exports/rsc.ts" + }, + "./translations/languages/all": { + "import": "./src/translations/index.ts", + "types": "./src/translations/index.ts", + "default": "./src/translations/index.ts" + }, + "./translations/languages/*": { + "import": "./src/translations/languages/*.ts", + "types": "./src/translations/languages/*.ts", + "default": "./src/translations/languages/*.ts" } }, "main": "./src/index.ts", @@ -92,6 +102,16 @@ "import": "./dist/exports/rsc.js", "types": "./dist/exports/rsc.d.ts", "default": "./dist/exports/rsc.js" + }, + "./translations/languages/all": { + "import": "./dist/translations/index.js", + "types": "./dist/translations/index.d.ts", + "default": "./dist/translations/index.js" + }, + "./translations/languages/*": { + "import": "./dist/translations/languages/*.js", + "types": "./dist/translations/languages/*.d.ts", + "default": "./dist/translations/languages/*.js" } }, "main": "./dist/index.js", diff --git a/packages/plugin-import-export/src/components/ExportListMenuItem/index.tsx b/packages/plugin-import-export/src/components/ExportListMenuItem/index.tsx index e018917880..32490a7c43 100644 --- a/packages/plugin-import-export/src/components/ExportListMenuItem/index.tsx +++ b/packages/plugin-import-export/src/components/ExportListMenuItem/index.tsx @@ -1,9 +1,20 @@ 'use client' import { getTranslation } from '@payloadcms/translations' -import { PopupList, useConfig, useDocumentDrawer, useTranslation } from '@payloadcms/ui' +import { + PopupList, + Translation, + useConfig, + useDocumentDrawer, + useTranslation, +} from '@payloadcms/ui' import React, { useEffect } from 'react' +import type { + PluginImportExportTranslationKeys, + PluginImportExportTranslations, +} from '../../translations/index.js' + import { useImportExport } from '../ImportExportProvider/index.js' import './index.scss' @@ -14,7 +25,10 @@ export const ExportListMenuItem: React.FC<{ exportCollectionSlug: string }> = ({ collectionSlug, exportCollectionSlug }) => { const { getEntityConfig } = useConfig() - const { i18n } = useTranslation() + const { i18n, t } = useTranslation< + PluginImportExportTranslations, + PluginImportExportTranslationKeys + >() const currentCollectionConfig = getEntityConfig({ collectionSlug }) const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({ @@ -30,7 +44,15 @@ export const ExportListMenuItem: React.FC<{ return ( - Export {getTranslation(currentCollectionConfig.labels.plural, i18n)} + diff --git a/packages/plugin-import-export/src/components/ExportSaveButton/index.tsx b/packages/plugin-import-export/src/components/ExportSaveButton/index.tsx index 2ebd46f478..e5e0e71846 100644 --- a/packages/plugin-import-export/src/components/ExportSaveButton/index.tsx +++ b/packages/plugin-import-export/src/components/ExportSaveButton/index.tsx @@ -1,10 +1,15 @@ 'use client' -import { Button, SaveButton, useConfig, useForm, useTranslation } from '@payloadcms/ui' +import { Button, SaveButton, Translation, useConfig, useForm, useTranslation } from '@payloadcms/ui' import React from 'react' +import type { + PluginImportExportTranslationKeys, + PluginImportExportTranslations, +} from '../../translations/index.js' + export const ExportSaveButton: React.FC = () => { - const { t } = useTranslation() + const { t } = useTranslation() const { config: { routes: { api }, @@ -65,7 +70,7 @@ export const ExportSaveButton: React.FC = () => { ) diff --git a/packages/plugin-import-export/src/components/FieldsToExport/index.tsx b/packages/plugin-import-export/src/components/FieldsToExport/index.tsx index 67461e1678..64daeb52eb 100644 --- a/packages/plugin-import-export/src/components/FieldsToExport/index.tsx +++ b/packages/plugin-import-export/src/components/FieldsToExport/index.tsx @@ -83,11 +83,12 @@ export const FieldsToExport: SelectFieldClientComponent = (props) => { return (
- + String(option.value)} + inputId={`field-${props.path.replace(/\./g, '__')}`} isClearable={true} isMulti={true} isSortable={true} diff --git a/packages/plugin-import-export/src/components/Preview/index.tsx b/packages/plugin-import-export/src/components/Preview/index.tsx index f78cb227e1..2c9ec69e10 100644 --- a/packages/plugin-import-export/src/components/Preview/index.tsx +++ b/packages/plugin-import-export/src/components/Preview/index.tsx @@ -3,13 +3,18 @@ import type { Column } from '@payloadcms/ui' import type { ClientField, FieldAffectingDataClient } from 'payload' import { getTranslation } from '@payloadcms/translations' -import { Table, useConfig, useField, useTranslation } from '@payloadcms/ui' +import { Table, Translation, useConfig, useField, useTranslation } from '@payloadcms/ui' import { fieldAffectsData } from 'payload/shared' import * as qs from 'qs-esm' import React from 'react' -import { useImportExport } from '../ImportExportProvider/index.js' +import type { + PluginImportExportTranslationKeys, + PluginImportExportTranslations, +} from '../../translations/index.js' + import './index.scss' +import { useImportExport } from '../ImportExportProvider/index.js' const baseClass = 'preview' @@ -24,7 +29,10 @@ export const Preview = () => { const [dataToRender, setDataToRender] = React.useState([]) const [resultCount, setResultCount] = React.useState('') const [columns, setColumns] = React.useState([]) - const { i18n } = useTranslation() + const { i18n, t } = useTranslation< + PluginImportExportTranslations, + PluginImportExportTranslationKeys + >() const collectionSlug = typeof collection === 'string' && collection const collectionConfig = config.collections.find( @@ -102,8 +110,20 @@ export const Preview = () => { return (
-

Preview

- {resultCount && {resultCount} total documents} +

+ +

+ {resultCount && ( + + )}
{dataToRender && } diff --git a/packages/plugin-import-export/src/components/SortBy/index.tsx b/packages/plugin-import-export/src/components/SortBy/index.tsx index 0d06a21162..7680ed82c1 100644 --- a/packages/plugin-import-export/src/components/SortBy/index.tsx +++ b/packages/plugin-import-export/src/components/SortBy/index.tsx @@ -72,11 +72,12 @@ export const SortBy: SelectFieldClientComponent = (props) => { return (
- + String(option.value)} + inputId={`field-${props.path.replace(/\./g, '__')}`} isClearable={true} isSortable={true} // @ts-expect-error react select option diff --git a/packages/plugin-import-export/src/export/getFields.ts b/packages/plugin-import-export/src/export/getFields.ts index adb36aab3b..c57d84b878 100644 --- a/packages/plugin-import-export/src/export/getFields.ts +++ b/packages/plugin-import-export/src/export/getFields.ts @@ -12,10 +12,11 @@ export const getFields = (config: Config): Field[] => { width: '33%', }, defaultValue: 'all', - label: 'Locale', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:field-locale-label'), options: [ { - label: 'All Locales', + label: ({ t }) => t('general:allLocales'), value: 'all', }, ...config.localization.locales.map((locale) => ({ @@ -34,7 +35,8 @@ export const getFields = (config: Config): Field[] => { name: 'name', type: 'text', defaultValue: () => getFilename(), - label: 'File Name', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:field-name-label'), }, { type: 'row', @@ -46,7 +48,8 @@ export const getFields = (config: Config): Field[] => { width: '33%', }, defaultValue: 'csv', - label: 'Export Format', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:field-format-label'), options: [ { label: 'CSV', @@ -66,6 +69,8 @@ export const getFields = (config: Config): Field[] => { placeholder: 'No limit', width: '33%', }, + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:field-limit-label'), }, { name: 'sort', @@ -75,6 +80,8 @@ export const getFields = (config: Config): Field[] => { Field: '@payloadcms/plugin-import-export/rsc#SortBy', }, }, + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:field-sort-label'), }, ], }, @@ -98,14 +105,15 @@ export const getFields = (config: Config): Field[] => { width: '33%', }, defaultValue: 'yes', - label: 'Drafts', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:field-drafts-label'), options: [ { - label: 'Yes', + label: ({ t }) => t('general:yes'), value: 'yes', }, { - label: 'No', + label: ({ t }) => t('general:no'), value: 'no', }, ], @@ -113,6 +121,8 @@ export const getFields = (config: Config): Field[] => { // { // name: 'depth', // type: 'number', + // // @ts-expect-error - this is not correctly typed in plugins right now + // label: ({ t }) => t('plugin-import-export:field-depth-label'), // admin: { // width: '33%', // }, @@ -126,17 +136,22 @@ export const getFields = (config: Config): Field[] => { name: 'selectionToUse', type: 'radio', defaultValue: 'all', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:field-selectionToUse-label'), options: [ { - label: 'Use current selection', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:selectionToUse-currentSelection'), value: 'currentSelection', }, { - label: 'Use current filters', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:selectionToUse-currentFilters'), value: 'currentFilters', }, { - label: 'Use all documents', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:selectionToUse-allDocuments'), value: 'all', }, ], @@ -151,6 +166,8 @@ export const getFields = (config: Config): Field[] => { }, }, hasMany: true, + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:field-fields-label'), }, { name: 'collectionSlug', @@ -174,7 +191,8 @@ export const getFields = (config: Config): Field[] => { defaultValue: {}, }, ], - label: 'Export Options', + // @ts-expect-error - this is not correctly typed in plugins right now + label: ({ t }) => t('plugin-import-export:exportOptions'), }, { name: 'preview', diff --git a/packages/plugin-import-export/src/index.ts b/packages/plugin-import-export/src/index.ts index 050e0bec25..ce6c31ba14 100644 --- a/packages/plugin-import-export/src/index.ts +++ b/packages/plugin-import-export/src/index.ts @@ -2,6 +2,7 @@ import type { Config, JobsConfig } from 'payload' import { deepMergeSimple } from 'payload' +import type { PluginDefaultTranslationsObject } from './translations/types.js' import type { ImportExportPluginConfig } from './types.js' import { getCreateCollectionExportTask } from './export/getCreateExportCollectionTask.js' @@ -70,7 +71,23 @@ export const importExportPlugin = config.i18n = {} } - config.i18n.translations = deepMergeSimple(translations, config.i18n?.translations ?? {}) + // config.i18n.translations = deepMergeSimple(translations, config.i18n?.translations ?? {}) + + /** + * Merge plugin translations + */ + const simplifiedTranslations = Object.entries(translations).reduce( + (acc, [key, value]) => { + acc[key] = value.translations + return acc + }, + {} as Record, + ) + + config.i18n = { + ...config.i18n, + translations: deepMergeSimple(simplifiedTranslations, config.i18n?.translations ?? {}), + } return config } diff --git a/packages/plugin-import-export/src/translations/en.ts b/packages/plugin-import-export/src/translations/en.ts deleted file mode 100644 index 3ae206461b..0000000000 --- a/packages/plugin-import-export/src/translations/en.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { GenericTranslationsObject } from '@payloadcms/translations' - -export const en: GenericTranslationsObject = { - $schema: './translation-schema.json', - 'plugin-seo': { - export: 'Export', - import: 'Import', - }, -} diff --git a/packages/plugin-import-export/src/translations/index.ts b/packages/plugin-import-export/src/translations/index.ts index 82fb59f80d..99dfaf8da5 100644 --- a/packages/plugin-import-export/src/translations/index.ts +++ b/packages/plugin-import-export/src/translations/index.ts @@ -1,10 +1,90 @@ -import type { GenericTranslationsObject, NestedKeysStripped } from '@payloadcms/translations' +import type { + GenericTranslationsObject, + NestedKeysStripped, + SupportedLanguages, +} from '@payloadcms/translations' -import { en } from './en.js' +import type { PluginDefaultTranslationsObject } from './types.js' + +import { ar } from './languages/ar.js' +import { az } from './languages/az.js' +import { bg } from './languages/bg.js' +import { ca } from './languages/ca.js' +import { cs } from './languages/cs.js' +import { da } from './languages/da.js' +import { de } from './languages/de.js' +import { en } from './languages/en.js' +import { es } from './languages/es.js' +import { et } from './languages/et.js' +import { fa } from './languages/fa.js' +import { fr } from './languages/fr.js' +import { he } from './languages/he.js' +import { hr } from './languages/hr.js' +import { hu } from './languages/hu.js' +import { hy } from './languages/hy.js' +import { it } from './languages/it.js' +import { ja } from './languages/ja.js' +import { ko } from './languages/ko.js' +import { lt } from './languages/lt.js' +import { my } from './languages/my.js' +import { nb } from './languages/nb.js' +import { nl } from './languages/nl.js' +import { pl } from './languages/pl.js' +import { pt } from './languages/pt.js' +import { ro } from './languages/ro.js' +import { rs } from './languages/rs.js' +import { rsLatin } from './languages/rsLatin.js' +import { ru } from './languages/ru.js' +import { sk } from './languages/sk.js' +import { sl } from './languages/sl.js' +import { sv } from './languages/sv.js' +import { th } from './languages/th.js' +import { tr } from './languages/tr.js' +import { uk } from './languages/uk.js' +import { vi } from './languages/vi.js' +import { zh } from './languages/zh.js' +import { zhTw } from './languages/zhTw.js' export const translations = { + ar, + az, + bg, + ca, + cs, + da, + de, en, -} + es, + et, + fa, + fr, + he, + hr, + hu, + hy, + it, + ja, + ko, + lt, + my, + nb, + nl, + pl, + pt, + ro, + rs, + 'rs-latin': rsLatin, + ru, + sk, + sl, + sv, + th, + tr, + uk, + vi, + zh, + 'zh-TW': zhTw, +} as SupportedLanguages export type PluginImportExportTranslations = GenericTranslationsObject diff --git a/packages/plugin-import-export/src/translations/languages/ar.ts b/packages/plugin-import-export/src/translations/languages/ar.ts new file mode 100644 index 0000000000..463e02dbbf --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/ar.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const arTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'جميع المواقع', + exportDocumentLabel: 'تصدير {{label}}', + exportOptions: 'خيارات التصدير', + 'field-depth-label': 'عمق', + 'field-drafts-label': 'تضمن المسودات', + 'field-fields-label': 'حقول', + 'field-format-label': 'تنسيق التصدير', + 'field-limit-label': 'حد', + 'field-locale-label': 'موقع', + 'field-name-label': 'اسم الملف', + 'field-selectionToUse-label': 'اختيار للاستخدام', + 'field-sort-label': 'ترتيب حسب', + 'selectionToUse-allDocuments': 'استخدم جميع الوثائق', + 'selectionToUse-currentFilters': 'استخدم الفلاتر الحالية', + 'selectionToUse-currentSelection': 'استخدم الاختيار الحالي', + totalDocumentsCount: '{{count}} مستنداً إجمالياً', + }, +} + +export const ar: PluginLanguage = { + dateFNSKey: 'ar', + translations: arTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/az.ts b/packages/plugin-import-export/src/translations/languages/az.ts new file mode 100644 index 0000000000..c5fd9a24dd --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/az.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const azTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Bütün yerlər', + exportDocumentLabel: '{{label}} ixrac edin', + exportOptions: 'İxrac Variantları', + 'field-depth-label': 'Dərinlik', + 'field-drafts-label': 'Qaralamaları daxil etin', + 'field-fields-label': 'Sahələr', + 'field-format-label': 'İxrac Formatı', + 'field-limit-label': 'Hədd', + 'field-locale-label': 'Yerli', + 'field-name-label': 'Fayl adı', + 'field-selectionToUse-label': 'İstifadə etmək üçün seçim', + 'field-sort-label': 'Sırala', + 'selectionToUse-allDocuments': 'Bütün sənədlərdən istifadə edin', + 'selectionToUse-currentFilters': 'Cari filtrlərdən istifadə edin', + 'selectionToUse-currentSelection': 'Cari seçimi istifadə edin', + totalDocumentsCount: '{{count}} ümumi sənəd', + }, +} + +export const az: PluginLanguage = { + dateFNSKey: 'az', + translations: azTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/bg.ts b/packages/plugin-import-export/src/translations/languages/bg.ts new file mode 100644 index 0000000000..a7b806c8ae --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/bg.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const bgTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Всички локации', + exportDocumentLabel: 'Експортиране {{label}}', + exportOptions: 'Опции за експортиране', + 'field-depth-label': 'Дълбочина', + 'field-drafts-label': 'Включете чернови', + 'field-fields-label': 'Полета', + 'field-format-label': 'Формат за експортиране', + 'field-limit-label': 'Лимит', + 'field-locale-label': 'Регион', + 'field-name-label': 'Име на файла', + 'field-selectionToUse-label': 'Избор за използване', + 'field-sort-label': 'Сортирай по', + 'selectionToUse-allDocuments': 'Използвайте всички документи', + 'selectionToUse-currentFilters': 'Използвайте текущите филтри', + 'selectionToUse-currentSelection': 'Използвайте текущия избор', + totalDocumentsCount: '{{count}} общо документа', + }, +} + +export const bg: PluginLanguage = { + dateFNSKey: 'bg', + translations: bgTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/ca.ts b/packages/plugin-import-export/src/translations/languages/ca.ts new file mode 100644 index 0000000000..c53eac228b --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/ca.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const caTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Totes les localitzacions', + exportDocumentLabel: 'Exporta {{label}}', + exportOptions: "Opcions d'exportació", + 'field-depth-label': 'Profunditat', + 'field-drafts-label': 'Inclou esborranys', + 'field-fields-label': 'Camps', + 'field-format-label': "Format d'exportació", + 'field-limit-label': 'Límit', + 'field-locale-label': 'Local', + 'field-name-label': 'Nom del fitxer', + 'field-selectionToUse-label': 'Selecció per utilitzar', + 'field-sort-label': 'Ordena per', + 'selectionToUse-allDocuments': 'Utilitzeu tots els documents', + 'selectionToUse-currentFilters': 'Utilitza els filtres actuals', + 'selectionToUse-currentSelection': 'Utilitza la selecció actual', + totalDocumentsCount: '{{count}} documents totals', + }, +} + +export const ca: PluginLanguage = { + dateFNSKey: 'ca', + translations: caTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/cs.ts b/packages/plugin-import-export/src/translations/languages/cs.ts new file mode 100644 index 0000000000..7e89a52101 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/cs.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const csTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Všechny lokalizace', + exportDocumentLabel: 'Export {{label}}', + exportOptions: 'Možnosti exportu', + 'field-depth-label': 'Hloubka', + 'field-drafts-label': 'Zahrnout návrhy', + 'field-fields-label': 'Pole', + 'field-format-label': 'Formát exportu', + 'field-limit-label': 'Limita', + 'field-locale-label': 'Místní', + 'field-name-label': 'Název souboru', + 'field-selectionToUse-label': 'Výběr k použití', + 'field-sort-label': 'Seřadit podle', + 'selectionToUse-allDocuments': 'Použijte všechny dokumenty', + 'selectionToUse-currentFilters': 'Použijte aktuální filtry', + 'selectionToUse-currentSelection': 'Použijte aktuální výběr', + totalDocumentsCount: '{{count}} celkem dokumentů', + }, +} + +export const cs: PluginLanguage = { + dateFNSKey: 'cs', + translations: csTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/da.ts b/packages/plugin-import-export/src/translations/languages/da.ts new file mode 100644 index 0000000000..94f8d374ba --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/da.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const daTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Alle lokaliteter', + exportDocumentLabel: 'Eksport {{label}}', + exportOptions: 'Eksportmuligheder', + 'field-depth-label': 'Dybde', + 'field-drafts-label': 'Inkluder udkast', + 'field-fields-label': 'Felter', + 'field-format-label': 'Eksportformat', + 'field-limit-label': 'Begrænsning', + 'field-locale-label': 'Lokale', + 'field-name-label': 'Filnavn', + 'field-selectionToUse-label': 'Valg til brug', + 'field-sort-label': 'Sorter efter', + 'selectionToUse-allDocuments': 'Brug alle dokumenter', + 'selectionToUse-currentFilters': 'Brug nuværende filtre', + 'selectionToUse-currentSelection': 'Brug nuværende valg', + totalDocumentsCount: '{{count}} samlede dokumenter', + }, +} + +export const da: PluginLanguage = { + dateFNSKey: 'da', + translations: daTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/de.ts b/packages/plugin-import-export/src/translations/languages/de.ts new file mode 100644 index 0000000000..f416cd800d --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/de.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const deTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Alle Gebietsschemata', + exportDocumentLabel: 'Export {{label}}', + exportOptions: 'Exportoptionen', + 'field-depth-label': 'Tiefe', + 'field-drafts-label': 'Fügen Sie Entwürfe hinzu', + 'field-fields-label': 'Felder', + 'field-format-label': 'Exportformat', + 'field-limit-label': 'Grenze', + 'field-locale-label': 'Ort', + 'field-name-label': 'Dateiname', + 'field-selectionToUse-label': 'Auswahl zur Verwendung', + 'field-sort-label': 'Sortieren nach', + 'selectionToUse-allDocuments': 'Verwenden Sie alle Dokumente.', + 'selectionToUse-currentFilters': 'Verwenden Sie aktuelle Filter', + 'selectionToUse-currentSelection': 'Verwenden Sie die aktuelle Auswahl', + totalDocumentsCount: '{{count}} gesamte Dokumente', + }, +} + +export const de: PluginLanguage = { + dateFNSKey: 'de', + translations: deTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/en.ts b/packages/plugin-import-export/src/translations/languages/en.ts new file mode 100644 index 0000000000..d8dcec9e8b --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/en.ts @@ -0,0 +1,26 @@ +import type { PluginLanguage } from '../types.js' +export const enTranslations = { + 'plugin-import-export': { + allLocales: 'All locales', + exportDocumentLabel: 'Export {{label}}', + exportOptions: 'Export Options', + 'field-depth-label': 'Depth', + 'field-drafts-label': 'Include drafts', + 'field-fields-label': 'Fields', + 'field-format-label': 'Export Format', + 'field-limit-label': 'Limit', + 'field-locale-label': 'Locale', + 'field-name-label': 'File name', + 'field-selectionToUse-label': 'Selection to use', + 'field-sort-label': 'Sort by', + 'selectionToUse-allDocuments': 'Use all documents', + 'selectionToUse-currentFilters': 'Use current filters', + 'selectionToUse-currentSelection': 'Use current selection', + totalDocumentsCount: '{{count}} total documents', + }, +} + +export const en: PluginLanguage = { + dateFNSKey: 'en-US', + translations: enTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/es.ts b/packages/plugin-import-export/src/translations/languages/es.ts new file mode 100644 index 0000000000..82301564ff --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/es.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const esTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Todas las ubicaciones', + exportDocumentLabel: 'Exportar {{label}}', + exportOptions: 'Opciones de Exportación', + 'field-depth-label': 'Profundidad', + 'field-drafts-label': 'Incluir borradores', + 'field-fields-label': 'Campos', + 'field-format-label': 'Formato de Exportación', + 'field-limit-label': 'Límite', + 'field-locale-label': 'Localidad', + 'field-name-label': 'Nombre del archivo', + 'field-selectionToUse-label': 'Selección para usar', + 'field-sort-label': 'Ordenar por', + 'selectionToUse-allDocuments': 'Utilice todos los documentos', + 'selectionToUse-currentFilters': 'Utilice los filtros actuales', + 'selectionToUse-currentSelection': 'Usar selección actual', + totalDocumentsCount: '{{count}} documentos totales', + }, +} + +export const es: PluginLanguage = { + dateFNSKey: 'es', + translations: esTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/et.ts b/packages/plugin-import-export/src/translations/languages/et.ts new file mode 100644 index 0000000000..f816eca979 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/et.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const etTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Kõik kohalikud seaded', + exportDocumentLabel: 'Ekspordi {{label}}', + exportOptions: 'Ekspordi valikud', + 'field-depth-label': 'Sügavus', + 'field-drafts-label': 'Kaasa arvatud mustandid', + 'field-fields-label': 'Väljad', + 'field-format-label': 'Ekspordi formaat', + 'field-limit-label': 'Piirang', + 'field-locale-label': 'Lokaal', + 'field-name-label': 'Faili nimi', + 'field-selectionToUse-label': 'Valiku kasutamine', + 'field-sort-label': 'Sorteeri järgi', + 'selectionToUse-allDocuments': 'Kasutage kõiki dokumente', + 'selectionToUse-currentFilters': 'Kasuta praeguseid filtreid', + 'selectionToUse-currentSelection': 'Kasuta praegust valikut', + totalDocumentsCount: '{{count}} dokumendi koguarv', + }, +} + +export const et: PluginLanguage = { + dateFNSKey: 'et', + translations: etTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/fa.ts b/packages/plugin-import-export/src/translations/languages/fa.ts new file mode 100644 index 0000000000..0eb0969fd4 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/fa.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const faTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'تمام مکان ها', + exportDocumentLabel: 'صادر کردن {{label}}', + exportOptions: 'گزینه های صادرات', + 'field-depth-label': 'عمق', + 'field-drafts-label': 'شامل پیش نویس ها', + 'field-fields-label': 'مزارع', + 'field-format-label': 'فرمت صادرات', + 'field-limit-label': 'محدودیت', + 'field-locale-label': 'محلی', + 'field-name-label': 'نام فایل', + 'field-selectionToUse-label': 'انتخاب برای استفاده', + 'field-sort-label': 'مرتب سازی بر اساس', + 'selectionToUse-allDocuments': 'از تمام مستندات استفاده کنید', + 'selectionToUse-currentFilters': 'از فیلترهای فعلی استفاده کنید', + 'selectionToUse-currentSelection': 'از انتخاب فعلی استفاده کنید', + totalDocumentsCount: '{{count}} سند کل', + }, +} + +export const fa: PluginLanguage = { + dateFNSKey: 'fa-IR', + translations: faTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/fr.ts b/packages/plugin-import-export/src/translations/languages/fr.ts new file mode 100644 index 0000000000..c1520df40d --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/fr.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const frTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Tous les paramètres régionaux', + exportDocumentLabel: 'Exporter {{label}}', + exportOptions: "Options d'exportation", + 'field-depth-label': 'Profondeur', + 'field-drafts-label': 'Inclure les ébauches', + 'field-fields-label': 'Champs', + 'field-format-label': "Format d'exportation", + 'field-limit-label': 'Limite', + 'field-locale-label': 'Localisation', + 'field-name-label': 'Nom de fichier', + 'field-selectionToUse-label': 'Sélection à utiliser', + 'field-sort-label': 'Trier par', + 'selectionToUse-allDocuments': 'Utilisez tous les documents', + 'selectionToUse-currentFilters': 'Utilisez les filtres actuels', + 'selectionToUse-currentSelection': 'Utilisez la sélection actuelle', + totalDocumentsCount: '{{count}} documents au total', + }, +} + +export const fr: PluginLanguage = { + dateFNSKey: 'fr', + translations: frTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/he.ts b/packages/plugin-import-export/src/translations/languages/he.ts new file mode 100644 index 0000000000..edced9c731 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/he.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const heTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'כל המיקומים', + exportDocumentLabel: 'ייצוא {{label}}', + exportOptions: 'אפשרויות ייצוא', + 'field-depth-label': 'עומק', + 'field-drafts-label': 'כלול טיוטות', + 'field-fields-label': 'שדות', + 'field-format-label': 'פורמט יצוא', + 'field-limit-label': 'הגבלה', + 'field-locale-label': 'מקום', + 'field-name-label': 'שם הקובץ', + 'field-selectionToUse-label': 'בחירה לשימוש', + 'field-sort-label': 'מיין לפי', + 'selectionToUse-allDocuments': 'השתמש בכל המסמכים', + 'selectionToUse-currentFilters': 'השתמש במסננים הנוכחיים', + 'selectionToUse-currentSelection': 'השתמש בבחירה הנוכחית', + totalDocumentsCount: '{{count}} מסמכים כולל', + }, +} + +export const he: PluginLanguage = { + dateFNSKey: 'he', + translations: heTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/hr.ts b/packages/plugin-import-export/src/translations/languages/hr.ts new file mode 100644 index 0000000000..68bf077cab --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/hr.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const hrTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Sve lokalne postavke', + exportDocumentLabel: 'Izvoz {{label}}', + exportOptions: 'Opcije izvoza', + 'field-depth-label': 'Dubina', + 'field-drafts-label': 'Uključite nacrte', + 'field-fields-label': 'Polja', + 'field-format-label': 'Format izvoza', + 'field-limit-label': 'Ograničenje', + 'field-locale-label': 'Lokalitet', + 'field-name-label': 'Naziv datoteke', + 'field-selectionToUse-label': 'Odabir za upotrebu', + 'field-sort-label': 'Sortiraj po', + 'selectionToUse-allDocuments': 'Koristite sve dokumente', + 'selectionToUse-currentFilters': 'Koristite trenutne filtre', + 'selectionToUse-currentSelection': 'Koristite trenutni odabir', + totalDocumentsCount: '{{count}} ukupno dokumenata', + }, +} + +export const hr: PluginLanguage = { + dateFNSKey: 'hr', + translations: hrTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/hu.ts b/packages/plugin-import-export/src/translations/languages/hu.ts new file mode 100644 index 0000000000..6ef2a2a687 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/hu.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const huTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Minden helyszín', + exportDocumentLabel: '{{label}} exportálása', + exportOptions: 'Exportálási lehetőségek', + 'field-depth-label': 'Mélység', + 'field-drafts-label': 'Tartalmazza a vázlatokat', + 'field-fields-label': 'Mezők', + 'field-format-label': 'Export formátum', + 'field-limit-label': 'Korlát', + 'field-locale-label': 'Helyszín', + 'field-name-label': 'Fájlnév', + 'field-selectionToUse-label': 'Használatra kiválasztva', + 'field-sort-label': 'Rendezés szerint', + 'selectionToUse-allDocuments': 'Használjon minden dokumentumot', + 'selectionToUse-currentFilters': 'Használja az aktuális szűrőket', + 'selectionToUse-currentSelection': 'Használja a jelenlegi kiválasztást', + totalDocumentsCount: '{{count}} összes dokumentum', + }, +} + +export const hu: PluginLanguage = { + dateFNSKey: 'hu', + translations: huTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/hy.ts b/packages/plugin-import-export/src/translations/languages/hy.ts new file mode 100644 index 0000000000..84a379d0f5 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/hy.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const hyTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Բոլոր տեղականությունները', + exportDocumentLabel: 'Փոխարտադրել {{label}}', + exportOptions: 'Արտահանման տարբերակներ', + 'field-depth-label': 'Խորություն', + 'field-drafts-label': 'Ներառեք սևագրեր', + 'field-fields-label': 'Դաշտեր', + 'field-format-label': 'Արտահանման ձևաչափ', + 'field-limit-label': 'Սահմանափակում', + 'field-locale-label': 'Լոկալ', + 'field-name-label': 'Ֆայլի անվանումը', + 'field-selectionToUse-label': 'Օգտագործման ընտրություն', + 'field-sort-label': 'Դասավորել ըստ', + 'selectionToUse-allDocuments': 'Օգտագործեք բոլոր փաստաթղթերը', + 'selectionToUse-currentFilters': 'Օգտագործեք ընթացիկ ֆիլտրերը', + 'selectionToUse-currentSelection': 'Օգտագործել ընթացիկ ընտրությունը', + totalDocumentsCount: '{{count}} ընդհանուր փաստաթուղթեր', + }, +} + +export const hy: PluginLanguage = { + dateFNSKey: 'hy-AM', + translations: hyTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/it.ts b/packages/plugin-import-export/src/translations/languages/it.ts new file mode 100644 index 0000000000..fcd56f25f8 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/it.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const itTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Tutte le località', + exportDocumentLabel: 'Esporta {{label}}', + exportOptions: 'Opzioni di Esportazione', + 'field-depth-label': 'Profondità', + 'field-drafts-label': 'Includi bozze', + 'field-fields-label': 'Campi', + 'field-format-label': 'Formato di Esportazione', + 'field-limit-label': 'Limite', + 'field-locale-label': 'Locale', + 'field-name-label': 'Nome del file', + 'field-selectionToUse-label': 'Selezione da utilizzare', + 'field-sort-label': 'Ordina per', + 'selectionToUse-allDocuments': 'Utilizza tutti i documenti', + 'selectionToUse-currentFilters': 'Utilizza i filtri correnti', + 'selectionToUse-currentSelection': 'Utilizza la selezione corrente', + totalDocumentsCount: '{{count}} documenti totali', + }, +} + +export const it: PluginLanguage = { + dateFNSKey: 'it', + translations: itTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/ja.ts b/packages/plugin-import-export/src/translations/languages/ja.ts new file mode 100644 index 0000000000..6cac8931a6 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/ja.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const jaTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'すべてのロケール', + exportDocumentLabel: '{{label}}をエクスポートする', + exportOptions: 'エクスポートオプション', + 'field-depth-label': '深さ', + 'field-drafts-label': 'ドラフトを含めます', + 'field-fields-label': 'フィールド', + 'field-format-label': 'エクスポート形式', + 'field-limit-label': '制限', + 'field-locale-label': 'ロケール', + 'field-name-label': 'ファイル名', + 'field-selectionToUse-label': '使用する選択', + 'field-sort-label': '並び替える', + 'selectionToUse-allDocuments': 'すべての文書を使用してください。', + 'selectionToUse-currentFilters': '現在のフィルターを使用してください', + 'selectionToUse-currentSelection': '現在の選択を使用する', + totalDocumentsCount: '{{count}}合計の文書', + }, +} + +export const ja: PluginLanguage = { + dateFNSKey: 'ja', + translations: jaTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/ko.ts b/packages/plugin-import-export/src/translations/languages/ko.ts new file mode 100644 index 0000000000..cf90f5b3ff --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/ko.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const koTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: '모든 지역 설정', + exportDocumentLabel: '{{label}} 내보내기', + exportOptions: '수출 옵션', + 'field-depth-label': '깊이', + 'field-drafts-label': '초안을 포함하십시오.', + 'field-fields-label': '필드', + 'field-format-label': '수출 형식', + 'field-limit-label': '한계', + 'field-locale-label': '지역', + 'field-name-label': '파일 이름', + 'field-selectionToUse-label': '사용할 선택', + 'field-sort-label': '정렬 방식', + 'selectionToUse-allDocuments': '모든 문서를 사용하십시오.', + 'selectionToUse-currentFilters': '현재 필터를 사용하십시오.', + 'selectionToUse-currentSelection': '현재 선택 항목을 사용하십시오.', + totalDocumentsCount: '{{count}}개의 총 문서', + }, +} + +export const ko: PluginLanguage = { + dateFNSKey: 'ko', + translations: koTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/lt.ts b/packages/plugin-import-export/src/translations/languages/lt.ts new file mode 100644 index 0000000000..f9133a5234 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/lt.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const ltTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Visos vietovės', + exportDocumentLabel: 'Eksportuoti {{label}}', + exportOptions: 'Eksporto parinktys', + 'field-depth-label': 'Gylis', + 'field-drafts-label': 'Įtraukite juodraščius', + 'field-fields-label': 'Laukai', + 'field-format-label': 'Eksporto formatas', + 'field-limit-label': 'Ribos', + 'field-locale-label': 'Lokalė', + 'field-name-label': 'Failo pavadinimas', + 'field-selectionToUse-label': 'Naudojimo pasirinkimas', + 'field-sort-label': 'Rūšiuoti pagal', + 'selectionToUse-allDocuments': 'Naudokite visus dokumentus.', + 'selectionToUse-currentFilters': 'Naudoti esamus filtrus', + 'selectionToUse-currentSelection': 'Naudoti dabartinį pasirinkimą', + totalDocumentsCount: '{{count}} viso dokumentų', + }, +} + +export const lt: PluginLanguage = { + dateFNSKey: 'lt', + translations: ltTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/lv.ts b/packages/plugin-import-export/src/translations/languages/lv.ts new file mode 100644 index 0000000000..ca1a4862d9 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/lv.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const lvTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Visas lokalitātes', + exportDocumentLabel: 'Eksportēt {{label}}', + exportOptions: 'Eksportēšanas opcijas', + 'field-depth-label': 'Dziļums', + 'field-drafts-label': 'Iekļaut melnrakstus', + 'field-fields-label': 'Lauki', + 'field-format-label': 'Eksporta formāts', + 'field-limit-label': 'Limits', + 'field-locale-label': 'Lokalizācija', + 'field-name-label': 'Faila nosaukums', + 'field-selectionToUse-label': 'Izvēles lietošana', + 'field-sort-label': 'Kārtot pēc', + 'selectionToUse-allDocuments': 'Izmantojiet visus dokumentus', + 'selectionToUse-currentFilters': 'Izmantot pašreizējos filtrus', + 'selectionToUse-currentSelection': 'Izmantot pašreizējo izvēli', + totalDocumentsCount: '{{count}} kopā dokumenti', + }, +} + +export const lv: PluginLanguage = { + dateFNSKey: 'lv', + translations: lvTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/my.ts b/packages/plugin-import-export/src/translations/languages/my.ts new file mode 100644 index 0000000000..16154d46e1 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/my.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const myTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'အားလုံးနေရာတွင်', + exportDocumentLabel: 'Eksport {{label}}', + exportOptions: 'Pilihan Eksport', + 'field-depth-label': 'အန္တိုင်း', + 'field-drafts-label': 'မူကြမ်းများပါဝင်ပါ', + 'field-fields-label': 'ကွင်းပျိုးရန်ကွက်များ', + 'field-format-label': 'တင်ပို့နည်းအစီအစဉ်', + 'field-limit-label': 'ကန့်သတ်ချက်', + 'field-locale-label': 'Tempatan', + 'field-name-label': 'ဖိုင်နာမည်', + 'field-selectionToUse-label': 'Pilihan untuk digunakan', + 'field-sort-label': 'စီမံအလိုက်', + 'selectionToUse-allDocuments': 'Gunakan semua dokumen', + 'selectionToUse-currentFilters': 'Gunakan penapis semasa', + 'selectionToUse-currentSelection': 'Gunakan pilihan semasa', + totalDocumentsCount: '{{count}} keseluruhan dokumen', + }, +} + +export const my: PluginLanguage = { + dateFNSKey: 'en-US', + translations: myTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/nb.ts b/packages/plugin-import-export/src/translations/languages/nb.ts new file mode 100644 index 0000000000..f42611fe90 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/nb.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const nbTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Alle steder', + exportDocumentLabel: 'Eksporter {{label}}', + exportOptions: 'Eksportalternativer', + 'field-depth-label': 'Dybde', + 'field-drafts-label': 'Inkluder utkast', + 'field-fields-label': 'Felt', + 'field-format-label': 'Eksportformat', + 'field-limit-label': 'Begrensning', + 'field-locale-label': 'Lokal', + 'field-name-label': 'Filnavn', + 'field-selectionToUse-label': 'Valg til bruk', + 'field-sort-label': 'Sorter etter', + 'selectionToUse-allDocuments': 'Bruk alle dokumentene', + 'selectionToUse-currentFilters': 'Bruk gjeldende filtre', + 'selectionToUse-currentSelection': 'Bruk gjeldende utvalg', + totalDocumentsCount: '{{count}} totalt dokumenter', + }, +} + +export const nb: PluginLanguage = { + dateFNSKey: 'nb', + translations: nbTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/nl.ts b/packages/plugin-import-export/src/translations/languages/nl.ts new file mode 100644 index 0000000000..48067e048a --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/nl.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const nlTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Alle locaties', + exportDocumentLabel: 'Exporteer {{label}}', + exportOptions: 'Exportmogelijkheden', + 'field-depth-label': 'Diepte', + 'field-drafts-label': 'Voeg ontwerpen toe', + 'field-fields-label': 'Velden', + 'field-format-label': 'Exportformaat', + 'field-limit-label': 'Limiet', + 'field-locale-label': 'Lokale', + 'field-name-label': 'Bestandsnaam', + 'field-selectionToUse-label': 'Selectie om te gebruiken', + 'field-sort-label': 'Sorteer op', + 'selectionToUse-allDocuments': 'Gebruik alle documenten', + 'selectionToUse-currentFilters': 'Gebruik huidige filters', + 'selectionToUse-currentSelection': 'Gebruik huidige selectie', + totalDocumentsCount: '{{count}} totaal aantal documenten', + }, +} + +export const nl: PluginLanguage = { + dateFNSKey: 'nl', + translations: nlTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/pl.ts b/packages/plugin-import-export/src/translations/languages/pl.ts new file mode 100644 index 0000000000..0c3708b6de --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/pl.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const plTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Wszystkie lokalizacje', + exportDocumentLabel: 'Eksportuj {{label}}', + exportOptions: 'Opcje eksportu', + 'field-depth-label': 'Głębokość', + 'field-drafts-label': 'Dołącz szkice', + 'field-fields-label': 'Pola', + 'field-format-label': 'Format eksportu', + 'field-limit-label': 'Limit', + 'field-locale-label': 'Lokalizacja', + 'field-name-label': 'Nazwa pliku', + 'field-selectionToUse-label': 'Wybór do użycia', + 'field-sort-label': 'Sortuj według', + 'selectionToUse-allDocuments': 'Użyj wszystkich dokumentów.', + 'selectionToUse-currentFilters': 'Użyj aktualnych filtrów', + 'selectionToUse-currentSelection': 'Użyj aktualnego wyboru', + totalDocumentsCount: '{{count}} łączna liczba dokumentów', + }, +} + +export const pl: PluginLanguage = { + dateFNSKey: 'pl', + translations: plTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/pt.ts b/packages/plugin-import-export/src/translations/languages/pt.ts new file mode 100644 index 0000000000..c3cc423805 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/pt.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const ptTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Todos os locais', + exportDocumentLabel: 'Exportar {{label}}', + exportOptions: 'Opções de Exportação', + 'field-depth-label': 'Profundidade', + 'field-drafts-label': 'Incluir rascunhos', + 'field-fields-label': 'Campos', + 'field-format-label': 'Formato de Exportação', + 'field-limit-label': 'Limite', + 'field-locale-label': 'Localização', + 'field-name-label': 'Nome do arquivo', + 'field-selectionToUse-label': 'Seleção para usar', + 'field-sort-label': 'Ordenar por', + 'selectionToUse-allDocuments': 'Use todos os documentos', + 'selectionToUse-currentFilters': 'Use os filtros atuais', + 'selectionToUse-currentSelection': 'Use a seleção atual', + totalDocumentsCount: '{{count}} documentos totais', + }, +} + +export const pt: PluginLanguage = { + dateFNSKey: 'pt', + translations: ptTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/rn.sh b/packages/plugin-import-export/src/translations/languages/rn.sh new file mode 100644 index 0000000000..ef6b3ed6c4 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/rn.sh @@ -0,0 +1,3 @@ +for file in *.js; do + mv -- "$file" "${file%.js}.ts" +done diff --git a/packages/plugin-import-export/src/translations/languages/ro.ts b/packages/plugin-import-export/src/translations/languages/ro.ts new file mode 100644 index 0000000000..02ba449473 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/ro.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const roTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Toate locațiile', + exportDocumentLabel: 'Export {{label}}', + exportOptions: 'Opțiuni de export', + 'field-depth-label': 'Adâncime', + 'field-drafts-label': 'Includează schițe', + 'field-fields-label': 'Campuri', + 'field-format-label': 'Format de export', + 'field-limit-label': 'Limită', + 'field-locale-label': 'Localizare', + 'field-name-label': 'Numele fișierului', + 'field-selectionToUse-label': 'Selectarea pentru utilizare', + 'field-sort-label': 'Sortează după', + 'selectionToUse-allDocuments': 'Utilizați toate documentele.', + 'selectionToUse-currentFilters': 'Utilizați filtrele curente', + 'selectionToUse-currentSelection': 'Utilizați selecția curentă', + totalDocumentsCount: '{{count}} documente totale', + }, +} + +export const ro: PluginLanguage = { + dateFNSKey: 'ro', + translations: roTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/rs.ts b/packages/plugin-import-export/src/translations/languages/rs.ts new file mode 100644 index 0000000000..7cd8f7499a --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/rs.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const rsTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Sve lokacije', + exportDocumentLabel: 'Извоз {{label}}', + exportOptions: 'Опције извоза', + 'field-depth-label': 'Dubina', + 'field-drafts-label': 'Uključite nacrte', + 'field-fields-label': 'Polja', + 'field-format-label': 'Format izvoza', + 'field-limit-label': 'Ograničenje', + 'field-locale-label': 'Локалитет', + 'field-name-label': 'Ime datoteke', + 'field-selectionToUse-label': 'Izbor za upotrebu', + 'field-sort-label': 'Sortiraj po', + 'selectionToUse-allDocuments': 'Koristite sve dokumente', + 'selectionToUse-currentFilters': 'Koristite trenutne filtere', + 'selectionToUse-currentSelection': 'Koristite trenutni izbor', + totalDocumentsCount: '{{count}} ukupno dokumenata', + }, +} + +export const rs: PluginLanguage = { + dateFNSKey: 'rs', + translations: rsTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/rsLatin.ts b/packages/plugin-import-export/src/translations/languages/rsLatin.ts new file mode 100644 index 0000000000..1e61b02036 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/rsLatin.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const rsLatinTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Sve lokalne postavke', + exportDocumentLabel: 'Izvoz {{label}}', + exportOptions: 'Opcije izvoza', + 'field-depth-label': 'Dubina', + 'field-drafts-label': 'Uključite nacrte', + 'field-fields-label': 'Polja', + 'field-format-label': 'Format izvoza', + 'field-limit-label': 'Ograničenje', + 'field-locale-label': 'Lokalitet', + 'field-name-label': 'Ime datoteke', + 'field-selectionToUse-label': 'Izbor za upotrebu', + 'field-sort-label': 'Sortiraj po', + 'selectionToUse-allDocuments': 'Koristite sve dokumente', + 'selectionToUse-currentFilters': 'Koristite trenutne filtere', + 'selectionToUse-currentSelection': 'Koristi trenutni izbor', + totalDocumentsCount: '{{count}} ukupno dokumenata', + }, +} + +export const rsLatin: PluginLanguage = { + dateFNSKey: 'rs-Latin', + translations: rsLatinTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/ru.ts b/packages/plugin-import-export/src/translations/languages/ru.ts new file mode 100644 index 0000000000..7dc8f5bcd5 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/ru.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const ruTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Все локали', + exportDocumentLabel: 'Экспорт {{label}}', + exportOptions: 'Опции экспорта', + 'field-depth-label': 'Глубина', + 'field-drafts-label': 'Включить черновики', + 'field-fields-label': 'Поля', + 'field-format-label': 'Формат экспорта', + 'field-limit-label': 'Лимит', + 'field-locale-label': 'Локаль', + 'field-name-label': 'Имя файла', + 'field-selectionToUse-label': 'Выбор использования', + 'field-sort-label': 'Сортировать по', + 'selectionToUse-allDocuments': 'Используйте все документы', + 'selectionToUse-currentFilters': 'Использовать текущие фильтры', + 'selectionToUse-currentSelection': 'Использовать текущий выбор', + totalDocumentsCount: '{{count}} общее количество документов', + }, +} + +export const ru: PluginLanguage = { + dateFNSKey: 'ru', + translations: ruTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/sk.ts b/packages/plugin-import-export/src/translations/languages/sk.ts new file mode 100644 index 0000000000..6c0a797837 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/sk.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const skTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Všetky miestne nastavenia', + exportDocumentLabel: 'Export {{label}}', + exportOptions: 'Možnosti exportu', + 'field-depth-label': 'Hĺbka', + 'field-drafts-label': 'Zahrnúť návrhy', + 'field-fields-label': 'Polia', + 'field-format-label': 'Formát exportu', + 'field-limit-label': 'Limit', + 'field-locale-label': 'Lokalita', + 'field-name-label': 'Názov súboru', + 'field-selectionToUse-label': 'Výber na použitie', + 'field-sort-label': 'Triediť podľa', + 'selectionToUse-allDocuments': 'Použite všetky dokumenty', + 'selectionToUse-currentFilters': 'Použiť aktuálne filtre', + 'selectionToUse-currentSelection': 'Použiť aktuálny výber', + totalDocumentsCount: '{{count}} celkový počet dokumentov', + }, +} + +export const sk: PluginLanguage = { + dateFNSKey: 'sk', + translations: skTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/sl.ts b/packages/plugin-import-export/src/translations/languages/sl.ts new file mode 100644 index 0000000000..1569f3709c --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/sl.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const slTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Vse lokacije', + exportDocumentLabel: 'Izvozi {{label}}', + exportOptions: 'Možnosti izvoza', + 'field-depth-label': 'Globina', + 'field-drafts-label': 'Vključi osnutke', + 'field-fields-label': 'Polja', + 'field-format-label': 'Format izvoza', + 'field-limit-label': 'Omejitev', + 'field-locale-label': 'Lokalno', + 'field-name-label': 'Ime datoteke', + 'field-selectionToUse-label': 'Izbor za uporabo', + 'field-sort-label': 'Razvrsti po', + 'selectionToUse-allDocuments': 'Uporabite vse dokumente', + 'selectionToUse-currentFilters': 'Uporabite trenutne filtre.', + 'selectionToUse-currentSelection': 'Uporabi trenutno izbiro', + totalDocumentsCount: '{{count}} skupno dokumentov', + }, +} + +export const sl: PluginLanguage = { + dateFNSKey: 'sl-SI', + translations: slTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/sv.ts b/packages/plugin-import-export/src/translations/languages/sv.ts new file mode 100644 index 0000000000..e62ab5d5c1 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/sv.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const svTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Alla platser', + exportDocumentLabel: 'Exportera {{label}}', + exportOptions: 'Exportalternativ', + 'field-depth-label': 'Djup', + 'field-drafts-label': 'Inkludera utkast', + 'field-fields-label': 'Fält', + 'field-format-label': 'Exportformat', + 'field-limit-label': 'Begränsning', + 'field-locale-label': 'Lokal', + 'field-name-label': 'Filnamn', + 'field-selectionToUse-label': 'Val att använda', + 'field-sort-label': 'Sortera efter', + 'selectionToUse-allDocuments': 'Använd alla dokument', + 'selectionToUse-currentFilters': 'Använd aktuella filter', + 'selectionToUse-currentSelection': 'Använd nuvarande urval', + totalDocumentsCount: '{{count}} totala dokument', + }, +} + +export const sv: PluginLanguage = { + dateFNSKey: 'sv', + translations: svTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/th.ts b/packages/plugin-import-export/src/translations/languages/th.ts new file mode 100644 index 0000000000..72785fbb32 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/th.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const thTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'ทุกสถานที่', + exportDocumentLabel: 'ส่งออก {{label}}', + exportOptions: 'ตัวเลือกการส่งออก', + 'field-depth-label': 'ความลึก', + 'field-drafts-label': 'รวมฉบับร่าง', + 'field-fields-label': 'สนาม', + 'field-format-label': 'รูปแบบการส่งออก', + 'field-limit-label': 'จำกัด', + 'field-locale-label': 'ที่ตั้ง', + 'field-name-label': 'ชื่อไฟล์', + 'field-selectionToUse-label': 'การเลือกใช้', + 'field-sort-label': 'เรียงตาม', + 'selectionToUse-allDocuments': 'ใช้เอกสารทั้งหมด', + 'selectionToUse-currentFilters': 'ใช้ตัวกรองปัจจุบัน', + 'selectionToUse-currentSelection': 'ใช้การเลือกปัจจุบัน', + totalDocumentsCount: '{{count}} เอกสารทั้งหมด', + }, +} + +export const th: PluginLanguage = { + dateFNSKey: 'th', + translations: thTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/tr.ts b/packages/plugin-import-export/src/translations/languages/tr.ts new file mode 100644 index 0000000000..2518b98a5b --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/tr.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const trTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Tüm yerler', + exportDocumentLabel: '{{label}} dışa aktar', + exportOptions: 'İhracat Seçenekleri', + 'field-depth-label': 'Derinlik', + 'field-drafts-label': 'Taslakları dahil et', + 'field-fields-label': 'Alanlar', + 'field-format-label': 'İhracat Formatı', + 'field-limit-label': 'Sınır', + 'field-locale-label': 'Yerel', + 'field-name-label': 'Dosya adı', + 'field-selectionToUse-label': 'Kullanılacak seçim', + 'field-sort-label': 'Sırala', + 'selectionToUse-allDocuments': 'Tüm belgeleri kullanın', + 'selectionToUse-currentFilters': 'Mevcut filtreleri kullanın', + 'selectionToUse-currentSelection': 'Mevcut seçimi kullanın', + totalDocumentsCount: '{{count}} toplam belge', + }, +} + +export const tr: PluginLanguage = { + dateFNSKey: 'tr', + translations: trTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/translation-schema.json b/packages/plugin-import-export/src/translations/languages/translation-schema.json new file mode 100644 index 0000000000..dd222f4c21 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/translation-schema.json @@ -0,0 +1,107 @@ +{ + "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "properties": { + "$schema": { + "type": "string" + }, + "plugin-import-export": { + "type": "object", + "additionalProperties": false, + "properties": { + "export": { + "type": "string" + }, + "import": { + "type": "string" + }, + "allLocales": { + "type": "string" + }, + "download": { + "type": "string" + }, + "exportDocumentLabel": { + "type": "string" + }, + "exportOptions": { + "type": "string" + }, + "field-depth-label": { + "type": "string" + }, + "field-drafts-label": { + "type": "string" + }, + "field-fields-label": { + "type": "string" + }, + "field-format-label": { + "type": "string" + }, + "field-limit-label": { + "type": "string" + }, + "field-locale-label": { + "type": "string" + }, + "field-name-label": { + "type": "string" + }, + "field-selectionToUse-label": { + "type": "string" + }, + "field-sort-label": { + "type": "string" + }, + "no": { + "type": "string" + }, + "preview": { + "type": "string" + }, + "selectionToUse-allDocuments": { + "type": "string" + }, + "selectionToUse-currentFilters": { + "type": "string" + }, + "selectionToUse-currentSelection": { + "type": "string" + }, + "totalDocumentsCount": { + "type": "string" + }, + "yes": { + "type": "string" + } + }, + "required": [ + "export", + "import", + "allLocales", + "download", + "exportDocumentLabel", + "exportOptions", + "field-depth-label", + "field-drafts-label", + "field-fields-label", + "field-format-label", + "field-limit-label", + "field-locale-label", + "field-name-label", + "field-selectionToUse-label", + "field-sort-label", + "no", + "preview", + "selectionToUse-allDocuments", + "selectionToUse-currentFilters", + "selectionToUse-currentSelection", + "totalDocumentsCount", + "yes" + ] + } + }, + "required": ["plugin-import-export"] +} diff --git a/packages/plugin-import-export/src/translations/languages/uk.ts b/packages/plugin-import-export/src/translations/languages/uk.ts new file mode 100644 index 0000000000..690f8675c5 --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/uk.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const ukTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Всі локалі', + exportDocumentLabel: 'Експорт {{label}}', + exportOptions: 'Опції експорту', + 'field-depth-label': 'Глибина', + 'field-drafts-label': 'Включити чернетки', + 'field-fields-label': 'Поля', + 'field-format-label': 'Формат експорту', + 'field-limit-label': 'Обмеження', + 'field-locale-label': 'Локалізація', + 'field-name-label': 'Назва файлу', + 'field-selectionToUse-label': 'Вибір для використання', + 'field-sort-label': 'Сортувати за', + 'selectionToUse-allDocuments': 'Використовуйте всі документи', + 'selectionToUse-currentFilters': 'Використовувати поточні фільтри', + 'selectionToUse-currentSelection': 'Використовуйте поточний вибір', + totalDocumentsCount: '{{count}} всього документів', + }, +} + +export const uk: PluginLanguage = { + dateFNSKey: 'uk', + translations: ukTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/vi.ts b/packages/plugin-import-export/src/translations/languages/vi.ts new file mode 100644 index 0000000000..f6a545958f --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/vi.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const viTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: 'Tất cả địa điểm', + exportDocumentLabel: 'Xuất {{label}}', + exportOptions: 'Tùy chọn xuất', + 'field-depth-label': 'Độ sâu', + 'field-drafts-label': 'Bao gồm bản thảo', + 'field-fields-label': 'Cánh đồng', + 'field-format-label': 'Định dạng Xuất khẩu', + 'field-limit-label': 'Giới hạn', + 'field-locale-label': 'Địa phương', + 'field-name-label': 'Tên tệp', + 'field-selectionToUse-label': 'Lựa chọn để sử dụng', + 'field-sort-label': 'Sắp xếp theo', + 'selectionToUse-allDocuments': 'Sử dụng tất cả các tài liệu', + 'selectionToUse-currentFilters': 'Sử dụng bộ lọc hiện tại', + 'selectionToUse-currentSelection': 'Sử dụng lựa chọn hiện tại', + totalDocumentsCount: '{{count}} tổng số tài liệu', + }, +} + +export const vi: PluginLanguage = { + dateFNSKey: 'vi', + translations: viTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/zh.ts b/packages/plugin-import-export/src/translations/languages/zh.ts new file mode 100644 index 0000000000..b355cb9eed --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/zh.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const zhTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: '所有地方', + exportDocumentLabel: '导出{{label}}', + exportOptions: '导出选项', + 'field-depth-label': '深度', + 'field-drafts-label': '包括草稿', + 'field-fields-label': '领域', + 'field-format-label': '导出格式', + 'field-limit-label': '限制', + 'field-locale-label': '地区设置', + 'field-name-label': '文件名', + 'field-selectionToUse-label': '使用选择', + 'field-sort-label': '按排序', + 'selectionToUse-allDocuments': '使用所有文档', + 'selectionToUse-currentFilters': '使用当前过滤器', + 'selectionToUse-currentSelection': '使用当前选择', + totalDocumentsCount: '{{count}}份总文件', + }, +} + +export const zh: PluginLanguage = { + dateFNSKey: 'zh-CN', + translations: zhTranslations, +} diff --git a/packages/plugin-import-export/src/translations/languages/zhTw.ts b/packages/plugin-import-export/src/translations/languages/zhTw.ts new file mode 100644 index 0000000000..ab3821015a --- /dev/null +++ b/packages/plugin-import-export/src/translations/languages/zhTw.ts @@ -0,0 +1,27 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const zhTwTranslations: PluginDefaultTranslationsObject = { + 'plugin-import-export': { + allLocales: '所有地區', + exportDocumentLabel: '匯出 {{label}}', + exportOptions: '出口選項', + 'field-depth-label': '深度', + 'field-drafts-label': '包含草稿', + 'field-fields-label': '田野', + 'field-format-label': '出口格式', + 'field-limit-label': '限制', + 'field-locale-label': '地區設定', + 'field-name-label': '檔案名稱', + 'field-selectionToUse-label': '使用選擇', + 'field-sort-label': '按照排序', + 'selectionToUse-allDocuments': '使用所有文件', + 'selectionToUse-currentFilters': '使用當前過濾器', + 'selectionToUse-currentSelection': '使用當前選擇', + totalDocumentsCount: '{{count}} 總文件數', + }, +} + +export const zhTw: PluginLanguage = { + dateFNSKey: 'zh-TW', + translations: zhTwTranslations, +} diff --git a/packages/plugin-import-export/src/translations/translation-schema.json b/packages/plugin-import-export/src/translations/translation-schema.json deleted file mode 100644 index a42e09dc5b..0000000000 --- a/packages/plugin-import-export/src/translations/translation-schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "object", - "$schema": "http://json-schema.org/draft-04/schema#", - "additionalProperties": false, - "properties": { - "$schema": { - "type": "string" - }, - "plugin-import-export": { - "type": "object", - "additionalProperties": false, - "properties": { - "export": { - "type": "string" - }, - "import": { - "type": "string" - } - }, - "required": ["export", "import"] - } - }, - "required": ["plugin-import-export"] -} diff --git a/packages/plugin-import-export/src/translations/types.ts b/packages/plugin-import-export/src/translations/types.ts new file mode 100644 index 0000000000..aa58071cb6 --- /dev/null +++ b/packages/plugin-import-export/src/translations/types.ts @@ -0,0 +1,25 @@ +import type { Language } from '@payloadcms/translations' + +import type { enTranslations } from './languages/en.js' + +export type PluginLanguage = Language<{ + 'plugin-import-export': { + exportDocumentLabel: string + exportOptions: string + 'field-depth-label': string + 'field-drafts-label': string + 'field-fields-label': string + 'field-format-label': string + 'field-limit-label': string + 'field-locale-label': string + 'field-name-label': string + 'field-selectionToUse-label': string + 'field-sort-label': string + 'selectionToUse-allDocuments': string + 'selectionToUse-currentFilters': string + 'selectionToUse-currentSelection': string + totalDocumentsCount: string + } +}> + +export type PluginDefaultTranslationsObject = typeof enTranslations diff --git a/packages/translations/src/clientKeys.ts b/packages/translations/src/clientKeys.ts index d92cb05690..a8c95a3f9c 100644 --- a/packages/translations/src/clientKeys.ts +++ b/packages/translations/src/clientKeys.ts @@ -145,6 +145,8 @@ export const clientTranslationKeys = createClientTranslationKeys([ 'general:close', 'general:collapse', 'general:collections', + 'general:yes', + 'general:no', 'general:columns', 'general:columnToSort', 'general:confirm', @@ -271,6 +273,9 @@ export const clientTranslationKeys = createClientTranslationKeys([ 'general:time', 'general:timezone', 'general:titleDeleted', + 'general:import', + 'general:export', + 'general:allLocales', 'general:true', 'general:upcomingEvents', 'general:users', @@ -340,6 +345,7 @@ export const clientTranslationKeys = createClientTranslationKeys([ 'upload:fileName', 'upload:fileSize', 'upload:noFile', + 'upload:download', 'validation:emailAddress', 'validation:enterNumber', diff --git a/packages/translations/src/languages/ar.ts b/packages/translations/src/languages/ar.ts index af7c4f25f8..ee42949180 100644 --- a/packages/translations/src/languages/ar.ts +++ b/packages/translations/src/languages/ar.ts @@ -182,6 +182,7 @@ export const arTranslations: DefaultTranslationsObject = { adminTheme: 'شكل واجهة المستخدم', all: 'الكل', allCollections: 'جميع المجموعات', + allLocales: 'جميع المواقع', and: 'و', anotherUser: 'مستخدم آخر', anotherUserTakenOver: 'قام مستخدم آخر بالاستيلاء على تحرير هذا المستند.', @@ -249,6 +250,7 @@ export const arTranslations: DefaultTranslationsObject = { enterAValue: 'أدخل قيمة', error: 'خطأ', errors: 'أخطاء', + export: 'تصدير', fallbackToDefaultLocale: 'الرجوع إلى اللغة الافتراضية', false: 'كاذب', filter: 'تصفية', @@ -256,6 +258,7 @@ export const arTranslations: DefaultTranslationsObject = { filterWhere: 'تصفية {{label}} حيث', globals: 'عامة', goBack: 'العودة', + import: 'استيراد', isEditing: 'يحرر', language: 'اللغة', lastModified: 'آخر تعديل', @@ -272,6 +275,7 @@ export const arTranslations: DefaultTranslationsObject = { moveUp: 'التّحريك إلى الأعلى', newPassword: 'كلمة مرور جديدة', next: 'التالي', + no: 'لا', noDateSelected: 'لم يتم اختيار تاريخ', noFiltersSet: 'لم يتم تعيين أي عوامل تصفية', noLabel: '<لا {{label}}>', @@ -351,6 +355,7 @@ export const arTranslations: DefaultTranslationsObject = { value: 'القيمة', viewReadOnly: 'عرض للقراءة فقط', welcome: 'مرحبًا', + yes: 'نعم', }, localization: { cannotCopySameLocale: 'لا يمكن النسخ إلى نفس الموقع', @@ -384,6 +389,7 @@ export const arTranslations: DefaultTranslationsObject = { bulkUpload: 'تحميل بالجملة', crop: 'محصول', cropToolDescription: 'اسحب الزوايا المحددة للمنطقة، رسم منطقة جديدة أو قم بضبط القيم أدناه.', + download: 'تحميل', dragAndDrop: 'قم بسحب وإسقاط ملفّ', dragAndDropHere: 'أو اسحب الملفّ وأفلته هنا', editImage: 'تعديل الصورة', diff --git a/packages/translations/src/languages/az.ts b/packages/translations/src/languages/az.ts index 717acbe639..907a33f347 100644 --- a/packages/translations/src/languages/az.ts +++ b/packages/translations/src/languages/az.ts @@ -184,6 +184,7 @@ export const azTranslations: DefaultTranslationsObject = { adminTheme: 'Admin Mövzusu', all: 'Hamısı', allCollections: 'Bütün kolleksiyalar', + allLocales: 'Bütün lokal məkanlar', and: 'Və', anotherUser: 'Başqa bir istifadəçi', anotherUserTakenOver: 'Başqa bir istifadəçi bu sənədin redaktəsini ələ keçirdi.', @@ -253,6 +254,7 @@ export const azTranslations: DefaultTranslationsObject = { enterAValue: 'Bir dəyər daxil edin', error: 'Xəta', errors: 'Xətalar', + export: 'İxrac', fallbackToDefaultLocale: 'Standart lokalə keçid', false: 'Yalan', filter: 'Filter', @@ -260,6 +262,7 @@ export const azTranslations: DefaultTranslationsObject = { filterWhere: '{{label}} filtrlə', globals: 'Qloballar', goBack: 'Geri qayıt', + import: 'İdxal', isEditing: 'redaktə edir', language: 'Dil', lastModified: 'Son dəyişdirildi', @@ -276,6 +279,7 @@ export const azTranslations: DefaultTranslationsObject = { moveUp: 'Yuxarı hərəkət et', newPassword: 'Yeni şifrə', next: 'Növbəti', + no: 'Xeyr', noDateSelected: 'Heç bir tarix seçilməyib', noFiltersSet: 'Filter təyin edilməyib', noLabel: '', @@ -356,6 +360,7 @@ export const azTranslations: DefaultTranslationsObject = { value: 'Dəyər', viewReadOnly: 'Yalnız oxu rejimində bax', welcome: 'Xoş gəldiniz', + yes: 'Bəli', }, localization: { cannotCopySameLocale: 'Eyni dildə köçürmək mümkün deyil', @@ -390,6 +395,7 @@ export const azTranslations: DefaultTranslationsObject = { crop: 'Məhsul', cropToolDescription: 'Seçilmiş sahənin köşələrini sürükləyin, yeni bir sahə çəkin və ya aşağıdakı dəyərləri düzəltin.', + download: 'Yükləyin', dragAndDrop: 'Faylı buraya sürükləyin və buraxın', dragAndDropHere: 'və ya faylı buraya sürükləyin və buraxın', editImage: 'Şəkili Redaktə Et', diff --git a/packages/translations/src/languages/bg.ts b/packages/translations/src/languages/bg.ts index 5b3cc213c0..f5ab946b87 100644 --- a/packages/translations/src/languages/bg.ts +++ b/packages/translations/src/languages/bg.ts @@ -184,6 +184,7 @@ export const bgTranslations: DefaultTranslationsObject = { adminTheme: 'Цветова тема', all: 'Всички', allCollections: 'Всички колекции', + allLocales: 'Всички локации', and: 'И', anotherUser: 'Друг потребител', anotherUserTakenOver: 'Друг потребител пое редактирането на този документ.', @@ -252,6 +253,7 @@ export const bgTranslations: DefaultTranslationsObject = { enterAValue: 'Въведи стойност', error: 'Грешка', errors: 'Грешки', + export: 'Износ', fallbackToDefaultLocale: 'Използвай локализацията, която е по подразбиране', false: 'Невярно', filter: 'Филтрирай', @@ -259,6 +261,7 @@ export const bgTranslations: DefaultTranslationsObject = { filterWhere: 'Филтрирай {{label}} където', globals: 'Глобални', goBack: 'Върни се', + import: 'Внос', isEditing: 'редактира', language: 'Език', lastModified: 'Последно променено', @@ -275,6 +278,7 @@ export const bgTranslations: DefaultTranslationsObject = { moveUp: 'Нагоре', newPassword: 'Нова парола', next: 'Следващ', + no: 'Не', noDateSelected: 'Не е избрана дата', noFiltersSet: 'Няма зададени филтри', noLabel: '<Няма {{label}}>', @@ -354,6 +358,7 @@ export const bgTranslations: DefaultTranslationsObject = { value: 'Стойност', viewReadOnly: 'Преглед само за четене', welcome: 'Добре дошъл', + yes: 'Да', }, localization: { cannotCopySameLocale: 'Не може да се копира в същата локация', @@ -388,6 +393,7 @@ export const bgTranslations: DefaultTranslationsObject = { crop: 'Изрязване', cropToolDescription: 'Плъзни ъглите на избраната област, избери нова област или коригирай стойностите по-долу.', + download: 'Изтегляне', dragAndDrop: 'Дръпни и пусни файл', dragAndDropHere: 'или дръпни и пусни файла тук', editImage: 'Редактирай изображение', diff --git a/packages/translations/src/languages/ca.ts b/packages/translations/src/languages/ca.ts index 7b0a356f06..31ce2b4f3a 100644 --- a/packages/translations/src/languages/ca.ts +++ b/packages/translations/src/languages/ca.ts @@ -185,6 +185,7 @@ export const caTranslations: DefaultTranslationsObject = { adminTheme: "Tema d'administració", all: 'Tots', allCollections: 'Totes les col·leccions', + allLocales: 'Totes les localitats', and: 'i', anotherUser: 'Altre usuari', anotherUserTakenOver: "Un altre usuari ha pres la edició d'aquest document.", @@ -253,6 +254,7 @@ export const caTranslations: DefaultTranslationsObject = { enterAValue: 'Introdueix un valor', error: 'Error', errors: 'Errors', + export: 'Exportació', fallbackToDefaultLocale: 'Torna al idioma per defecte', false: 'Fals', filter: 'Filtra', @@ -260,6 +262,7 @@ export const caTranslations: DefaultTranslationsObject = { filterWhere: 'Filtra {{label}} on', globals: 'Globals', goBack: 'Torna enrere', + import: 'Importar', isEditing: 'esta editant', language: 'Idioma', lastModified: 'Última modificació', @@ -276,6 +279,7 @@ export const caTranslations: DefaultTranslationsObject = { moveUp: 'Move amunt', newPassword: 'Nova contrasenya', next: 'Seguent', + no: 'No', noDateSelected: 'Data not seleccionada', noFiltersSet: 'Sense filtres', noLabel: '', @@ -355,6 +359,7 @@ export const caTranslations: DefaultTranslationsObject = { value: 'Valor', viewReadOnly: 'Veure només de lectura', welcome: 'Benvingut', + yes: 'Sí', }, localization: { cannotCopySameLocale: 'No es pot copiar al mateix idioma', @@ -389,6 +394,7 @@ export const caTranslations: DefaultTranslationsObject = { crop: 'Retallar', cropToolDescription: 'Arrossega les cantonades de l’àrea seleccionada, dibuixa una nova àrea o ajusta els valors a continuació.', + download: 'Descarrega', dragAndDrop: 'Arrossega i deixa anar un fitxer', dragAndDropHere: 'o arrossega i deixa anar un fitxer aquí', editImage: 'Editar imatge', diff --git a/packages/translations/src/languages/cs.ts b/packages/translations/src/languages/cs.ts index 56b59453fa..d6cfc5e9b5 100644 --- a/packages/translations/src/languages/cs.ts +++ b/packages/translations/src/languages/cs.ts @@ -184,6 +184,7 @@ export const csTranslations: DefaultTranslationsObject = { adminTheme: 'Motiv administračního rozhraní', all: 'Všechny', allCollections: 'Všechny kolekce', + allLocales: 'Všechny lokalizace', and: 'a', anotherUser: 'Jiný uživatel', anotherUserTakenOver: 'Jiný uživatel převzal úpravy tohoto dokumentu.', @@ -251,6 +252,7 @@ export const csTranslations: DefaultTranslationsObject = { enterAValue: 'Zadejte hodnotu', error: 'Chyba', errors: 'Chyby', + export: 'Vývoz', fallbackToDefaultLocale: 'Zpětné přepnutí do výchozího locale', false: 'Nepravda', filter: 'Filtr', @@ -258,6 +260,7 @@ export const csTranslations: DefaultTranslationsObject = { filterWhere: 'Filtrovat {{label}} kde', globals: 'Globální', goBack: 'Vrátit se', + import: 'Import', isEditing: 'upravuje', language: 'Jazyk', lastModified: 'Naposledy změněno', @@ -274,6 +277,7 @@ export const csTranslations: DefaultTranslationsObject = { moveUp: 'Posunout nahoru', newPassword: 'Nové heslo', next: 'Další', + no: 'Ne', noDateSelected: 'Nebylo vybráno žádné datum', noFiltersSet: 'Nenastaveny žádné filtry', noLabel: '<Žádný {{label}}>', @@ -352,6 +356,7 @@ export const csTranslations: DefaultTranslationsObject = { value: 'Hodnota', viewReadOnly: 'Zobrazit pouze pro čtení', welcome: 'Vítejte', + yes: 'Ano', }, localization: { cannotCopySameLocale: 'Nelze kopírovat do stejného umístění', @@ -386,6 +391,7 @@ export const csTranslations: DefaultTranslationsObject = { crop: 'Ořez', cropToolDescription: 'Přetáhněte rohy vybrané oblasti, nakreslete novou oblast nebo upravte níže uvedené hodnoty.', + download: 'Stáhnout', dragAndDrop: 'Přetáhněte soubor', dragAndDropHere: 'nebo sem přetáhněte soubor', editImage: 'Upravit obrázek', diff --git a/packages/translations/src/languages/da.ts b/packages/translations/src/languages/da.ts index 9aa2081509..482e52fb76 100644 --- a/packages/translations/src/languages/da.ts +++ b/packages/translations/src/languages/da.ts @@ -183,6 +183,7 @@ export const daTranslations: DefaultTranslationsObject = { adminTheme: 'Admin tema', all: 'Alle', allCollections: 'Alle samlinger', + allLocales: 'Alle lokaliteter', and: 'Og', anotherUser: 'En anden bruger', anotherUserTakenOver: 'En anden bruger har overtaget denne ressource.', @@ -251,6 +252,7 @@ export const daTranslations: DefaultTranslationsObject = { enterAValue: 'Indtast en værdi', error: 'Fejl', errors: 'Fejl', + export: 'Eksport', fallbackToDefaultLocale: 'Tilbagefald til standardlokalitet', false: 'Falsk', filter: 'Filter', @@ -258,6 +260,7 @@ export const daTranslations: DefaultTranslationsObject = { filterWhere: 'Filter {{label}} hvor', globals: 'Globale', goBack: 'Gå tilbage', + import: 'Import', isEditing: 'redigerer', language: 'Sprog', lastModified: 'Sidst ændret', @@ -274,6 +277,7 @@ export const daTranslations: DefaultTranslationsObject = { moveUp: 'Ryk op', newPassword: 'Ny adgangskode', next: 'Næste', + no: 'Nej', noDateSelected: 'Ingen dato valgt', noFiltersSet: 'Ingen filtre angivet', noLabel: '', @@ -353,6 +357,7 @@ export const daTranslations: DefaultTranslationsObject = { value: 'Værdi', viewReadOnly: 'Vis kun-læsning', welcome: 'Velkommen', + yes: 'Ja', }, localization: { cannotCopySameLocale: 'Kan ikke kopiere til den samme lokalitet', @@ -387,6 +392,7 @@ export const daTranslations: DefaultTranslationsObject = { crop: 'Beskær', cropToolDescription: 'Træk i hjørnerne af det valgte område, tegn et nyt område eller juster værdierne nedenfor.', + download: 'Download', dragAndDrop: 'Træk og slip en fil', dragAndDropHere: 'Eller træk og slip en fil her', editImage: 'Rediger billede', diff --git a/packages/translations/src/languages/de.ts b/packages/translations/src/languages/de.ts index 18a819017c..02bacfbee0 100644 --- a/packages/translations/src/languages/de.ts +++ b/packages/translations/src/languages/de.ts @@ -120,7 +120,8 @@ export const deTranslations: DefaultTranslationsObject = { unauthorized: 'Nicht autorisiert - du musst angemeldet sein, um diese Anfrage zu stellen.', unauthorizedAdmin: 'Nicht autorisiert, dieser Benutzer hat keinen Zugriff auf das Admin-Panel.', unknown: 'Ein unbekannter Fehler ist aufgetreten.', - unPublishingDocument: 'Bei der Aufhebung der Veröffentlichung dieses Dokuments ist ein Fehler aufgetreten.', + unPublishingDocument: + 'Bei der Aufhebung der Veröffentlichung dieses Dokuments ist ein Fehler aufgetreten.', unspecific: 'Ein Fehler ist aufgetreten.', unverifiedEmail: 'Bitte verifiziere deine E-Mail, bevor du dich anmeldest.', userEmailAlreadyRegistered: 'Ein Benutzer mit der angegebenen E-Mail ist bereits registriert.', @@ -188,6 +189,7 @@ export const deTranslations: DefaultTranslationsObject = { adminTheme: 'Admin-Erscheinungsbild', all: 'Alle', allCollections: 'Alle Sammlungen', + allLocales: 'Alle Standorte', and: 'Und', anotherUser: 'Ein anderer Benutzer', anotherUserTakenOver: 'Ein anderer Benutzer hat die Bearbeitung dieses Dokuments übernommen.', @@ -257,6 +259,7 @@ export const deTranslations: DefaultTranslationsObject = { enterAValue: 'Gib einen Wert ein', error: 'Fehler', errors: 'Fehler', + export: 'Export', fallbackToDefaultLocale: 'Auf die Standardsprache zurückfallen', false: 'Falsch', filter: 'Filter', @@ -264,6 +267,7 @@ export const deTranslations: DefaultTranslationsObject = { filterWhere: 'Filter {{label}}, wo', globals: 'Globale Dokumente', goBack: 'Zurück', + import: 'Importieren', isEditing: 'bearbeitet gerade', language: 'Sprache', lastModified: 'Zuletzt geändert', @@ -280,6 +284,7 @@ export const deTranslations: DefaultTranslationsObject = { moveUp: 'Nach oben bewegen', newPassword: 'Neues Passwort', next: 'Nächste', + no: 'Nein', noDateSelected: 'Kein Datum ausgewählt', noFiltersSet: 'Keine Filter gesetzt', noLabel: '', @@ -321,7 +326,8 @@ export const deTranslations: DefaultTranslationsObject = { selectLabel: 'Wähle {{label}}', selectValue: 'Wert auswählen', showAllLabel: 'Zeige alle {{label}}', - sorryNotFound: 'Es tut uns leid, aber wir haben nichts gefunden, was deiner Anfrage entspricht.', + sorryNotFound: + 'Es tut uns leid, aber wir haben nichts gefunden, was deiner Anfrage entspricht.', sort: 'Sortieren', sortByLabelDirection: 'Sortieren nach {{label}} {{direction}}', stayOnThisPage: 'Auf dieser Seite bleiben', @@ -360,6 +366,7 @@ export const deTranslations: DefaultTranslationsObject = { value: 'Wert', viewReadOnly: 'Nur-Lese-Ansicht', welcome: 'Willkommen', + yes: 'Ja', }, localization: { cannotCopySameLocale: 'Kann nicht in dieselbe Sprache kopiert werden', @@ -394,6 +401,7 @@ export const deTranslations: DefaultTranslationsObject = { crop: 'Zuschneiden', cropToolDescription: 'Ziehe die Ecken des ausgewählten Bereichs, zeichne einen neuen Bereich oder passe die Werte unten an.', + download: 'Herunterladen', dragAndDrop: 'Bewege eine Datei per Drag-and-Drop', dragAndDropHere: 'oder lege eine Datei hier ab', editImage: 'Bild bearbeiten', diff --git a/packages/translations/src/languages/en.ts b/packages/translations/src/languages/en.ts index 5aba5fa6ad..715a5f562d 100644 --- a/packages/translations/src/languages/en.ts +++ b/packages/translations/src/languages/en.ts @@ -184,6 +184,7 @@ export const enTranslations = { adminTheme: 'Admin Theme', all: 'All', allCollections: 'All Collections', + allLocales: 'All locales', and: 'And', anotherUser: 'Another user', anotherUserTakenOver: 'Another user has taken over editing this document.', @@ -253,6 +254,7 @@ export const enTranslations = { enterAValue: 'Enter a value', error: 'Error', errors: 'Errors', + export: 'Export', fallbackToDefaultLocale: 'Fallback to default locale', false: 'False', filter: 'Filter', @@ -260,6 +262,7 @@ export const enTranslations = { filterWhere: 'Filter {{label}} where', globals: 'Globals', goBack: 'Go back', + import: 'Import', isEditing: 'is editing', language: 'Language', lastModified: 'Last Modified', @@ -276,6 +279,7 @@ export const enTranslations = { moveUp: 'Move Up', newPassword: 'New Password', next: 'Next', + no: 'No', noDateSelected: 'No date selected', noFiltersSet: 'No filters set', noLabel: '', @@ -355,6 +359,7 @@ export const enTranslations = { value: 'Value', viewReadOnly: 'View read-only', welcome: 'Welcome', + yes: 'Yes', }, localization: { cannotCopySameLocale: 'Cannot copy to the same locale', @@ -389,6 +394,7 @@ export const enTranslations = { crop: 'Crop', cropToolDescription: 'Drag the corners of the selected area, draw a new area or adjust the values below.', + download: 'Download', dragAndDrop: 'Drag and drop a file', dragAndDropHere: 'or drag and drop a file here', editImage: 'Edit Image', diff --git a/packages/translations/src/languages/es.ts b/packages/translations/src/languages/es.ts index 49248629bc..d3645fce0d 100644 --- a/packages/translations/src/languages/es.ts +++ b/packages/translations/src/languages/es.ts @@ -188,6 +188,7 @@ export const esTranslations: DefaultTranslationsObject = { adminTheme: 'Tema del admin', all: 'Todo', allCollections: 'Todas las colecciones', + allLocales: 'Todas las ubicaciones', and: 'Y', anotherUser: 'Otro usuario', anotherUserTakenOver: 'Otro usuario ha tomado el control de la edición de este documento.', @@ -257,6 +258,7 @@ export const esTranslations: DefaultTranslationsObject = { enterAValue: 'Introduce un valor', error: 'Error', errors: 'Errores', + export: 'Exportación', fallbackToDefaultLocale: 'Volver a la configuración regional por defecto', false: 'Falso', filter: 'Filtro', @@ -264,6 +266,7 @@ export const esTranslations: DefaultTranslationsObject = { filterWhere: 'Filtrar {{label}} donde', globals: 'Globales', goBack: 'Volver', + import: 'Importar', isEditing: 'está editando', language: 'Idioma', lastModified: 'Última modificación', @@ -280,6 +283,7 @@ export const esTranslations: DefaultTranslationsObject = { moveUp: 'Mover arriba', newPassword: 'Nueva contraseña', next: 'Siguiente', + no: 'No', noDateSelected: 'No se seleccionó ninguna fecha', noFiltersSet: 'No hay filtros establecidos', noLabel: '', @@ -359,6 +363,7 @@ export const esTranslations: DefaultTranslationsObject = { value: 'Valor', viewReadOnly: 'Ver solo lectura', welcome: 'Bienvenido', + yes: 'Sí', }, localization: { cannotCopySameLocale: 'No se puede copiar al mismo lugar', @@ -393,6 +398,7 @@ export const esTranslations: DefaultTranslationsObject = { crop: 'Cultivo', cropToolDescription: 'Arrastra las esquinas del área seleccionada, dibuja un nuevo área o ajusta los valores a continuación.', + download: 'Descargar', dragAndDrop: 'Arrastra y suelta un archivo', dragAndDropHere: 'o arrastra un archivo aquí', editImage: 'Editar imagen', diff --git a/packages/translations/src/languages/et.ts b/packages/translations/src/languages/et.ts index 06ba68fcf9..ca8d8a8747 100644 --- a/packages/translations/src/languages/et.ts +++ b/packages/translations/src/languages/et.ts @@ -183,6 +183,7 @@ export const etTranslations: DefaultTranslationsObject = { adminTheme: 'Administreerimisliidese teema', all: 'Kõik', allCollections: 'Kõik kollektsioonid', + allLocales: 'Kõik kohalikud seaded', and: 'Ja', anotherUser: 'Teine kasutaja', anotherUserTakenOver: 'Teine kasutaja on võtnud selle dokumendi muutmise üle.', @@ -250,6 +251,7 @@ export const etTranslations: DefaultTranslationsObject = { enterAValue: 'Sisesta väärtus', error: 'Viga', errors: 'Vead', + export: 'Eksport', fallbackToDefaultLocale: 'Kasuta vaikekeelt', false: 'Väär', filter: 'Filter', @@ -257,6 +259,7 @@ export const etTranslations: DefaultTranslationsObject = { filterWhere: 'Filtreeri {{label}} kus', globals: 'Globaalsed', goBack: 'Mine tagasi', + import: 'Importimine', isEditing: 'muudab', language: 'Keel', lastModified: 'Viimati muudetud', @@ -273,6 +276,7 @@ export const etTranslations: DefaultTranslationsObject = { moveUp: 'Liiguta üles', newPassword: 'Uus parool', next: 'Järgmine', + no: 'Ei', noDateSelected: 'Kuupäeva ei ole valitud', noFiltersSet: 'Filtreid pole määratud', noLabel: '<{{label}} puudub>', @@ -351,6 +355,7 @@ export const etTranslations: DefaultTranslationsObject = { value: 'Väärtus', viewReadOnly: 'Vaata ainult lugemiseks', welcome: 'Tere tulemast', + yes: 'Jah', }, localization: { cannotCopySameLocale: 'Ei saa kopeerida samasse keelde', @@ -385,6 +390,7 @@ export const etTranslations: DefaultTranslationsObject = { crop: 'Kärbi', cropToolDescription: 'Lohista valitud ala nurki, joonista uus ala või kohanda väärtusi allpool.', + download: 'Laadige alla', dragAndDrop: 'Lohista ja aseta fail', dragAndDropHere: 'või lohista ja aseta fail siia', editImage: 'Muuda pilti', diff --git a/packages/translations/src/languages/fa.ts b/packages/translations/src/languages/fa.ts index 8a17f5be61..a03782db91 100644 --- a/packages/translations/src/languages/fa.ts +++ b/packages/translations/src/languages/fa.ts @@ -182,6 +182,7 @@ export const faTranslations: DefaultTranslationsObject = { adminTheme: 'پوسته پیشخوان', all: 'همه', allCollections: 'همه مجموعه‌ها', + allLocales: 'همه مکان ها', and: 'و', anotherUser: 'کاربر دیگر', anotherUserTakenOver: 'کاربر دیگری ویرایش این سند را به دست گرفته است.', @@ -251,6 +252,7 @@ export const faTranslations: DefaultTranslationsObject = { enterAValue: 'یک مقدار وارد کنید', error: 'خطا', errors: 'خطاها', + export: 'صادرات', fallbackToDefaultLocale: 'بازگردان پیشفرض زبان', false: 'غلط', filter: 'علامت‌گذاری', @@ -258,6 +260,7 @@ export const faTranslations: DefaultTranslationsObject = { filterWhere: 'علامت گذاری کردن {{label}} جایی که', globals: 'سراسری', goBack: 'برگشت', + import: 'واردات', isEditing: 'در حال ویرایش است', language: 'زبان', lastModified: 'آخرین نگارش', @@ -274,6 +277,7 @@ export const faTranslations: DefaultTranslationsObject = { moveUp: 'حرکت به بالا', newPassword: 'گذرواژه تازه', next: 'بعدی', + no: 'نه', noDateSelected: 'هیچ تاریخی انتخاب نشده است', noFiltersSet: 'هیچ علامت‌گذاری تنظیم نشده', noLabel: '', @@ -352,6 +356,7 @@ export const faTranslations: DefaultTranslationsObject = { value: 'مقدار', viewReadOnly: 'فقط برای خواندن مشاهده کنید', welcome: 'خوش‌آمدید', + yes: 'بله', }, localization: { cannotCopySameLocale: 'نمی توان به همان محل نسخه برداری کرد', @@ -386,6 +391,7 @@ export const faTranslations: DefaultTranslationsObject = { crop: 'محصول', cropToolDescription: 'گوشه‌های منطقه انتخاب شده را بکشید، یک منطقه جدید رسم کنید یا مقادیر زیر را تنظیم کنید.', + download: 'دانلود', dragAndDrop: 'یک سند را بکشید و رها کنید', dragAndDropHere: 'یا یک سند را به اینجا بکشید و رها کنید', editImage: 'ویرایش تصویر', diff --git a/packages/translations/src/languages/fr.ts b/packages/translations/src/languages/fr.ts index 6b49660418..5f8e6eef5b 100644 --- a/packages/translations/src/languages/fr.ts +++ b/packages/translations/src/languages/fr.ts @@ -191,6 +191,7 @@ export const frTranslations: DefaultTranslationsObject = { adminTheme: 'Thème d’administration', all: 'Tout', allCollections: 'Toutes les collections', + allLocales: 'Tous les paramètres régionaux', and: 'Et', anotherUser: 'Un autre utilisateur', anotherUserTakenOver: 'Un autre utilisateur a pris en charge la modification de ce document.', @@ -260,6 +261,7 @@ export const frTranslations: DefaultTranslationsObject = { enterAValue: 'Entrez une valeur', error: 'Erreur', errors: 'Erreurs', + export: 'Exportation', fallbackToDefaultLocale: 'Retour à la locale par défaut', false: 'Faux', filter: 'Filtrer', @@ -267,6 +269,7 @@ export const frTranslations: DefaultTranslationsObject = { filterWhere: 'Filtrer {{label}} où', globals: 'Globals(es)', goBack: 'Retourner', + import: 'Importation', isEditing: 'est en train de modifier', language: 'Langue', lastModified: 'Dernière modification', @@ -283,6 +286,7 @@ export const frTranslations: DefaultTranslationsObject = { moveUp: 'Déplacer vers le haut', newPassword: 'Nouveau mot de passe', next: 'Prochain', + no: 'Non', noDateSelected: 'Aucune date sélectionnée', noFiltersSet: 'Aucun filtre défini', noLabel: '', @@ -364,6 +368,7 @@ export const frTranslations: DefaultTranslationsObject = { value: 'Valeur', viewReadOnly: 'Afficher en lecture seule', welcome: 'Bienvenue', + yes: 'Oui', }, localization: { cannotCopySameLocale: 'Impossible de copier dans le même endroit', @@ -398,6 +403,7 @@ export const frTranslations: DefaultTranslationsObject = { crop: 'Recadrer', cropToolDescription: 'Faites glisser les coins de la zone sélectionnée, dessinez une nouvelle zone ou ajustez les valeurs ci-dessous.', + download: 'Télécharger', dragAndDrop: 'Glisser-déposer un fichier', dragAndDropHere: 'ou glissez-déposez un fichier ici', editImage: 'Modifier l’image', diff --git a/packages/translations/src/languages/he.ts b/packages/translations/src/languages/he.ts index c2bc56a717..7458d108a7 100644 --- a/packages/translations/src/languages/he.ts +++ b/packages/translations/src/languages/he.ts @@ -180,6 +180,7 @@ export const heTranslations: DefaultTranslationsObject = { adminTheme: 'ערכת נושא ממשק הניהול', all: 'כל', allCollections: 'כל האוספים', + allLocales: 'כל המקומות', and: 'וגם', anotherUser: 'משתמש אחר', anotherUserTakenOver: 'משתמש אחר השתלט על עריכת מסמך זה.', @@ -247,6 +248,7 @@ export const heTranslations: DefaultTranslationsObject = { enterAValue: 'הזן ערך', error: 'שגיאה', errors: 'שגיאות', + export: 'יצוא', fallbackToDefaultLocale: 'חזרה לשפת ברירת המחדל', false: 'False', filter: 'סינון', @@ -254,6 +256,7 @@ export const heTranslations: DefaultTranslationsObject = { filterWhere: 'סנן {{label}} בהם', globals: 'גלובלים', goBack: 'חזור', + import: 'יבוא', isEditing: 'עורך', language: 'שפה', lastModified: 'נערך לאחרונה', @@ -270,6 +273,7 @@ export const heTranslations: DefaultTranslationsObject = { moveUp: 'הזז למעלה', newPassword: 'סיסמה חדשה', next: 'הבא', + no: 'לא', noDateSelected: 'לא נבחר תאריך', noFiltersSet: 'לא הוגדרו מסננים', noLabel: '<ללא {{label}}>', @@ -347,6 +351,7 @@ export const heTranslations: DefaultTranslationsObject = { value: 'ערך', viewReadOnly: 'הצג קריאה בלבד', welcome: 'ברוך הבא', + yes: 'כן', }, localization: { cannotCopySameLocale: 'לא ניתן להעתיק לאותו מקום', @@ -380,6 +385,7 @@ export const heTranslations: DefaultTranslationsObject = { bulkUpload: 'העלאה בתפוצה רחבה', crop: 'חתוך', cropToolDescription: 'גרור את הפינות של האזור שנבחר, צייר אזור חדש או התאם את הערכים למטה.', + download: 'הורדה', dragAndDrop: 'גרור ושחרר קובץ', dragAndDropHere: 'או גרור ושחרר קובץ לכאן', editImage: 'ערוך תמונה', diff --git a/packages/translations/src/languages/hr.ts b/packages/translations/src/languages/hr.ts index 0ee1aaf478..9f43491570 100644 --- a/packages/translations/src/languages/hr.ts +++ b/packages/translations/src/languages/hr.ts @@ -185,6 +185,7 @@ export const hrTranslations: DefaultTranslationsObject = { adminTheme: 'Administratorska tema', all: 'Svi', allCollections: 'Sve kolekcije', + allLocales: 'Sve lokalne postavke', and: 'i', anotherUser: 'Drugi korisnik', anotherUserTakenOver: 'Drugi korisnik je preuzeo uređivanje ovog dokumenta.', @@ -253,6 +254,7 @@ export const hrTranslations: DefaultTranslationsObject = { enterAValue: 'Unesi vrijednost', error: 'Greška', errors: 'Greške', + export: 'Izvoz', fallbackToDefaultLocale: 'Vraćanje na zadani jezik', false: 'Netočno', filter: 'Filter', @@ -260,6 +262,7 @@ export const hrTranslations: DefaultTranslationsObject = { filterWhere: 'Filter {{label}} gdje', globals: 'Globali', goBack: 'Vrati se', + import: 'Uvoz', isEditing: 'uređuje', language: 'Jezik', lastModified: 'Zadnja promjena', @@ -276,6 +279,7 @@ export const hrTranslations: DefaultTranslationsObject = { moveUp: 'Pomakni gore', newPassword: 'Nova lozinka', next: 'Sljedeće', + no: 'Ne', noDateSelected: 'Nije odabran datum', noFiltersSet: 'Nema postavljenih filtera', noLabel: '', @@ -354,6 +358,7 @@ export const hrTranslations: DefaultTranslationsObject = { value: 'Vrijednost', viewReadOnly: 'Pogledaj samo za čitanje', welcome: 'Dobrodošli', + yes: 'Da', }, localization: { cannotCopySameLocale: 'Ne može se kopirati na istu lokaciju', @@ -388,6 +393,7 @@ export const hrTranslations: DefaultTranslationsObject = { crop: 'Izreži', cropToolDescription: 'Povucite kutove odabranog područja, nacrtajte novo područje ili prilagodite vrijednosti ispod.', + download: 'Preuzmi', dragAndDrop: 'Povucite i ispustite datoteku', dragAndDropHere: 'ili povucite i ispustite datoteku ovdje', editImage: 'Uredi sliku', diff --git a/packages/translations/src/languages/hu.ts b/packages/translations/src/languages/hu.ts index 4ae82303f8..0139d023d9 100644 --- a/packages/translations/src/languages/hu.ts +++ b/packages/translations/src/languages/hu.ts @@ -186,6 +186,7 @@ export const huTranslations: DefaultTranslationsObject = { adminTheme: 'Admin téma', all: 'Mind', allCollections: 'Minden gyűjtemény', + allLocales: 'Minden helyszín', and: 'És', anotherUser: 'Egy másik felhasználó', anotherUserTakenOver: 'Egy másik felhasználó átvette ennek a dokumentumnak a szerkesztését.', @@ -255,6 +256,7 @@ export const huTranslations: DefaultTranslationsObject = { enterAValue: 'Adjon meg egy értéket', error: 'Hiba', errors: 'Hibák', + export: 'Export', fallbackToDefaultLocale: 'Visszatérés az alapértelmezett nyelvhez', false: 'Hamis', filter: 'Szűrő', @@ -262,6 +264,7 @@ export const huTranslations: DefaultTranslationsObject = { filterWhere: 'Szűrő {{label}} ahol', globals: 'Globálisok', goBack: 'Vissza', + import: 'Behozatal', isEditing: 'szerkeszt', language: 'Nyelv', lastModified: 'Utoljára módosítva', @@ -278,6 +281,7 @@ export const huTranslations: DefaultTranslationsObject = { moveUp: 'Mozgatás felfelé', newPassword: 'Új jelszó', next: 'Következő', + no: 'Nem', noDateSelected: 'Nincs kiválasztott dátum', noFiltersSet: 'Nincs beállítva szűrő', noLabel: '', @@ -357,6 +361,7 @@ export const huTranslations: DefaultTranslationsObject = { value: 'Érték', viewReadOnly: 'Csak olvasható nézet', welcome: 'Üdvözöljük', + yes: 'Igen', }, localization: { cannotCopySameLocale: 'Nem lehet ugyanarra a helyre másolni', @@ -391,6 +396,7 @@ export const huTranslations: DefaultTranslationsObject = { crop: 'Termés', cropToolDescription: 'Húzza a kijelölt terület sarkait, rajzoljon új területet, vagy igazítsa a lentebb található értékeket.', + download: 'Letöltés', dragAndDrop: 'Húzzon ide egy fájlt', dragAndDropHere: 'vagy húzzon ide egy fájlt', editImage: 'Kép szerkesztése', diff --git a/packages/translations/src/languages/hy.ts b/packages/translations/src/languages/hy.ts index 977190f7ea..c9c2b87826 100644 --- a/packages/translations/src/languages/hy.ts +++ b/packages/translations/src/languages/hy.ts @@ -27,11 +27,9 @@ export const hyTranslations: DefaultTranslationsObject = { forgotPassword: 'Մոռացե՞լ եք գաղտնաբառը', forgotPasswordEmailInstructions: 'Խնդրում ենք մուտքագրել Ձեր էլ. փոստը։ Դուք կստանաք էլ. նամակ՝ գաղտնաբառը վերականգնելու հրահանգներով։', + forgotPasswordQuestion: 'Մոռացե՞լ եք գաղտնաբառը։', forgotPasswordUsernameInstructions: 'Խնդրում ենք ներքևում մուտքագրել Ձեր օգտանունը։ Գաղտնաբառը վերականգնելու հրահանգները կուղարկվեն Ձեր օգտանվան հետ կապված էլ. փոստի հասցեին։', - usernameNotValid: 'Տրամադրված օգտանունը վավեր չէ', - - forgotPasswordQuestion: 'Մոռացե՞լ եք գաղտնաբառը։', generate: 'Ստեղծել', generateNewAPIKey: 'Ստեղծել նոր API բանալի', generatingNewAPIKeyWillInvalidate: @@ -68,6 +66,7 @@ export const hyTranslations: DefaultTranslationsObject = { tokenRefreshSuccessful: 'Թոքենի թարմացումը հաջողվել է։', unableToVerify: 'Հնարավոր չէ հաստատել', username: 'Օգտանուն', + usernameNotValid: 'Տրամադրված օգտանունը վավեր չէ', verified: 'Ստուգված', verifiedSuccessfully: 'Հաջողությամբ ստուգված', verify: 'Ստուգել', @@ -185,6 +184,7 @@ export const hyTranslations: DefaultTranslationsObject = { adminTheme: 'Կառավարման թեմա', all: 'Բոլորը', allCollections: 'Բոլոր հավաքածուները', + allLocales: 'Բոլոր տեղայինությունները', and: 'Եվ', anotherUser: 'Այլ օգտատեր', anotherUserTakenOver: 'Այլ օգտատեր ստանձել է այս փաստաթղթի խմբագրումը։', @@ -254,6 +254,7 @@ export const hyTranslations: DefaultTranslationsObject = { enterAValue: 'Մուտքագրեք արժեք', error: 'Սխալ', errors: 'Սխալներ', + export: 'Արտարժույթ', fallbackToDefaultLocale: 'Վերադառնալ լռելյայն լոկալին', false: 'Կեղծ', filter: 'Ֆիլտր', @@ -261,6 +262,7 @@ export const hyTranslations: DefaultTranslationsObject = { filterWhere: 'Ֆիլտրել {{label}}-ը, որտեղ', globals: 'Համընդհանուրներ', goBack: 'Հետ գնալ', + import: 'Ներմուծում', isEditing: 'խմբագրում է', language: 'Լեզու', lastModified: 'Վերջին փոփոխություն', @@ -277,6 +279,7 @@ export const hyTranslations: DefaultTranslationsObject = { moveUp: 'Տեղափոխել վերև', newPassword: 'Նոր գաղտնաբառ', next: 'Հաջորդ', + no: 'Ոչ', noDateSelected: 'Չկա ընտրված ամսաթիվ', noFiltersSet: 'Ֆիլտրեր սահմանված չեն', noLabel: '<Չկա {{label}}>', @@ -358,6 +361,7 @@ export const hyTranslations: DefaultTranslationsObject = { value: 'Արժեք', viewReadOnly: '«Միայն կարդալու» ռեժիմ', welcome: 'Բարի գալուստ', + yes: 'Այո', }, localization: { cannotCopySameLocale: 'Հնարավոր չէ պատճենել նույն լոկալին', @@ -392,6 +396,7 @@ export const hyTranslations: DefaultTranslationsObject = { crop: 'Կտրել', cropToolDescription: 'Քաշեք ընտրված տարածքի անկյունները, նշեք նոր տարածք կամ կարգավորեք ստորև նշված արժեքները։', + download: 'Ներբեռնել', dragAndDrop: 'Քաշեք և գցեք ֆայլը', dragAndDropHere: 'կամ քաշեք և գցեք ֆայլն այստեղ', editImage: 'Խմբագրել պատկերը', diff --git a/packages/translations/src/languages/it.ts b/packages/translations/src/languages/it.ts index 4191ce53ff..78f5f883cc 100644 --- a/packages/translations/src/languages/it.ts +++ b/packages/translations/src/languages/it.ts @@ -188,6 +188,7 @@ export const itTranslations: DefaultTranslationsObject = { adminTheme: 'Tema Admin', all: 'Tutto', allCollections: 'Tutte le collezioni', + allLocales: 'Tutte le località', and: 'E', anotherUser: 'Un altro utente', anotherUserTakenOver: @@ -256,6 +257,7 @@ export const itTranslations: DefaultTranslationsObject = { enterAValue: 'Inserisci un valore', error: 'Errore', errors: 'Errori', + export: 'Esportazione', fallbackToDefaultLocale: 'Fallback al locale predefinito', false: 'Falso', filter: 'Filtro', @@ -263,6 +265,7 @@ export const itTranslations: DefaultTranslationsObject = { filterWhere: 'Filtra {{label}} se', globals: 'Globali', goBack: 'Torna indietro', + import: 'Importare', isEditing: 'sta modificando', language: 'Lingua', lastModified: 'Ultima modifica', @@ -279,6 +282,7 @@ export const itTranslations: DefaultTranslationsObject = { moveUp: 'Sposta sopra', newPassword: 'Nuova Password', next: 'Successivo', + no: 'No', noDateSelected: 'Nessuna data selezionata', noFiltersSet: 'Nessun filtro impostato', noLabel: '', @@ -358,6 +362,7 @@ export const itTranslations: DefaultTranslationsObject = { value: 'Valore', viewReadOnly: 'Visualizza solo lettura', welcome: 'Benvenuto', + yes: 'Sì', }, localization: { cannotCopySameLocale: 'Non è possibile copiare nella stessa posizione', @@ -392,6 +397,7 @@ export const itTranslations: DefaultTranslationsObject = { crop: 'Raccolto', cropToolDescription: "Trascina gli angoli dell'area selezionata, disegna una nuova area o regola i valori qui sotto.", + download: 'Scarica', dragAndDrop: 'Trascina e rilascia un file', dragAndDropHere: 'oppure trascina e rilascia un file qui', editImage: 'Modifica immagine', diff --git a/packages/translations/src/languages/ja.ts b/packages/translations/src/languages/ja.ts index aa2dcb8866..85485807f1 100644 --- a/packages/translations/src/languages/ja.ts +++ b/packages/translations/src/languages/ja.ts @@ -185,6 +185,7 @@ export const jaTranslations: DefaultTranslationsObject = { adminTheme: '管理画面のテーマ', all: 'すべて', allCollections: 'すべてのコレクション', + allLocales: 'すべてのロケール', and: 'かつ', anotherUser: '別のユーザー', anotherUserTakenOver: '別のユーザーがこのドキュメントの編集を引き継ぎました。', @@ -253,6 +254,7 @@ export const jaTranslations: DefaultTranslationsObject = { enterAValue: '値を入力', error: 'エラー', errors: 'エラー', + export: '輸出', fallbackToDefaultLocale: 'デフォルトロケールへのフォールバック', false: '偽', filter: '絞り込み', @@ -260,6 +262,7 @@ export const jaTranslations: DefaultTranslationsObject = { filterWhere: '{{label}} の絞り込み', globals: 'グローバル', goBack: '戻る', + import: '輸入', isEditing: '編集中', language: '言語', lastModified: '最終更新', @@ -276,6 +279,7 @@ export const jaTranslations: DefaultTranslationsObject = { moveUp: '上へ移動', newPassword: '新しいパスワード', next: '次', + no: 'いいえ', noDateSelected: '日付が選択されていません', noFiltersSet: '絞り込みが未設定です。', noLabel: '', @@ -354,6 +358,7 @@ export const jaTranslations: DefaultTranslationsObject = { value: '値', viewReadOnly: '読み取り専用で表示', welcome: 'ようこそ', + yes: 'はい', }, localization: { cannotCopySameLocale: '同じロケールにはコピーできません', @@ -388,6 +393,7 @@ export const jaTranslations: DefaultTranslationsObject = { crop: 'クロップ', cropToolDescription: '選択したエリアのコーナーをドラッグしたり、新たなエリアを描画したり、下記の値を調整してください。', + download: 'ダウンロード', dragAndDrop: 'ファイルをドラッグ アンド ドロップする', dragAndDropHere: 'または、このエリアにファイルをドラッグ & ドロップ', editImage: '画像を編集する', diff --git a/packages/translations/src/languages/ko.ts b/packages/translations/src/languages/ko.ts index 6d13bbcc3a..c9f3fea0e8 100644 --- a/packages/translations/src/languages/ko.ts +++ b/packages/translations/src/languages/ko.ts @@ -184,6 +184,7 @@ export const koTranslations: DefaultTranslationsObject = { adminTheme: '관리자 테마', all: '모두', allCollections: '모든 컬렉션', + allLocales: '모든 지역 설정', and: '및', anotherUser: '다른 사용자', anotherUserTakenOver: '다른 사용자가 이 문서의 편집을 인수했습니다.', @@ -251,6 +252,7 @@ export const koTranslations: DefaultTranslationsObject = { enterAValue: '값을 입력하세요', error: '오류', errors: '오류', + export: '수출', fallbackToDefaultLocale: '기본 locale로 대체', false: '거짓', filter: '필터', @@ -258,6 +260,7 @@ export const koTranslations: DefaultTranslationsObject = { filterWhere: '{{label}} 필터링 조건', globals: '글로벌', goBack: '돌아가기', + import: '수입', isEditing: '편집 중', language: '언어', lastModified: '마지막 수정 일시', @@ -274,6 +277,7 @@ export const koTranslations: DefaultTranslationsObject = { moveUp: '위로 이동', newPassword: '새 비밀번호', next: '다음', + no: '아니요', noDateSelected: '선택된 날짜가 없습니다.', noFiltersSet: '설정된 필터 없음', noLabel: '<{{label}} 없음>', @@ -352,6 +356,7 @@ export const koTranslations: DefaultTranslationsObject = { value: '값', viewReadOnly: '읽기 전용으로 보기', welcome: '환영합니다', + yes: '네', }, localization: { cannotCopySameLocale: '동일한 로캘에 복사할 수 없습니다.', @@ -386,6 +391,7 @@ export const koTranslations: DefaultTranslationsObject = { crop: '자르기', cropToolDescription: '선택한 영역의 모퉁이를 드래그하거나 새로운 영역을 그리거나 아래의 값을 조정하세요.', + download: '다운로드', dragAndDrop: '파일을 끌어다 놓으세요', dragAndDropHere: '또는 여기로 파일을 끌어다 놓으세요', editImage: '이미지 수정', diff --git a/packages/translations/src/languages/lt.ts b/packages/translations/src/languages/lt.ts index 2afcd0dd5e..df590c71c4 100644 --- a/packages/translations/src/languages/lt.ts +++ b/packages/translations/src/languages/lt.ts @@ -186,6 +186,7 @@ export const ltTranslations: DefaultTranslationsObject = { adminTheme: 'Admin temos', all: 'Visi', allCollections: 'Visos kolekcijos', + allLocales: 'Visi lokalai', and: 'Ir', anotherUser: 'Kitas vartotojas', anotherUserTakenOver: 'Kitas naudotojas perėmė šio dokumento redagavimą.', @@ -255,6 +256,7 @@ export const ltTranslations: DefaultTranslationsObject = { enterAValue: 'Įveskite reikšmę', error: 'Klaida', errors: 'Klaidos', + export: 'Eksportas', fallbackToDefaultLocale: 'Grįžkite į numatytąją vietovę', false: 'Netiesa', filter: 'Filtruoti', @@ -262,6 +264,7 @@ export const ltTranslations: DefaultTranslationsObject = { filterWhere: 'Filtruoti {{label}}, kur', globals: 'Globalai', goBack: 'Grįžkite', + import: 'Importas', isEditing: 'redaguoja', language: 'Kalba', lastModified: 'Paskutinį kartą modifikuota', @@ -278,6 +281,7 @@ export const ltTranslations: DefaultTranslationsObject = { moveUp: 'Pakilti', newPassword: 'Naujas slaptažodis', next: 'Toliau', + no: 'Ne', noDateSelected: 'Pasirinktos datos nėra', noFiltersSet: 'Nenustatyti jokie filtrai', noLabel: '', @@ -356,6 +360,7 @@ export const ltTranslations: DefaultTranslationsObject = { value: 'Vertė', viewReadOnly: 'Peržiūrėti tik skaitymui', welcome: 'Sveiki', + yes: 'Taip', }, localization: { cannotCopySameLocale: 'Negalima kopijuoti į tą pačią vietovę', @@ -390,6 +395,7 @@ export const ltTranslations: DefaultTranslationsObject = { crop: 'Pasėlis', cropToolDescription: 'Temkite pasirinktos srities kampus, nubrėžkite naują sritį arba koreguokite žemiau esančias reikšmes.', + download: 'Atsisiųsti', dragAndDrop: 'Temkite ir numeskite failą', dragAndDropHere: 'arba nuvilkite failą čia', editImage: 'Redaguoti vaizdą', diff --git a/packages/translations/src/languages/lv.ts b/packages/translations/src/languages/lv.ts index 21e1b56ea1..300261510c 100644 --- a/packages/translations/src/languages/lv.ts +++ b/packages/translations/src/languages/lv.ts @@ -1,6 +1,6 @@ -import type { Language } from '../types.js' +import type { DefaultTranslationsObject, Language } from '../types.js' -export const lvTranslations = { +export const lvTranslations: DefaultTranslationsObject = { authentication: { account: 'Konts', accountOfCurrentUser: 'Pašreizējā lietotāja konts', @@ -27,11 +27,9 @@ export const lvTranslations = { forgotPassword: 'Aizmirsi paroli?', forgotPasswordEmailInstructions: 'Lūdzu, ievadiet savu e-pastu zemāk. Saņemsiet ziņojumu ar norādījumiem paroles atiestatīšanai.', + forgotPasswordQuestion: 'Aizmirsi paroli?', forgotPasswordUsernameInstructions: 'Lūdzu, ievadiet savu lietotājvārdu zemāk. Norādījumi paroles atiestatīšanai tiks nosūtīti uz e-pastu, kas saistīts ar jūsu lietotājvārdu.', - usernameNotValid: 'Norādītais lietotājvārds nav derīgs', - - forgotPasswordQuestion: 'Aizmirsi paroli?', generate: 'Ģenerēt', generateNewAPIKey: 'Ģenerēt jaunu API atslēgu', generatingNewAPIKeyWillInvalidate: @@ -68,6 +66,7 @@ export const lvTranslations = { tokenRefreshSuccessful: 'Tokens veiksmīgi atjaunots.', unableToVerify: 'Neizdevās verificēt', username: 'Lietotājvārds', + usernameNotValid: 'Norādītais lietotājvārds nav derīgs', verified: 'Verificēts', verifiedSuccessfully: 'Veiksmīgi verificēts', verify: 'Verificēt', @@ -185,6 +184,7 @@ export const lvTranslations = { adminTheme: 'Administratora tēma', all: 'Visi', allCollections: 'Visas kolekcijas', + allLocales: 'Visi lokalizācijas variants', and: 'Un', anotherUser: 'Cits lietotājs', anotherUserTakenOver: 'Cits lietotājs ir pārņēmis šī dokumenta rediģēšanu.', @@ -253,6 +253,7 @@ export const lvTranslations = { enterAValue: 'Ievadiet vērtību', error: 'Kļūda', errors: 'Kļūdas', + export: 'Eksports', fallbackToDefaultLocale: 'Izmantot noklusēto lokalizāciju', false: 'Nepatiesi', filter: 'Filtrs', @@ -260,6 +261,7 @@ export const lvTranslations = { filterWhere: 'Filtrēt {{label}} kur', globals: 'Globālie', goBack: 'Doties atpakaļ', + import: 'Imports', isEditing: 'redzē', language: 'Valoda', lastModified: 'Pēdējoreiz mainīts', @@ -276,6 +278,7 @@ export const lvTranslations = { moveUp: 'Pārvietot uz augšu', newPassword: 'Jauna parole', next: 'Nākamais', + no: 'Nē', noDateSelected: 'Datums nav izvēlēts', noFiltersSet: 'Nav uzstādīti filtri', noLabel: '