diff --git a/packages/db-mongodb/src/createGlobalVersion.ts b/packages/db-mongodb/src/createGlobalVersion.ts index c948881b55b..621c9185d8f 100644 --- a/packages/db-mongodb/src/createGlobalVersion.ts +++ b/packages/db-mongodb/src/createGlobalVersion.ts @@ -17,6 +17,7 @@ export const createGlobalVersion: CreateGlobalVersion = async function createGlo req, returning, snapshot, + unpublishedLocale, updatedAt, versionData, }, @@ -36,6 +37,7 @@ export const createGlobalVersion: CreateGlobalVersion = async function createGlo parent, publishedLocale, snapshot, + unpublishedLocale, updatedAt, version: versionData, } diff --git a/packages/db-mongodb/src/createVersion.ts b/packages/db-mongodb/src/createVersion.ts index a6a7b5c2c20..068a630e7d5 100644 --- a/packages/db-mongodb/src/createVersion.ts +++ b/packages/db-mongodb/src/createVersion.ts @@ -17,6 +17,7 @@ export const createVersion: CreateVersion = async function createVersion( req, returning, snapshot, + unpublishedLocale, updatedAt, versionData, }, @@ -40,6 +41,7 @@ export const createVersion: CreateVersion = async function createVersion( parent, publishedLocale, snapshot, + unpublishedLocale, updatedAt, version: versionData, } diff --git a/packages/drizzle/src/createGlobalVersion.ts b/packages/drizzle/src/createGlobalVersion.ts index 1ae54dfcf21..050b9633815 100644 --- a/packages/drizzle/src/createGlobalVersion.ts +++ b/packages/drizzle/src/createGlobalVersion.ts @@ -20,6 +20,7 @@ export async function createGlobalVersion( returning, select, snapshot, + unpublishedLocale, updatedAt, versionData, }: CreateGlobalVersionArgs, @@ -37,6 +38,7 @@ export async function createGlobalVersion( latest: true, publishedLocale, snapshot, + unpublishedLocale, updatedAt, version: versionData, }, diff --git a/packages/drizzle/src/createVersion.ts b/packages/drizzle/src/createVersion.ts index cb756463868..b555fa072ae 100644 --- a/packages/drizzle/src/createVersion.ts +++ b/packages/drizzle/src/createVersion.ts @@ -21,6 +21,7 @@ export async function createVersion( returning, select, snapshot, + unpublishedLocale, updatedAt, versionData, }: CreateVersionArgs, @@ -43,6 +44,7 @@ export async function createVersion( parent, publishedLocale, snapshot, + unpublishedLocale, updatedAt, version, } diff --git a/packages/next/src/views/Document/getVersions.ts b/packages/next/src/views/Document/getVersions.ts index d9690732711..be0a722000b 100644 --- a/packages/next/src/views/Document/getVersions.ts +++ b/packages/next/src/views/Document/getVersions.ts @@ -143,6 +143,11 @@ export const getVersions = async ({ equals: id, }, }, + { + snapshot: { + not_equals: true, + }, + }, ], }, extractAccessFromPermission(docPermissions.readVersions), @@ -170,6 +175,11 @@ export const getVersions = async ({ equals: id, }, }, + { + snapshot: { + not_equals: true, + }, + }, { 'version._status': { equals: 'draft', @@ -200,6 +210,11 @@ export const getVersions = async ({ equals: id, }, }, + { + snapshot: { + not_equals: true, + }, + }, ], }, extractAccessFromPermission(docPermissions.readVersions), @@ -236,6 +251,11 @@ export const getVersions = async ({ autosave: true, }, user, + where: { + snapshot: { + not_equals: true, + }, + }, }) if ( @@ -260,6 +280,11 @@ export const getVersions = async ({ equals: 'draft', }, }, + { + snapshot: { + not_equals: true, + }, + }, { updatedAt: { greater_than: publishedDoc.updatedAt, diff --git a/packages/next/src/views/Version/VersionPillLabel/VersionPillLabel.tsx b/packages/next/src/views/Version/VersionPillLabel/VersionPillLabel.tsx index 45a5cde220e..25effd5b438 100644 --- a/packages/next/src/views/Version/VersionPillLabel/VersionPillLabel.tsx +++ b/packages/next/src/views/Version/VersionPillLabel/VersionPillLabel.tsx @@ -28,6 +28,7 @@ export const VersionPillLabel: React.FC<{ [key: string]: unknown id: number | string publishedLocale?: string + unpublishedLocale?: string updatedAt?: string version: { [key: string]: unknown @@ -85,15 +86,14 @@ export const VersionPillLabel: React.FC<{ ? formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat }) : null - const localeCode = Array.isArray(doc.publishedLocale) - ? doc.publishedLocale[0] - : doc.publishedLocale + const getLocaleLabel = (input) => { + const code = Array.isArray(input) ? input[0] : input + const loc = localization && localization?.locales?.find((l) => l.code === code) + return loc?.label?.[i18n?.language] || loc?.label || null + } - const locale = - localization && localization?.locales - ? localization.locales.find((loc) => loc.code === localeCode) - : null - const localeLabel = locale ? locale?.label?.[i18n?.language] || locale?.label : null + const unpublishedLocaleLabel = getLocaleLabel(doc.unpublishedLocale) + const localeLabel = getLocaleLabel(doc.publishedLocale) return (
@@ -117,6 +117,11 @@ export const VersionPillLabel: React.FC<{ )} {localeLabel && {localeLabel}} + {unpublishedLocaleLabel && ( + + {unpublishedLocaleLabel} {t('version:unpublished')} + + )}
) } diff --git a/packages/next/src/views/Versions/cells/AutosaveCell/index.tsx b/packages/next/src/views/Versions/cells/AutosaveCell/index.tsx index ee18767109c..f1cf3fd05cc 100644 --- a/packages/next/src/views/Versions/cells/AutosaveCell/index.tsx +++ b/packages/next/src/views/Versions/cells/AutosaveCell/index.tsx @@ -20,6 +20,7 @@ type AutosaveCellProps = { autosave?: boolean id: number | string publishedLocale?: string + unpublishedLocale?: string version: { _status: string } diff --git a/packages/payload/src/collections/endpoints/updateByID.ts b/packages/payload/src/collections/endpoints/updateByID.ts index 78d2f74adae..f5d8553aebd 100644 --- a/packages/payload/src/collections/endpoints/updateByID.ts +++ b/packages/payload/src/collections/endpoints/updateByID.ts @@ -18,6 +18,7 @@ export const updateByIDHandler: PayloadHandler = async (req) => { const overrideLock = searchParams.get('overrideLock') const trash = searchParams.get('trash') === 'true' const publishSpecificLocale = req.query.publishSpecificLocale as string | undefined + const unpublishSpecificLocale = req.query.unpublishSpecificLocale as string | undefined const doc = await updateByIDOperation({ id, @@ -32,6 +33,7 @@ export const updateByIDHandler: PayloadHandler = async (req) => { req, select: sanitizeSelectParam(req.query.select), trash, + unpublishSpecificLocale, }) let message = req.t('general:updatedSuccessfully') diff --git a/packages/payload/src/collections/operations/local/update.ts b/packages/payload/src/collections/operations/local/update.ts index 74947151524..ed7d5091c62 100644 --- a/packages/payload/src/collections/operations/local/update.ts +++ b/packages/payload/src/collections/operations/local/update.ts @@ -120,6 +120,10 @@ export type BaseOptions = { */ sort?: Sort trash?: boolean + unpublishSpecificLocale?: string where: Where } @@ -114,6 +115,7 @@ export const updateOperation = async < showHiddenFields, sort: incomingSort, trash = false, + unpublishSpecificLocale, where, } = args @@ -261,6 +263,7 @@ export const updateOperation = async < req, select: select!, showHiddenFields: showHiddenFields!, + unpublishSpecificLocale, }) return updatedDoc diff --git a/packages/payload/src/collections/operations/updateByID.ts b/packages/payload/src/collections/operations/updateByID.ts index 5b5dfb0478c..890188656d1 100644 --- a/packages/payload/src/collections/operations/updateByID.ts +++ b/packages/payload/src/collections/operations/updateByID.ts @@ -49,6 +49,7 @@ export type Arguments = { select?: SelectType showHiddenFields?: boolean trash?: boolean + unpublishSpecificLocale?: string } export const updateByIDOperation = async < @@ -83,6 +84,10 @@ export const updateByIDOperation = async < args.req.locale = args.publishSpecificLocale } + if (args.unpublishSpecificLocale) { + args.req.locale = args.unpublishSpecificLocale + } + const { id, autosave = false, @@ -105,6 +110,7 @@ export const updateByIDOperation = async < select: incomingSelect, showHiddenFields, trash = false, + unpublishSpecificLocale, } = args if (!id) { @@ -216,6 +222,7 @@ export const updateByIDOperation = async < req, select: select!, showHiddenFields: showHiddenFields!, + unpublishSpecificLocale, }) await unlinkTempFiles({ diff --git a/packages/payload/src/collections/operations/utilities/update.ts b/packages/payload/src/collections/operations/utilities/update.ts index b5bffebe4fd..d896967f753 100644 --- a/packages/payload/src/collections/operations/utilities/update.ts +++ b/packages/payload/src/collections/operations/utilities/update.ts @@ -55,6 +55,7 @@ export type SharedUpdateDocumentArgs = { req: PayloadRequest select: SelectType showHiddenFields: boolean + unpublishSpecificLocale?: string } /** @@ -81,7 +82,7 @@ export const updateDocument = async < config, data, depth, - docWithLocales, + docWithLocales: originalDocWithLocales, draftArg, fallbackLocale, filesToUpload, @@ -94,6 +95,7 @@ export const updateDocument = async < req, select, showHiddenFields, + unpublishSpecificLocale, }: SharedUpdateDocumentArgs): Promise> => { const password = data?.password const shouldSaveDraft = @@ -119,11 +121,16 @@ export const updateDocument = async < req, }) + // ///////////////////////////////////// + // AfterRead runs on original doc + // to transform doc into 1 locale + // ///////////////////////////////////// + const originalDoc = await afterRead({ collection: collectionConfig, context: req.context, depth: 0, - doc: deepCopyObjectSimple(docWithLocales), + doc: deepCopyObjectSimple(originalDocWithLocales), draft: draftArg, fallbackLocale: id ? null : fallbackLocale, global: null, @@ -151,7 +158,7 @@ export const updateDocument = async < await deleteAssociatedFiles({ collectionConfig, config, - doc: docWithLocales, + doc: originalDocWithLocales, files: filesToUpload, overrideDelete: false, req, @@ -221,17 +228,12 @@ export const updateDocument = async < // beforeChange - Fields // ///////////////////////////////////// - let publishedDocWithLocales = docWithLocales - let versionSnapshotResult - - const beforeChangeArgs: Args> = { + const beforeChangeArgs: Omit>, 'docWithLocales'> = { id, collection: collectionConfig, context: req.context, data: { ...data, id }, doc: originalDoc, - // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve - docWithLocales: undefined, global: null, operation: 'update', overrideAccess, @@ -244,10 +246,18 @@ export const updateDocument = async < Boolean(data?.deletedAt), } - if (publishSpecificLocale) { - versionSnapshotResult = await beforeChange({ + let snapshotDocWithLocales + let docWithLocales = originalDocWithLocales + + /** + * Locale-Specific Snapshot Logic + * + * Both `publishSpecificLocale` and `unpublishSpecificLocale` require snapshots + */ + if (collectionConfig.versions && (publishSpecificLocale || unpublishSpecificLocale)) { + snapshotDocWithLocales = await beforeChange({ ...beforeChangeArgs, - docWithLocales, + docWithLocales: originalDocWithLocales, }) const lastPublished = await getLatestCollectionVersion({ @@ -264,14 +274,22 @@ export const updateDocument = async < req, }) - publishedDocWithLocales = lastPublished ? lastPublished : {} + docWithLocales = lastPublished ? lastPublished : {} } let result = await beforeChange({ ...beforeChangeArgs, - docWithLocales: publishedDocWithLocales, + data: unpublishSpecificLocale ? { id } : { ...data, id }, + docWithLocales, + skipValidation: unpublishSpecificLocale ? true : beforeChangeArgs.skipValidation, }) + if (unpublishSpecificLocale && snapshotDocWithLocales) { + if (Object.keys(result).length <= 1 && result.id) { + result = snapshotDocWithLocales + } + } + // ///////////////////////////////////// // Handle potential password update // ///////////////////////////////////// @@ -321,7 +339,8 @@ export const updateDocument = async < payload, publishSpecificLocale, req, - snapshot: versionSnapshotResult, + snapshot: snapshotDocWithLocales, + unpublishSpecificLocale, }) } diff --git a/packages/payload/src/database/types.ts b/packages/payload/src/database/types.ts index 1451025145f..a7ce5bda4bf 100644 --- a/packages/payload/src/database/types.ts +++ b/packages/payload/src/database/types.ts @@ -402,6 +402,7 @@ export type CreateVersionArgs = { returning?: boolean select?: SelectType snapshot?: true + unpublishedLocale?: string updatedAt: string versionData: T } @@ -426,6 +427,7 @@ export type CreateGlobalVersionArgs = { returning?: boolean select?: SelectType snapshot?: true + unpublishedLocale?: string updatedAt: string versionData: T } diff --git a/packages/payload/src/fields/hooks/beforeChange/index.ts b/packages/payload/src/fields/hooks/beforeChange/index.ts index c412b4311dd..9d0e2eb98e4 100644 --- a/packages/payload/src/fields/hooks/beforeChange/index.ts +++ b/packages/payload/src/fields/hooks/beforeChange/index.ts @@ -28,7 +28,21 @@ export type Args = { * - Execute field hooks * - Validate data * - Transform data for storage - * - Unflatten locales. The input `data` is the normal document for one locale. The output result will become the document with locales. + * - Unflatten locales + * + * The input `data` is the normal document for one locale. + * + * The returned data will be localized. + * + * E.g. a localized `title` field returned as: + * ```ts + * { + * title: { + * en: 'new title from data', + * fr: 'previous title from docWithLocales', + * } + * } + * ``` */ export const beforeChange = async ({ diff --git a/packages/payload/src/globals/endpoints/update.ts b/packages/payload/src/globals/endpoints/update.ts index 79f4e9d4f1c..1e558dc82a3 100644 --- a/packages/payload/src/globals/endpoints/update.ts +++ b/packages/payload/src/globals/endpoints/update.ts @@ -16,6 +16,7 @@ export const updateHandler: PayloadHandler = async (req) => { const draft = searchParams.get('draft') === 'true' const autosave = searchParams.get('autosave') === 'true' const publishSpecificLocale = req.query.publishSpecificLocale as string | undefined + const unpublishSpecificLocale = req.query.unpublishSpecificLocale as string | undefined const result = await updateOperation({ slug: globalConfig.slug, @@ -28,6 +29,7 @@ export const updateHandler: PayloadHandler = async (req) => { publishSpecificLocale, req, select: sanitizeSelectParam(req.query.select), + unpublishSpecificLocale, }) let message = req.t('general:updatedSuccessfully') diff --git a/packages/payload/src/globals/operations/local/update.ts b/packages/payload/src/globals/operations/local/update.ts index b5e0bc3fc3d..5487f37b0be 100644 --- a/packages/payload/src/globals/operations/local/update.ts +++ b/packages/payload/src/globals/operations/local/update.ts @@ -87,6 +87,10 @@ export type Options = { * the Global slug to operate against. */ slug: TSlug + /** + * Unpublish the document / documents for a specific locale. + */ + unpublishSpecificLocale?: TypedLocale /** * If you set `overrideAccess` to `false`, you can pass a user to use against the access control checks. */ @@ -111,6 +115,7 @@ export async function updateGlobalLocal< publishSpecificLocale, select, showHiddenFields, + unpublishSpecificLocale, } = options const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug) @@ -132,5 +137,6 @@ export async function updateGlobalLocal< req: await createLocalReq(options as CreateLocalReqOptions, payload), select, showHiddenFields, + unpublishSpecificLocale: unpublishSpecificLocale!, }) } diff --git a/packages/payload/src/globals/operations/update.ts b/packages/payload/src/globals/operations/update.ts index 7b209efa6ae..5f9e47c0874 100644 --- a/packages/payload/src/globals/operations/update.ts +++ b/packages/payload/src/globals/operations/update.ts @@ -45,6 +45,7 @@ type Args = { select?: SelectType showHiddenFields?: boolean slug: string + unpublishSpecificLocale?: string } export const updateOperation = async < @@ -57,6 +58,10 @@ export const updateOperation = async < args.req.locale = args.publishSpecificLocale } + if (args.unpublishSpecificLocale) { + args.req.locale = args.unpublishSpecificLocale + } + const { slug, autosave, @@ -72,6 +77,7 @@ export const updateOperation = async < req, select: incomingSelect, showHiddenFields, + unpublishSpecificLocale, } = args try { @@ -218,8 +224,6 @@ export const updateOperation = async < // ///////////////////////////////////// // beforeChange - Fields // ///////////////////////////////////// - let publishedDocWithLocales = globalJSON - let versionSnapshotResult const beforeChangeArgs = { collection: null, @@ -234,8 +238,21 @@ export const updateOperation = async < shouldSaveDraft && globalConfig.versions.drafts && !globalConfig.versions.drafts.validate, } - if (publishSpecificLocale) { - const latestVersion = await getLatestGlobalVersion({ + let snapshotDocWithLocales + let docWithLocales = globalJSON + + /** + * Locale-Specific Snapshot Logic + * + * Both `publishSpecificLocale` and `unpublishSpecificLocale` require snapshots + */ + if (globalConfig.versions && (publishSpecificLocale || unpublishSpecificLocale)) { + snapshotDocWithLocales = await beforeChange({ + ...beforeChangeArgs, + docWithLocales: globalJSON, + }) + + const lastPublished = await getLatestGlobalVersion({ slug, config: globalConfig, payload, @@ -244,19 +261,22 @@ export const updateOperation = async < where: query, }) - publishedDocWithLocales = latestVersion?.global || {} - - versionSnapshotResult = await beforeChange({ - ...beforeChangeArgs, - docWithLocales: globalJSON, - }) + docWithLocales = lastPublished ? lastPublished : {} } let result = await beforeChange({ ...beforeChangeArgs, - docWithLocales: publishedDocWithLocales, + data: unpublishSpecificLocale ? {} : data, + docWithLocales, + skipValidation: unpublishSpecificLocale ? true : beforeChangeArgs.skipValidation, }) + if (unpublishSpecificLocale && snapshotDocWithLocales) { + if (Object.keys(result).length === 0) { + result = snapshotDocWithLocales + } + } + // ///////////////////////////////////// // Update // ///////////////////////////////////// @@ -307,7 +327,8 @@ export const updateOperation = async < publishSpecificLocale, req, select, - snapshot: versionSnapshotResult, + snapshot: snapshotDocWithLocales, + unpublishSpecificLocale, }) result = { diff --git a/packages/payload/src/versions/buildCollectionFields.ts b/packages/payload/src/versions/buildCollectionFields.ts index 0896591896f..f1dbab11a59 100644 --- a/packages/payload/src/versions/buildCollectionFields.ts +++ b/packages/payload/src/versions/buildCollectionFields.ts @@ -62,6 +62,23 @@ export const buildVersionCollectionFields = ( return locale.code }), }) + + fields.push({ + name: 'unpublishedLocale', + type: 'select', + admin: { + disableBulkEdit: true, + disabled: true, + }, + index: true, + options: config.localization.locales.map((locale) => { + if (typeof locale === 'string') { + return locale + } + + return locale.code + }), + }) } fields.push({ diff --git a/packages/payload/src/versions/buildGlobalFields.ts b/packages/payload/src/versions/buildGlobalFields.ts index 06c1a067cd5..3cae17092d6 100644 --- a/packages/payload/src/versions/buildGlobalFields.ts +++ b/packages/payload/src/versions/buildGlobalFields.ts @@ -56,6 +56,23 @@ export const buildVersionGlobalFields = ( return locale.code }), }) + + fields.push({ + name: 'unpublishedLocale', + type: 'select', + admin: { + disableBulkEdit: true, + disabled: true, + }, + index: true, + options: config.localization.locales.map((locale) => { + if (typeof locale === 'string') { + return locale + } + + return locale.code + }), + }) } fields.push({ diff --git a/packages/payload/src/versions/getLatestCollectionVersion.ts b/packages/payload/src/versions/getLatestCollectionVersion.ts index cc23997dab6..811f2a6c7a3 100644 --- a/packages/payload/src/versions/getLatestCollectionVersion.ts +++ b/packages/payload/src/versions/getLatestCollectionVersion.ts @@ -25,10 +25,6 @@ export const getLatestCollectionVersion = async ({ }: Args): Promise => { let latestVersion!: TypeWithVersion - const whereQuery = published - ? { and: [{ parent: { equals: id } }, { 'version._status': { equals: 'published' } }] } - : { and: [{ parent: { equals: id } }, { latest: { equals: true } }] } - if (config.versions?.drafts) { const { docs } = await payload.db.findVersions({ collection: config.slug, @@ -36,7 +32,12 @@ export const getLatestCollectionVersion = async ({ pagination: false, req, sort: '-updatedAt', - where: combineQueries(appendVersionToQueryKey(query.where), whereQuery as unknown as Where), + where: combineQueries( + appendVersionToQueryKey(query.where), + published + ? { and: [{ parent: { equals: id } }, { 'version._status': { equals: 'published' } }] } + : { and: [{ parent: { equals: id } }, { latest: { equals: true } }] }, + ), }) latestVersion = docs[0]! } diff --git a/packages/payload/src/versions/saveVersion.ts b/packages/payload/src/versions/saveVersion.ts index 24b6feef3e9..1727c2e73cc 100644 --- a/packages/payload/src/versions/saveVersion.ts +++ b/packages/payload/src/versions/saveVersion.ts @@ -21,14 +21,19 @@ type Args = { publishSpecificLocale?: string req?: PayloadRequest select?: SelectType + /** + * If present, this is the document state before the update operation was applied. + * The data should be in localized format for localized fields. + */ snapshot?: any + unpublishSpecificLocale?: string } export const saveVersion = async ({ id, autosave, collection, - docWithLocales: doc, + docWithLocales, draft, global, operation, @@ -36,12 +41,13 @@ export const saveVersion = async ({ publishSpecificLocale, req, select, - snapshot, + snapshot: snapshotDocWithLocales, + unpublishSpecificLocale, }: Args): Promise => { let result: TypeWithID | undefined let createNewVersion = true const now = new Date().toISOString() - const versionData = deepCopyObjectSimple(doc) + const versionData = deepCopyObjectSimple(docWithLocales) if (draft) { versionData._status = 'draft' } @@ -134,6 +140,7 @@ export const saveVersion = async ({ publishedLocale: publishSpecificLocale || undefined, req, select: getQueryDraftsSelect({ select }), + unpublishedLocale: unpublishSpecificLocale || undefined, updatedAt: now, versionData, } @@ -148,8 +155,11 @@ export const saveVersion = async ({ result = await payload.db.createGlobalVersion(createVersionArgs as CreateGlobalVersionArgs) } - if (publishSpecificLocale && snapshot) { - const snapshotData = deepCopyObjectSimple(snapshot) + // ///////////////////////////////////// + // Locale-Specific Snapshot Logic + // ///////////////////////////////////// + if (snapshotDocWithLocales) { + const snapshotData = deepCopyObjectSimple(snapshotDocWithLocales) if (snapshotData._id) { delete snapshotData._id } diff --git a/packages/payload/src/versions/types.ts b/packages/payload/src/versions/types.ts index efbc4e3c954..d0363c0cbcc 100644 --- a/packages/payload/src/versions/types.ts +++ b/packages/payload/src/versions/types.ts @@ -125,6 +125,7 @@ export type TypeWithVersion = { parent: number | string publishedLocale?: string snapshot?: boolean + unpublishedLocale?: string updatedAt: string version: T } diff --git a/packages/translations/src/clientKeys.ts b/packages/translations/src/clientKeys.ts index 66ac0954fd9..324d865f86d 100644 --- a/packages/translations/src/clientKeys.ts +++ b/packages/translations/src/clientKeys.ts @@ -450,6 +450,7 @@ export const clientTranslationKeys = createClientTranslationKeys([ 'version:aboutToRestoreGlobal', 'version:aboutToRevertToPublished', 'version:aboutToUnpublish', + 'version:aboutToUnpublishIn', 'version:aboutToUnpublishSelection', 'version:autosave', 'version:autosavedSuccessfully', @@ -492,6 +493,7 @@ export const clientTranslationKeys = createClientTranslationKeys([ 'version:restoreThisVersion', 'version:restoring', 'version:reverting', + 'version:revertUnsuccessful', 'version:revertToPublished', 'version:saveDraft', 'version:scheduledSuccessfully', @@ -503,7 +505,10 @@ export const clientTranslationKeys = createClientTranslationKeys([ 'version:status', 'version:type', 'version:unpublish', + 'version:unpublished', + 'version:unpublishIn', 'version:unpublishing', + 'version:unpublishedSuccessfully', 'version:versionID', 'version:version', 'version:versions', diff --git a/packages/translations/src/languages/ar.ts b/packages/translations/src/languages/ar.ts index 3836edb8f1e..cefccacbaa5 100644 --- a/packages/translations/src/languages/ar.ts +++ b/packages/translations/src/languages/ar.ts @@ -528,6 +528,7 @@ export const arTranslations: DefaultTranslationsObject = { 'أنت على وشك استرجاع الاعداد العامّ {{label}} إلى الحالة التي كان عليها في {{versionDate}}.', aboutToRevertToPublished: 'أنت على وشك إعادة هذا المستند إلى حالته المنشورة. هل أنت متأكّد؟', aboutToUnpublish: 'أنت على وشك إلغاء نشر هذا المستند. هل أنت متأكّد؟', + aboutToUnpublishIn: 'أنت على وشك إلغاء نشر هذا المستند في {{locale}}. هل أنت متأكد؟', aboutToUnpublishSelection: 'أنت على وشك إلغاء نشر كلّ {{label}} في التّحديد. هل أنت متأكّد؟', autosave: 'حفظ تلقائي', autosavedSuccessfully: 'تمّ الحفظ التّلقائي بنجاح.', @@ -573,6 +574,7 @@ export const arTranslations: DefaultTranslationsObject = { restoring: 'تتمّ الاستعادة...', reverting: 'يتمّ الاسترجاع...', revertToPublished: 'الرّجوع للنسخة المنشورة', + revertUnsuccessful: 'العودة غير ناجحة. لم يتم العثور على نسخة منشورة سابقة.', saveDraft: 'حفظ المسودّة', scheduledSuccessfully: 'تم الجدولة بنجاح.', schedulePublish: 'جدول النشر', @@ -583,6 +585,9 @@ export const arTranslations: DefaultTranslationsObject = { specificVersion: 'الإصدار المحدد', status: 'الحالة', unpublish: 'الغاء النّشر', + unpublished: 'غير منشور', + unpublishedSuccessfully: 'تم إلغاء النشر بنجاح.', + unpublishIn: 'إلغاء النشر في {{locale}}', unpublishing: 'يتمّ الغاء النّشر...', version: 'النّسخة', versionAgo: 'منذ {{distance}}', diff --git a/packages/translations/src/languages/az.ts b/packages/translations/src/languages/az.ts index c1136be3bc9..7272ad9e31d 100644 --- a/packages/translations/src/languages/az.ts +++ b/packages/translations/src/languages/az.ts @@ -545,6 +545,8 @@ export const azTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Bu sənədin dəyişikliklərini dərc edilmiş vəziyyətinə qaytarmağa hazırsınız. Əminsiniz?', aboutToUnpublish: 'Bu sənədi dərcdən çıxartmağa hazırsınız. Əminsiniz?', + aboutToUnpublishIn: + 'Siz bu sənədi {{locale}} dildə nəşr etməyi dayandırmaq ətrafında deyilsiniz. Eminsinizmi?', aboutToUnpublishSelection: 'Seçimdə olan bütün {{label}}-i dərcdən çıxartmağa hazırsınız. Əminsiniz?', autosave: 'Avtomatik yadda saxlama', @@ -591,6 +593,7 @@ export const azTranslations: DefaultTranslationsObject = { restoring: 'Bərpa olunur...', reverting: 'Qayıdılır...', revertToPublished: 'Dərc edilmişə qayıt', + revertUnsuccessful: 'Əvvəlki dərc olunmuş versiya tapılmadı. Geri dönmə uğursuz oldu.', saveDraft: 'Qaralamayı yadda saxla', scheduledSuccessfully: 'Uğurla cədvələ qoyuldu.', schedulePublish: 'Nəşr Cədvəli', @@ -601,6 +604,9 @@ export const azTranslations: DefaultTranslationsObject = { specificVersion: 'Xüsusi Versiya', status: 'Status', unpublish: 'Dərcdən çıxart', + unpublished: 'Nəşr olunmamış', + unpublishedSuccessfully: 'Uğurla dərc olunmadı.', + unpublishIn: '{{locale}} dilində yayınlanmaması', unpublishing: 'Dərcdən çıxarılır...', version: 'Versiya', versionAgo: '{{distance}} əvvəl', diff --git a/packages/translations/src/languages/bg.ts b/packages/translations/src/languages/bg.ts index 009431d9a35..ffa43b18508 100644 --- a/packages/translations/src/languages/bg.ts +++ b/packages/translations/src/languages/bg.ts @@ -542,6 +542,8 @@ export const bgTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'На път си да възстановиш промените на този документ до публикуваното му състояние. Сигурен ли си?', aboutToUnpublish: 'На път си да скриеш този документ. Сигурен ли си?', + aboutToUnpublishIn: + 'Предстои да премахнете публикацията на този документ в {{locale}}. Сигурни ли сте?', aboutToUnpublishSelection: 'На път си да скриеш всички избрани {{label}}. Сигурен ли си?', autosave: 'Автоматично запазване', autosavedSuccessfully: 'Успешно автоматично запазване.', @@ -587,6 +589,7 @@ export const bgTranslations: DefaultTranslationsObject = { restoring: 'Възстановяване...', reverting: 'Връщане..', revertToPublished: 'Върни се до публикуваното', + revertUnsuccessful: 'Неуспешно възстановяване. Не е открита предишна публикувана версия.', saveDraft: 'Запази чернова', scheduledSuccessfully: 'Успешно насрочено.', schedulePublish: 'Планирано публикуване', @@ -597,6 +600,9 @@ export const bgTranslations: DefaultTranslationsObject = { specificVersion: 'Специфична версия', status: 'Статус', unpublish: 'Скрий', + unpublished: 'Непубликуван', + unpublishedSuccessfully: 'Успешно нее публикувано.', + unpublishIn: 'Спиране на публикуване в {{locale}}', unpublishing: 'Скриване...', version: 'Версия', versionAgo: 'преди {{distance}}', diff --git a/packages/translations/src/languages/bnBd.ts b/packages/translations/src/languages/bnBd.ts index 9c17f5c460d..060bc2e5852 100644 --- a/packages/translations/src/languages/bnBd.ts +++ b/packages/translations/src/languages/bnBd.ts @@ -547,6 +547,7 @@ export const bnBdTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'আপনি এই ডকুমেন্টের পরিবর্তনগুলি তার প্রকাশিত অবস্থায় ফিরিয়ে আনতে চলেছেন। আপনি কি নিশ্চিত?', aboutToUnpublish: 'আপনি এই ডকুমেন্টটি আনপাবলিশ করতে চলেছেন। আপনি কি নিশ্চিত?', + aboutToUnpublishIn: 'আপনি এই দস্তাবেজটি {{locale}} এ অপ্রকাশিত করতে চলেছেন। আপনি কি নিশ্চিত?', aboutToUnpublishSelection: 'আপনি নির্বাচনে সমস্ত {{label}} আনপাবলিশ করতে চলেছেন। আপনি কি নিশ্চিত?', autosave: 'স্বয়ংক্রিয় সংরক্ষণ', @@ -594,6 +595,7 @@ export const bnBdTranslations: DefaultTranslationsObject = { restoring: 'পুনরুদ্ধার করা হচ্ছে...', reverting: 'পূর্বাবস্থায় ফেরানো হচ্ছে...', revertToPublished: 'প্রকাশিত সংস্করণে ফিরে যান', + revertUnsuccessful: 'পূর্ববর্তী প্রকাশিত সংস্করণ পাওয়া যায় নি। ধরার ওপর ধরা ব্যর্থ হয়েছে।', saveDraft: 'খসড়া সংরক্ষণ করুন', scheduledSuccessfully: 'সফলভাবে নির্ধারিত হয়েছে।', schedulePublish: 'প্রকাশের সময়সূচী নির্ধারণ করুন', @@ -604,6 +606,9 @@ export const bnBdTranslations: DefaultTranslationsObject = { specificVersion: 'নির্দিষ্ট সংস্করণ', status: 'স্থিতি', unpublish: 'প্রকাশ বাতিল করুন', + unpublished: 'অপ্রকাশিত', + unpublishedSuccessfully: 'সফলভাবে অপ্রকাশিত হয়েছে।', + unpublishIn: '{{locale}} এ অপ্রকাশিত করুন', unpublishing: 'প্রকাশ বাতিল করা হচ্ছে...', version: 'সংস্করণ', versionAgo: '{{distance}} পূর্বে', diff --git a/packages/translations/src/languages/bnIn.ts b/packages/translations/src/languages/bnIn.ts index 53932927e63..b8bc3184994 100644 --- a/packages/translations/src/languages/bnIn.ts +++ b/packages/translations/src/languages/bnIn.ts @@ -546,6 +546,7 @@ export const bnInTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'আপনি এই ডকুমেন্টের পরিবর্তনগুলি তার প্রকাশিত অবস্থায় ফিরিয়ে আনতে চলেছেন। আপনি কি নিশ্চিত?', aboutToUnpublish: 'আপনি এই ডকুমেন্টটি আনপাবলিশ করতে চলেছেন। আপনি কি নিশ্চিত?', + aboutToUnpublishIn: 'আপনি এই দস্তাবেজটি {{locale}} তে অপ্রকাশিত করতে চলেছেন। আপনি কি নিশ্চিত?', aboutToUnpublishSelection: 'আপনি নির্বাচনে সমস্ত {{label}} আনপাবলিশ করতে চলেছেন। আপনি কি নিশ্চিত?', autosave: 'স্বয়ংক্রিয় সংরক্ষণ', @@ -592,6 +593,8 @@ export const bnInTranslations: DefaultTranslationsObject = { restoring: 'পুনরুদ্ধার করা হচ্ছে...', reverting: 'পূর্বাবস্থায় ফেরানো হচ্ছে...', revertToPublished: 'প্রকাশিত সংস্করণে ফিরে যান', + revertUnsuccessful: + 'পূর্বের প্রকাশিত ভার্সন পাওয়া যায়নি, তাই পূর্ববর্তীর অবস্থায় ফেরা যাওয়া সম্ভব হয়নি।', saveDraft: 'খসড়া সংরক্ষণ করুন', scheduledSuccessfully: 'সফলভাবে নির্ধারিত হয়েছে।', schedulePublish: 'প্রকাশের সময়সূচী নির্ধারণ করুন', @@ -602,6 +605,9 @@ export const bnInTranslations: DefaultTranslationsObject = { specificVersion: 'নির্দিষ্ট সংস্করণ', status: 'স্থিতি', unpublish: 'প্রকাশ বাতিল করুন', + unpublished: 'অপ্রকাশিত', + unpublishedSuccessfully: 'সফলভাবে অপ্রকাশিত হয়েছে।', + unpublishIn: '{{locale}} এ অপ্রকাশিত করুন', unpublishing: 'প্রকাশ বাতিল করা হচ্ছে...', version: 'সংস্করণ', versionAgo: '{{distance}} পূর্বে', diff --git a/packages/translations/src/languages/ca.ts b/packages/translations/src/languages/ca.ts index 2a52ae5b8d4..f9b609c41f1 100644 --- a/packages/translations/src/languages/ca.ts +++ b/packages/translations/src/languages/ca.ts @@ -546,6 +546,7 @@ export const caTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: "Estàs a punt de revertir els canvis d'aquest document a l'estat publicat. Estàs segur?", aboutToUnpublish: 'Estàs a punt de despublicar aquest document. Estàs segur?', + aboutToUnpublishIn: "Estàs a punt de despublicar aquest document a {{locale}}. N'estic segur?", aboutToUnpublishSelection: 'Estàs a punt de despublicar tots els {{label}} de la selecció. Estàs segur?', autosave: 'Desa automàticament', @@ -592,6 +593,7 @@ export const caTranslations: DefaultTranslationsObject = { restoring: 'Restaurant...', reverting: 'Revertint...', revertToPublished: 'Revertir a publicat', + revertUnsuccessful: "Reversió sense èxit. No s'ha trobat cap versió anteriorment publicada.", saveDraft: 'Desar borrador', scheduledSuccessfully: 'Programat amb èxit.', schedulePublish: 'Programar publicació', @@ -602,6 +604,9 @@ export const caTranslations: DefaultTranslationsObject = { specificVersion: 'Versió Específica', status: 'Estat', unpublish: 'Despublicar', + unpublished: 'Inèdit', + unpublishedSuccessfully: 'No publicat amb èxit.', + unpublishIn: 'Despublicar a {{locale}}', unpublishing: 'Despublicant...', version: 'Versió', versionAgo: 'fa {{distance}}', diff --git a/packages/translations/src/languages/cs.ts b/packages/translations/src/languages/cs.ts index c9ad698b7b1..264984bf5ba 100644 --- a/packages/translations/src/languages/cs.ts +++ b/packages/translations/src/languages/cs.ts @@ -539,6 +539,8 @@ export const csTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Chystáte se vrátit změny tohoto dokumentu do jeho publikovaného stavu. Jste si jisti?', aboutToUnpublish: 'Chystáte se zrušit publikování tohoto dokumentu. Jste si jisti?', + aboutToUnpublishIn: + 'Chystáte se zrušit publikování tohoto dokumentu v {{locale}}. Jste si jisti?', aboutToUnpublishSelection: 'Chystáte se zrušit publikování všech {{label}} ve výběru. Jsi si jistá?', autosave: 'Automatické uložení', @@ -585,6 +587,7 @@ export const csTranslations: DefaultTranslationsObject = { restoring: 'Obnovování...', reverting: 'Vracení...', revertToPublished: 'Vrátit se k publikovanému', + revertUnsuccessful: 'Vrácení neúspěšné. Nebyla nalezena žádná dříve publikovaná verze.', saveDraft: 'Uložit koncept', scheduledSuccessfully: 'Úspěšně naplánováno.', schedulePublish: 'Naplánovat publikaci', @@ -595,6 +598,9 @@ export const csTranslations: DefaultTranslationsObject = { specificVersion: 'Specifická verze', status: 'Stav', unpublish: 'Zrušit publikování', + unpublished: 'Nezveřejněno', + unpublishedSuccessfully: 'Úspěšně nezveřejněno.', + unpublishIn: 'Zrušit publikování v {{locale}}', unpublishing: 'Zrušuji publikování...', version: 'Verze', versionAgo: 'před {{distance}}', diff --git a/packages/translations/src/languages/da.ts b/packages/translations/src/languages/da.ts index 0f501abe7d9..4e1baed5da5 100644 --- a/packages/translations/src/languages/da.ts +++ b/packages/translations/src/languages/da.ts @@ -541,6 +541,7 @@ export const daTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Du er ved at tilbagerulle dette dokuments ændringer til dets offentliggjorte tilstand. Er du sikker?', aboutToUnpublish: 'Du er ved at afpublicere dette dokument. Er du sikker?', + aboutToUnpublishIn: 'Du er ved at afpublicere dette dokument i {{locale}}. Er du sikker?', aboutToUnpublishSelection: 'Du er ved at afpublicere alt {{label}} i denne sektion. Er du sikker?', autosave: 'Autosave', @@ -587,6 +588,7 @@ export const daTranslations: DefaultTranslationsObject = { restoring: 'Gendanner...', reverting: 'Tilbageruller...', revertToPublished: 'Tilbagerul til offentliggjort', + revertUnsuccessful: 'Fortryd mislykkedes. Ingen tidligere offentliggjort version fundet.', saveDraft: 'Gem kladde', scheduledSuccessfully: 'Planlagt med succes.', schedulePublish: 'Planlæg offentliggørelse', @@ -597,6 +599,9 @@ export const daTranslations: DefaultTranslationsObject = { specificVersion: 'Specifik Version', status: 'Status', unpublish: 'Afpublicer', + unpublished: 'Upubliceret', + unpublishedSuccessfully: 'Offentliggjort succesfuldt.', + unpublishIn: 'Afbryd offentliggørelse i {{locale}}', unpublishing: 'Afpublicerer...', version: 'Version', versionAgo: '{{distance}} siden', diff --git a/packages/translations/src/languages/de.ts b/packages/translations/src/languages/de.ts index 7278f0484ae..5c553fbcf23 100644 --- a/packages/translations/src/languages/de.ts +++ b/packages/translations/src/languages/de.ts @@ -553,6 +553,8 @@ export const deTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Du bist dabei, dieses Dokument auf den Stand des ersten Veröffentlichungsdatums zurückzusetzen. Bist du sicher?', aboutToUnpublish: 'Du bist dabei dieses Dokument auf Entwurf zu setzen. Bist du dir sicher?', + aboutToUnpublishIn: + 'Sie sind dabei, dieses Dokument in {{locale}} zu entveröffentlichen. Sind Sie sicher?', aboutToUnpublishSelection: 'Du bist dabei, die Veröffentlichung aller {{label}} in der Auswahl aufzuheben. Bist du dir sicher?', autosave: 'Automatische Speicherung', @@ -599,6 +601,8 @@ export const deTranslations: DefaultTranslationsObject = { restoring: 'Wiederherstellen...', reverting: 'Zurücksetzen...', revertToPublished: 'Auf veröffentlichte Version zurücksetzen', + revertUnsuccessful: + 'Rückgängig machen fehlgeschlagen. Keine zuvor veröffentlichte Version gefunden.', saveDraft: 'Entwurf speichern', scheduledSuccessfully: 'Erfolgreich geplant.', schedulePublish: 'Veröffentlichungsplan', @@ -609,6 +613,9 @@ export const deTranslations: DefaultTranslationsObject = { specificVersion: 'Spezifische Version', status: 'Status', unpublish: 'Veröffentlichung aufheben', + unpublished: 'Unveröffentlicht', + unpublishedSuccessfully: 'Erfolgreich nicht veröffentlicht.', + unpublishIn: 'Nicht veröffentlichen in {{locale}}', unpublishing: 'Veröffentlichung aufheben...', version: 'Version', versionAgo: 'vor {{distance}}', diff --git a/packages/translations/src/languages/en.ts b/packages/translations/src/languages/en.ts index 57e0f169e62..0b7914e9f70 100644 --- a/packages/translations/src/languages/en.ts +++ b/packages/translations/src/languages/en.ts @@ -545,6 +545,7 @@ export const enTranslations = { aboutToRevertToPublished: "You are about to revert this document's changes to its published state. Are you sure?", aboutToUnpublish: 'You are about to unpublish this document. Are you sure?', + aboutToUnpublishIn: 'You are about to unpublish this document in {{locale}}. Are you sure?', aboutToUnpublishSelection: 'You are about to unpublish all {{label}} in the selection. Are you sure?', autosave: 'Autosave', @@ -591,6 +592,7 @@ export const enTranslations = { restoring: 'Restoring...', reverting: 'Reverting...', revertToPublished: 'Revert to published', + revertUnsuccessful: 'Revert unsuccessful. No previously published version found.', saveDraft: 'Save Draft', scheduledSuccessfully: 'Scheduled successfully.', schedulePublish: 'Schedule Publish', @@ -601,6 +603,9 @@ export const enTranslations = { specificVersion: 'Specific Version', status: 'Status', unpublish: 'Unpublish', + unpublished: 'Unpublished', + unpublishedSuccessfully: 'Unpublished successfully.', + unpublishIn: 'Unpublish in {{locale}}', unpublishing: 'Unpublishing...', version: 'Version', versionAgo: '{{distance}} ago', diff --git a/packages/translations/src/languages/es.ts b/packages/translations/src/languages/es.ts index b247074e981..f3a1273269f 100644 --- a/packages/translations/src/languages/es.ts +++ b/packages/translations/src/languages/es.ts @@ -548,6 +548,7 @@ export const esTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Estás a punto de revertir los cambios de este documento a su estado publicado. ¿Estás seguro?', aboutToUnpublish: 'Estás a punto de despublicar este documento. ¿Estás seguro?', + aboutToUnpublishIn: 'Está a punto de despublicar este documento en {{locale}}. ¿Está seguro?', aboutToUnpublishSelection: 'Estás a punto de despublicar todos los {{label}} seleccionados. ¿Estás seguro?', autosave: 'Autoguardado', @@ -594,6 +595,8 @@ export const esTranslations: DefaultTranslationsObject = { restoring: 'Restaurando...', reverting: 'Revirtiendo...', revertToPublished: 'Revertir a la versión publicada', + revertUnsuccessful: + 'Reversión no exitosa. No se encontró ninguna versión previamente publicada.', saveDraft: 'Guardar borrador', scheduledSuccessfully: 'Programado con éxito.', schedulePublish: 'Programar publicación', @@ -604,6 +607,9 @@ export const esTranslations: DefaultTranslationsObject = { specificVersion: 'Versión Específica', status: 'Estado', unpublish: 'Despublicar', + unpublished: 'No publicado', + unpublishedSuccessfully: 'No publicado con éxito.', + unpublishIn: 'Despublicar en {{locale}}', unpublishing: 'Despublicando...', version: 'Versión', versionAgo: 'hace {{distance}}', diff --git a/packages/translations/src/languages/et.ts b/packages/translations/src/languages/et.ts index c83f5f8df93..18e86b81ff5 100644 --- a/packages/translations/src/languages/et.ts +++ b/packages/translations/src/languages/et.ts @@ -535,6 +535,7 @@ export const etTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Olete taastamas selle dokumendi muudatusi avaldatud seisundisse. Olete kindel?', aboutToUnpublish: 'Olete tühistamas selle dokumendi avaldamist. Olete kindel?', + aboutToUnpublishIn: 'Te olete katki avaldamas seda dokumenti {{locale}}. Olete kindel?', aboutToUnpublishSelection: 'Olete tühistamas kõigi valitud {{label}} avaldamist. Olete kindel?', autosave: 'Automaatne salvestamine', autosavedSuccessfully: 'Automaatselt salvestatud.', @@ -580,6 +581,7 @@ export const etTranslations: DefaultTranslationsObject = { restoring: 'Taastamine...', reverting: 'Taastamine...', revertToPublished: 'Taasta avaldatud seisund', + revertUnsuccessful: 'Tühistamine ebaõnnestus. Varasemaid avaldatud versioone ei leitud.', saveDraft: 'Salvesta mustand', scheduledSuccessfully: 'Planeeritud edukalt.', schedulePublish: 'Planeeri avaldamine', @@ -590,6 +592,9 @@ export const etTranslations: DefaultTranslationsObject = { specificVersion: 'Spetsiifiline versioon', status: 'Olek', unpublish: 'Tühista avaldamine', + unpublished: 'Avaldamata', + unpublishedSuccessfully: 'Edukalt avaldamata.', + unpublishIn: 'Tühista avaldamine {{locale}}', unpublishing: 'Avaldamise tühistamine...', version: 'Versioon', versionAgo: '{{distance}} tagasi', diff --git a/packages/translations/src/languages/fa.ts b/packages/translations/src/languages/fa.ts index 824611e1566..f38212b9a0e 100644 --- a/packages/translations/src/languages/fa.ts +++ b/packages/translations/src/languages/fa.ts @@ -37,8 +37,7 @@ export const faTranslations: DefaultTranslationsObject = { lockUntil: 'قفل تا تاریخ', logBackIn: 'دوباره وارد شوید', loggedIn: 'برای ورود با یک حساب دیگر، ابتدا باید <0>خارج شوید.', - loggedInChangePassword: - 'برای تغییر رمز عبور، به صفحه <0>حساب کاربری خود مراجعه کنید.', + loggedInChangePassword: 'برای تغییر رمز عبور، به صفحه <0>حساب کاربری خود مراجعه کنید.', loggedOutInactivity: 'به دلیل عدم فعالیت، از حساب خود خارج شدید.', loggedOutSuccessfully: 'شما با موفقیت خارج شدید.', loggingOut: 'در حال خروج...', @@ -144,8 +143,7 @@ export const faTranslations: DefaultTranslationsObject = { block: 'بلاک', blocks: 'بلاک‌ها', blockType: 'نوع بلاک', - chooseBetweenCustomTextOrDocument: - 'یک URL سفارشی وارد کنید یا به یک صفحه دیگر لینک دهید.', + chooseBetweenCustomTextOrDocument: 'یک URL سفارشی وارد کنید یا به یک صفحه دیگر لینک دهید.', chooseDocumentToLink: 'یک صفحه را برای لینک دادن انتخاب کنید', chooseFromExisting: 'انتخاب از موارد موجود', chooseLabel: 'انتخاب {{label}}', @@ -198,8 +196,7 @@ export const faTranslations: DefaultTranslationsObject = { 'آیا از انتقال <1>{{count}} {{label}} به پوشه اصلی مطمئن هستید؟', moveItemToFolderConfirmation: 'آیا از انتقال <1>{{title}} به پوشه <2>{{toFolder}} مطمئن هستید؟', - moveItemToRootConfirmation: - 'آیا از انتقال <1>{{title}} به پوشه اصلی مطمئن هستید؟', + moveItemToRootConfirmation: 'آیا از انتقال <1>{{title}} به پوشه اصلی مطمئن هستید؟', movingFromFolder: 'انتقال "{{title}}" از پوشه {{fromFolder}}', newFolder: 'پوشه جدید', noFolder: 'بدون پوشه', @@ -213,12 +210,12 @@ export const faTranslations: DefaultTranslationsObject = { aboutToDeleteCount_many: 'آیا از حذف {{count}} {{label}} مطمئن هستید؟', aboutToDeleteCount_one: 'آیا از حذف {{count}} {{label}} مطمئن هستید؟', aboutToDeleteCount_other: 'آیا از حذف {{count}} {{label}} مطمئن هستید؟', - aboutToPermanentlyDelete: 'شما در حال حذف دائمی {{label}} "{{title}}" هستید. این عمل قابل بازگشت نیست. آیا مطمئن هستید؟', + aboutToPermanentlyDelete: + 'شما در حال حذف دائمی {{label}} "{{title}}" هستید. این عمل قابل بازگشت نیست. آیا مطمئن هستید؟', aboutToPermanentlyDeleteTrash: 'آیا از حذف دائمی <0>{{count}} <1>{{label}} از سطل زباله مطمئن هستید؟ این عمل قابل بازگشت نیست.', aboutToRestore: 'آیا از بازیابی {{label}} "{{title}}" مطمئن هستید؟', - aboutToRestoreAsDraft: - 'آیا می‌خواهید {{label}} "{{title}}" به عنوان پیش‌نویس بازیابی شود؟', + aboutToRestoreAsDraft: 'آیا می‌خواهید {{label}} "{{title}}" به عنوان پیش‌نویس بازیابی شود؟', aboutToRestoreAsDraftCount: 'آیا می‌خواهید {{count}} {{label}} به عنوان پیش‌نویس بازیابی شوند؟', aboutToRestoreCount: 'آیا از بازیابی {{count}} {{label}} مطمئن هستید؟', aboutToTrash: 'آیا می‌خواهید {{label}} "{{title}}" به سطل زباله منتقل شود؟', @@ -336,8 +333,7 @@ export const faTranslations: DefaultTranslationsObject = { menu: 'منو', moreOptions: 'گزینه‌های بیشتر', move: 'انتقال', - moveConfirm: - 'آیا از انتقال {{count}} {{label}} به <1>{{destination}} مطمئن هستید؟', + moveConfirm: 'آیا از انتقال {{count}} {{label}} به <1>{{destination}} مطمئن هستید؟', moveCount: 'انتقال {{count}} {{label}}', moveDown: 'انتقال به پایین', moveUp: 'انتقال به بالا', @@ -423,7 +419,8 @@ export const faTranslations: DefaultTranslationsObject = { true: 'بله', unauthorized: 'غیرمجاز', unsavedChanges: 'تغییرات ذخیره نشده‌ای دارید. قبل از ادامه، آن‌ها را ذخیره یا لغو کنید.', - unsavedChangesDuplicate: 'شما تغییرات ذخیره نشده‌ای دارید. آیا می‌خواهید بدون ذخیره، کپی ایجاد کنید؟', + unsavedChangesDuplicate: + 'شما تغییرات ذخیره نشده‌ای دارید. آیا می‌خواهید بدون ذخیره، کپی ایجاد کنید؟', untitled: 'بدون عنوان', upcomingEvents: 'رویدادهای آینده', updatedAt: 'تاریخ به‌روزرسانی', @@ -485,8 +482,7 @@ export const faTranslations: DefaultTranslationsObject = { filesToUpload: 'فایل‌ها برای آپلود', fileToUpload: 'فایل برای آپلود', focalPoint: 'نقطه کانونی', - focalPointDescription: - 'نقطه کانونی را مستقیماً روی تصویر بکشید یا مقادیر زیر را تنظیم کنید.', + focalPointDescription: 'نقطه کانونی را مستقیماً روی تصویر بکشید یا مقادیر زیر را تنظیم کنید.', height: 'ارتفاع', lessInfo: 'اطلاعات کمتر', moreInfo: 'اطلاعات بیشتر', @@ -528,15 +524,16 @@ export const faTranslations: DefaultTranslationsObject = { }, version: { type: 'نوع', - aboutToPublishSelection: - 'آیا از انتشار تمام {{label}} انتخاب شده مطمئن هستید؟', + aboutToPublishSelection: 'آیا از انتشار تمام {{label}} انتخاب شده مطمئن هستید؟', aboutToRestore: 'شما در حال بازگردانی این {{label}} به نسخه‌ای هستید که در تاریخ {{versionDate}} ذخیره شده است. آیا ادامه می‌دهید؟', - aboutToRestoreGlobal: 'شما در حال بازگردانی {{label}} به نسخه مربوط به تاریخ {{versionDate}} هستید. آیا ادامه می‌دهید؟', + aboutToRestoreGlobal: + 'شما در حال بازگردانی {{label}} به نسخه مربوط به تاریخ {{versionDate}} هستید. آیا ادامه می‌دهید؟', aboutToRevertToPublished: - 'شما در حال بازگرداندن این صفحه به آخرین نسخه منتشر شده آن هستید. آیا مطمئن هستید؟', - aboutToUnpublish: 'آیا از لغو انتشار این صفحه مطمئن هستید؟', - aboutToUnpublishSelection: 'آیا از لغو انتشار {{label}} انتخاب شده مطمئن هستید؟', + 'شما در حال بازگردانی تغییرات این رسانه به وضعیت منتشر شده آن هستید. از این کار اطمینان دارید؟', + aboutToUnpublish: 'شما در حال لغو انتشار این سند هستید، آیا از این کار اطمینان دارید؟', + aboutToUnpublishIn: 'شما در حال عدم انتشار این سند در {{locale}} هستید. آیا مطمئنید؟', + aboutToUnpublishSelection: 'شما در شرف لغو انتشار {{label}} برگزیده هستید. ایا اطمینان دارید؟', autosave: 'ذخیره خودکار', autosavedSuccessfully: 'با موفقیت به صورت خودکار ذخیره شد.', autosavedVersion: 'نسخه ذخیره خودکار', @@ -580,7 +577,8 @@ export const faTranslations: DefaultTranslationsObject = { restoreThisVersion: 'بازیابی این نسخه', restoring: 'در حال بازیابی...', reverting: 'در حال بازگردانی...', - revertToPublished: 'بازگردانی به نسخه منتشر شده', + revertToPublished: 'بازگردانی به انتشار یافته', + revertUnsuccessful: 'بازگشت ناموفق بود. نسخه منتشر شده قبلی یافت نشد.', saveDraft: 'ذخیره پیش‌نویس', scheduledSuccessfully: 'با موفقیت زمان‌بندی شد.', schedulePublish: 'زمان‌بندی انتشار', @@ -591,6 +589,9 @@ export const faTranslations: DefaultTranslationsObject = { specificVersion: 'نسخه مشخص', status: 'وضعیت', unpublish: 'لغو انتشار', + unpublished: 'نشر نشده', + unpublishedSuccessfully: 'با موفقیت منتشر نشد.', + unpublishIn: 'لغو انتشار در {{locale}}', unpublishing: 'در حال لغو انتشار...', version: 'نسخه', versionAgo: '{{distance}} پیش', diff --git a/packages/translations/src/languages/fr.ts b/packages/translations/src/languages/fr.ts index da84806762f..a20affa42a9 100644 --- a/packages/translations/src/languages/fr.ts +++ b/packages/translations/src/languages/fr.ts @@ -557,6 +557,8 @@ export const frTranslations: DefaultTranslationsObject = { 'Vous êtes sur le point de rétablir les modifications apportées à ce document à la version publiée. Êtes-vous sûr ?', aboutToUnpublish: 'Vous êtes sur le point d’annuler la publication de ce document. Êtes-vous sûr ?', + aboutToUnpublishIn: + 'Vous êtes sur le point de dépublier ce document en {{locale}}. Êtes-vous sûr ?', aboutToUnpublishSelection: 'Vous êtes sur le point de dépublier tous les {{label}} de la sélection. Êtes-vous sûr ?', autosave: 'Enregistrement automatique', @@ -603,6 +605,8 @@ export const frTranslations: DefaultTranslationsObject = { restoring: 'Restauration en cours...', reverting: 'Republication en cours...', revertToPublished: 'Republier', + revertUnsuccessful: + "Échec de la réinitialisation. Aucune version précédemment publiée n'a été trouvée.", saveDraft: 'Enregistrer le brouillon', scheduledSuccessfully: 'Programmé avec succès.', schedulePublish: 'Programmer la publication', @@ -613,6 +617,9 @@ export const frTranslations: DefaultTranslationsObject = { specificVersion: 'Version spécifique', status: 'Statut', unpublish: 'Annuler la publication', + unpublished: 'Non publié', + unpublishedSuccessfully: 'Non publié avec succès.', + unpublishIn: 'Dépublier en {{locale}}', unpublishing: 'Annulation en cours...', version: 'Version', versionAgo: 'il y a {{distance}}', diff --git a/packages/translations/src/languages/he.ts b/packages/translations/src/languages/he.ts index 7d866883cb8..ee8e2d49984 100644 --- a/packages/translations/src/languages/he.ts +++ b/packages/translations/src/languages/he.ts @@ -524,6 +524,7 @@ export const heTranslations: DefaultTranslationsObject = { 'אתה עומד לשחזר את {{label}} הגלובלי למצב שהיה בו בתאריך {{versionDate}}.', aboutToRevertToPublished: 'אתה עומד להחזיר את השינויים במסמך הזה לגרסה שפורסמה. האם אתה בטוח?', aboutToUnpublish: 'אתה עומד לבטל את הפרסום של מסמך זה. האם אתה בטוח?', + aboutToUnpublishIn: 'אתה עומד לבטל את פרסום מסמך זה ב{{locale}}. האם אתה בטוח?', aboutToUnpublishSelection: 'אתה עומד לבטל את הפרסום של כל ה{{label}} שנבחרו. האם אתה בטוח?', autosave: 'שמירה אוטומטית', autosavedSuccessfully: 'נשמר בהצלחה.', @@ -569,6 +570,7 @@ export const heTranslations: DefaultTranslationsObject = { restoring: 'משחזר...', reverting: 'משחזר...', revertToPublished: 'שחזר לגרסה שפורסמה', + revertUnsuccessful: 'חזרה לא הצליחה. לא נמצאה גרסה שפורסמה בעבר.', saveDraft: 'שמור טיוטה', scheduledSuccessfully: 'תוזמן בהצלחה.', schedulePublish: 'לוח זמנים לפרסום', @@ -579,6 +581,9 @@ export const heTranslations: DefaultTranslationsObject = { specificVersion: 'גרסה מסוימת', status: 'סטטוס', unpublish: 'בטל פרסום', + unpublished: 'לא פורסם', + unpublishedSuccessfully: 'לא פורסם בהצלחה.', + unpublishIn: 'בטל פרסום ב{{locale}}', unpublishing: 'מבטל פרסום...', version: 'גרסה', versionAgo: 'לפני {{distance}}', diff --git a/packages/translations/src/languages/hr.ts b/packages/translations/src/languages/hr.ts index b74c4af9d6f..879cf532d49 100644 --- a/packages/translations/src/languages/hr.ts +++ b/packages/translations/src/languages/hr.ts @@ -539,6 +539,8 @@ export const hrTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Vratit ćete promjene u dokumentu u objavljeno stanje. Jeste li sigurni? ', aboutToUnpublish: 'Poništit ćete objavu ovog dokumenta. Jeste li sigurni?', + aboutToUnpublishIn: + 'Uskoro ćete povući objavljivanje ovog dokumenta na {{locale}}. Jeste li sigurni?', aboutToUnpublishSelection: 'Upravo ćete poništiti objavu svih {{label}} u odabiru. Jeste li sigurni?', autosave: 'Automatsko spremanje', @@ -586,6 +588,7 @@ export const hrTranslations: DefaultTranslationsObject = { restoring: 'Vraćanje...', reverting: 'Vraćanje...', revertToPublished: 'Vrati na objavljeno', + revertUnsuccessful: 'Vraćanje neuspješno. Nije pronađena prethodno objavljena verzija.', saveDraft: 'Sačuvaj nacrt', scheduledSuccessfully: 'Uspješno zakazano.', schedulePublish: 'Raspored objavljivanja', @@ -596,6 +599,9 @@ export const hrTranslations: DefaultTranslationsObject = { specificVersion: 'Specifična verzija', status: 'Status', unpublish: 'Poništi objavu', + unpublished: 'Neobjavljeno', + unpublishedSuccessfully: 'Uspješno nepobjavljeno.', + unpublishIn: 'Povuci objavljivanje na {{locale}}', unpublishing: 'Poništavanje objave...', version: 'Verzija', versionAgo: 'prije {{distance}}', diff --git a/packages/translations/src/languages/hu.ts b/packages/translations/src/languages/hu.ts index 903502596ac..acd731680fc 100644 --- a/packages/translations/src/languages/hu.ts +++ b/packages/translations/src/languages/hu.ts @@ -549,6 +549,8 @@ export const huTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Arra készül, hogy visszaállítsa a dokumentum módosításait a közzétett állapotába. Biztos benne?', aboutToUnpublish: 'A dokumentum közzétételének visszavonására készül. Biztos benne?', + aboutToUnpublishIn: + 'Ön készül visszavonni ennek a dokumentumnak a közzétételét a {{locale}} beállításban. Biztos benne?', aboutToUnpublishSelection: 'Arra készül, hogy visszavonja a kijelölésben szereplő összes {{label}} közzétételét. biztos vagy ebben?', autosave: 'Automatikus mentés', @@ -595,6 +597,7 @@ export const huTranslations: DefaultTranslationsObject = { restoring: 'Visszaállítás...', reverting: 'Visszaállítás...', revertToPublished: 'Visszatérés a közzétetthez', + revertUnsuccessful: 'Visszavonás sikertelen. Nem található korábban publikált verzió.', saveDraft: 'Piszkozat mentése', scheduledSuccessfully: 'Sikeresen ütemezve.', schedulePublish: 'Közzététel ütemezése', @@ -605,6 +608,9 @@ export const huTranslations: DefaultTranslationsObject = { specificVersion: 'Specifikus verzió', status: 'Állapot', unpublish: 'Közzététel visszavonása', + unpublished: 'Közzétételre váró', + unpublishedSuccessfully: 'Sikeresen visszavonták a közzétételt.', + unpublishIn: 'Vonatkozás {{locale}} nem közzététele', unpublishing: 'Közzététel visszavonása...', version: 'Verzió', versionAgo: '{{distance}} ezelőtt', diff --git a/packages/translations/src/languages/hy.ts b/packages/translations/src/languages/hy.ts index 2f9bce9549b..9f3e37b2333 100644 --- a/packages/translations/src/languages/hy.ts +++ b/packages/translations/src/languages/hy.ts @@ -550,6 +550,7 @@ export const hyTranslations: DefaultTranslationsObject = { 'Դուք պատրաստվում եք հետ բերել այս փաստաթղթի փոփոխությունները դեպի իր հրապարակված վիճակին։ Համոզվա՞ծ եք։', aboutToUnpublish: 'Դուք պատրաստվում եք այս փաստաթուղթը բերել չհրապարակված վիճակի։ Համոզվա՞ծ եք։', + aboutToUnpublishIn: 'Դուք պատրաստ եք այս փաստաթուղթը չհրատարակել {{locale}}։ Արդյոք վստահ եք:', aboutToUnpublishSelection: 'Դուք պատրաստվում եք ընտրության մեջ գտնվող բոլոր {{label}}-ները բերել չհրապարակված վիճակի։ Համոզվա՞ծ եք։', autosave: 'Ինքնապահպանում', @@ -596,6 +597,7 @@ export const hyTranslations: DefaultTranslationsObject = { restoring: 'Վերականգնվում է...', reverting: 'Հետ է բերվում...', revertToPublished: 'Հետ բերել հրապարակված վիճակին', + revertUnsuccessful: 'Վերադարձը չհաջողվեց: Չի գտնվել նախկինում հրատարակված տարբերակ։', saveDraft: 'Պահպանել սևագիրը', scheduledSuccessfully: 'Հաջողությամբ պլանավորված։', schedulePublish: 'Պլանավորել հրապարակումը', @@ -606,6 +608,9 @@ export const hyTranslations: DefaultTranslationsObject = { specificVersion: 'Մասնավոր Տարբերակ', status: 'Կարգավիճակ', unpublish: 'Բերել չհրապարակված վիճակի։', + unpublished: 'Չհրատարակված', + unpublishedSuccessfully: 'Չհրատարակված է հաջողությամբ:', + unpublishIn: 'Չհրատարակել {{locale}}', unpublishing: 'Բերվում է չհրապարակված վիճակի...', version: 'Տարբերակ', versionAgo: '{{distance}} առաջ', diff --git a/packages/translations/src/languages/id.ts b/packages/translations/src/languages/id.ts index 0e31622af72..76fda4405ec 100644 --- a/packages/translations/src/languages/id.ts +++ b/packages/translations/src/languages/id.ts @@ -543,6 +543,8 @@ export const idTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Anda akan mengembalikan perubahan dokumen ini ke keadaan yang dipublikasikan. Apakah Anda yakin?', aboutToUnpublish: 'Anda akan membatalkan publikasi dokumen ini. Apakah Anda yakin?', + aboutToUnpublishIn: + 'Anda akan mencabut publikasi dokumen ini dalam {{locale}}. Apakah Anda yakin?', aboutToUnpublishSelection: 'Anda akan membatalkan publikasi semua {{label}} dalam pilihan. Apakah Anda yakin?', autosave: 'Simpan Otomatis', @@ -589,6 +591,8 @@ export const idTranslations: DefaultTranslationsObject = { restoring: 'Memulihkan...', reverting: 'Mengembalikan...', revertToPublished: 'Kembali ke yang dipublikasikan', + revertUnsuccessful: + 'Pembatalan tidak berhasil. Tidak ditemukan versi yang sebelumnya telah dipublikasikan.', saveDraft: 'Simpan Draf', scheduledSuccessfully: 'Berhasil dijadwalkan.', schedulePublish: 'Jadwalkan Publikasi', @@ -599,6 +603,9 @@ export const idTranslations: DefaultTranslationsObject = { specificVersion: 'Versi Spesifik', status: 'Status', unpublish: 'Batalkan Publikasi', + unpublished: 'Tidak diterbitkan', + unpublishedSuccessfully: 'Berhasil tidak diterbitkan.', + unpublishIn: 'Batal publikasi dalam {{locale}}', unpublishing: 'Membatalkan publikasi...', version: 'Versi', versionAgo: '{{distance}} yang lalu', diff --git a/packages/translations/src/languages/is.ts b/packages/translations/src/languages/is.ts index a1022964678..765c848c932 100644 --- a/packages/translations/src/languages/is.ts +++ b/packages/translations/src/languages/is.ts @@ -538,8 +538,9 @@ export const isTranslations: DefaultTranslationsObject = { aboutToRestoreGlobal: 'Þú munt endurheimta {{label}} í þá stöðu sem það var í þann {{versionDate}}.', aboutToRevertToPublished: - 'Þú munt endursetja breytingar á þessari færslu í útgefna stöðu. Ertu viss?', + 'Þú ert að fara að snúa breytingum þessa skjals til baka í útgefna ástandið. Ertu viss?', aboutToUnpublish: 'Þú munt taka þessa færslu úr birtingu. Ertu viss?', + aboutToUnpublishIn: 'Þú ert um það bil að afrita þetta skjal í {{locale}}. Ertu viss?', aboutToUnpublishSelection: 'Þú munt taka úr birtingu allar valdar {{label}}. Ertu viss?', autosave: 'Sjálfvirk vistun', autosavedSuccessfully: 'Sjálfvirk vistun tókst.', @@ -585,6 +586,7 @@ export const isTranslations: DefaultTranslationsObject = { restoring: 'Endurheimti...', reverting: 'Sný til baka...', revertToPublished: 'Snúa til baka í útgefið', + revertUnsuccessful: 'Afturköllun mistókst. Engin fyrr um birt útgáfa fundin.', saveDraft: 'Vista drög', scheduledSuccessfully: 'Áætlað.', schedulePublish: 'Áætla útgáfu', @@ -595,6 +597,9 @@ export const isTranslations: DefaultTranslationsObject = { specificVersion: 'Tiltekin útgáfa', status: 'Staða', unpublish: 'Taka úr birtingu', + unpublished: 'Óútgefið', + unpublishedSuccessfully: 'Ekkert birting.', + unpublishIn: 'Afbóka í {{locale}}', unpublishing: 'Tek úr birtingu...', version: 'Útgáfa', versionAgo: '{{distance}} síðan', diff --git a/packages/translations/src/languages/it.ts b/packages/translations/src/languages/it.ts index b0c4121c50f..07b0b485ec2 100644 --- a/packages/translations/src/languages/it.ts +++ b/packages/translations/src/languages/it.ts @@ -547,6 +547,8 @@ export const itTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Stai per ripristinare le modifiche di questo documento al suo stato pubblicato. Sei sicuro?', aboutToUnpublish: 'Stai per annullare la pubblicazione di questo documento. Sei sicuro?', + aboutToUnpublishIn: + 'Stai per annullare la pubblicazione di questo documento in {{locale}}. Sei sicuro?', aboutToUnpublishSelection: 'Stai per annullare la pubblicazione di tutte le {{label}} nella selezione. Sei sicuro?', autosave: 'Salvataggio automatico', @@ -593,6 +595,8 @@ export const itTranslations: DefaultTranslationsObject = { restoring: 'Ripristino...', reverting: 'Ritorno...', revertToPublished: 'Ritorna alla versione pubblicata', + revertUnsuccessful: + 'Ritorno non riuscito. Nessuna versione precedentemente pubblicata trovata.', saveDraft: 'Salva Bozza', scheduledSuccessfully: 'Programmato con successo.', schedulePublish: 'Pubblicazione Programmata', @@ -603,6 +607,9 @@ export const itTranslations: DefaultTranslationsObject = { specificVersion: 'Versione Specifica', status: 'Stato', unpublish: 'Annulla pubblicazione', + unpublished: 'Non pubblicato', + unpublishedSuccessfully: 'Pubblicazione annullata con successo.', + unpublishIn: 'Non pubblicare in {{locale}}', unpublishing: 'Annullamento pubblicazione...', version: 'Versione', versionAgo: '{{distance}} fa', diff --git a/packages/translations/src/languages/ja.ts b/packages/translations/src/languages/ja.ts index a71c271f23b..bbc8373de81 100644 --- a/packages/translations/src/languages/ja.ts +++ b/packages/translations/src/languages/ja.ts @@ -542,6 +542,8 @@ export const jaTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'このデータの変更を公開時の状態に戻そうとしています。よろしいですか?', aboutToUnpublish: 'このデータを非公開にしようとしています。よろしいですか?', + aboutToUnpublishIn: + 'あなたはこのドキュメントを{{locale}}で非公開にする予定です。よろしいですか?', aboutToUnpublishSelection: '選択したすべての{{label}}の公開を取り消そうとしています。よろしいですか?', autosave: '自動保存', @@ -588,6 +590,8 @@ export const jaTranslations: DefaultTranslationsObject = { restoring: '復元しています...', reverting: '内容を戻しています...', revertToPublished: '公開時の内容に戻す', + revertUnsuccessful: + '元に戻す操作に失敗しました。以前に公開されたバージョンが見つかりませんでした。', saveDraft: 'ドラフトを保存', scheduledSuccessfully: '正常にスケジュールされました。', schedulePublish: 'スケジュール公開', @@ -598,6 +602,9 @@ export const jaTranslations: DefaultTranslationsObject = { specificVersion: '特定のバージョン', status: 'ステータス', unpublish: '非公開', + unpublished: '未公開', + unpublishedSuccessfully: '公開停止が成功しました。', + unpublishIn: '{{locale}}で非公開にする', unpublishing: '非公開中...', version: 'バージョン', versionAgo: '{{distance}}前', diff --git a/packages/translations/src/languages/ko.ts b/packages/translations/src/languages/ko.ts index 750fd868fd9..e44723f7d41 100644 --- a/packages/translations/src/languages/ko.ts +++ b/packages/translations/src/languages/ko.ts @@ -536,6 +536,7 @@ export const koTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: '이 문서의 변경 사항을 게시된 상태로 되돌리려고 합니다. 계속하시겠습니까?', aboutToUnpublish: '이 문서를 게시 해제하려고 합니다. 계속하시겠습니까?', + aboutToUnpublishIn: '당신은 이 문서를 {{locale}}에서 게시 취소하려고 합니다. 확실합니까?', aboutToUnpublishSelection: '선택한 {{label}}을(를) 게시 해제하려고 합니다. 계속하시겠습니까?', autosave: '자동 저장', autosavedSuccessfully: '자동 저장이 완료되었습니다.', @@ -581,6 +582,7 @@ export const koTranslations: DefaultTranslationsObject = { restoring: '복원 중...', reverting: '되돌리는 중...', revertToPublished: '게시된 상태로 되돌리기', + revertUnsuccessful: '되돌리기 실패. 이전에 발행된 버전을 찾을 수 없습니다.', saveDraft: '초안 저장', scheduledSuccessfully: '성공적으로 예약되었습니다.', schedulePublish: '발행 일정', @@ -591,6 +593,9 @@ export const koTranslations: DefaultTranslationsObject = { specificVersion: '특정 버전', status: '상태', unpublish: '게시 해제', + unpublished: '미발행', + unpublishedSuccessfully: '성공적으로 비공개되었습니다.', + unpublishIn: '{{locale}}에서 비공개', unpublishing: '게시 해제 중...', version: '버전', versionAgo: '{{distance}} 전', diff --git a/packages/translations/src/languages/lt.ts b/packages/translations/src/languages/lt.ts index 91824191351..4499ade385c 100644 --- a/packages/translations/src/languages/lt.ts +++ b/packages/translations/src/languages/lt.ts @@ -546,6 +546,7 @@ export const ltTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Jūs ketinate atšaukti šio dokumento pakeitimus ir grįžti prie publikuotos versijos. Ar esate įsitikinęs?', aboutToUnpublish: 'Jūs ketinate panaikinti šio dokumento publikavimą. Ar esate tikri?', + aboutToUnpublishIn: 'Jūs ketinate nepublikuoti šio dokumento {{locale}}. Ar jūs įsitikinęs?', aboutToUnpublishSelection: 'Jūs ketinate atšaukti visų {{label}} pasirinkime. Ar esate įsitikinęs?', autosave: 'Automatinis išsaugojimas', @@ -592,6 +593,7 @@ export const ltTranslations: DefaultTranslationsObject = { restoring: 'Atkuriamas...', reverting: 'Grįžtama...', revertToPublished: 'Grįžti prie publikuotojo', + revertUnsuccessful: 'Grąžinimas nepavyko. Ankstesnės publikuotos versijos nerasta.', saveDraft: 'Išsaugoti juodraštį', scheduledSuccessfully: 'Sėkmingai suplanuota.', schedulePublish: 'Suplanuokite publikaciją', @@ -602,6 +604,9 @@ export const ltTranslations: DefaultTranslationsObject = { specificVersion: 'Specifinė versija', status: 'Būsena', unpublish: 'Nebepublikuoti', + unpublished: 'Nepublikuotas', + unpublishedSuccessfully: 'Sėkmingai nepaskelbta.', + unpublishIn: 'Nepublikuoti {{locale}}', unpublishing: 'Nebepublikuojama...', version: 'Versija', versionAgo: 'prieš {{distance}}', diff --git a/packages/translations/src/languages/lv.ts b/packages/translations/src/languages/lv.ts index 8fbd69266d3..37be81c4d0b 100644 --- a/packages/translations/src/languages/lv.ts +++ b/packages/translations/src/languages/lv.ts @@ -542,6 +542,8 @@ export const lvTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Jūs grasāties atsaukt šī dokumenta izmaiņas uz publicēto versiju. Vai esat pārliecināts?', aboutToUnpublish: 'Jūs grasāties atcelt šī dokumenta publicēšanu. Vai esat pārliecināts?', + aboutToUnpublishIn: + 'Jūs tūlīt noņemsiet šo dokumentu no publicēšanas {{locale}}. Vai esat pārliecināts?', aboutToUnpublishSelection: 'Jūs grasāties atcelt publicēšanu visiem {{label}} izvēlētajā sarakstā. Vai esat pārliecināts?', autosave: 'Automātiskā saglabāšana', @@ -588,6 +590,7 @@ export const lvTranslations: DefaultTranslationsObject = { restoring: 'Atjauno...', reverting: 'Atgriež...', revertToPublished: 'Atgriezt uz publicēto', + revertUnsuccessful: 'Atcelšana neizdevās. Iepriekš publicēta versija nav atrasta.', saveDraft: 'Saglabāt melnrakstu', scheduledSuccessfully: 'Veiksmīgi ieplānots.', schedulePublish: 'Ieplānot publicēšanu', @@ -598,6 +601,9 @@ export const lvTranslations: DefaultTranslationsObject = { specificVersion: 'Konkrētā versija', status: 'Statuss', unpublish: 'Atcelt publicēšanu', + unpublished: 'Nepublicēts', + unpublishedSuccessfully: 'Veiksmīgi nepublicēts.', + unpublishIn: 'Nepublicēt {{locale}}', unpublishing: 'Atceļ publicēšanu...', version: 'Versija', versionAgo: '{{distance}} pirms', diff --git a/packages/translations/src/languages/my.ts b/packages/translations/src/languages/my.ts index 0941d1c730c..dd753ec178e 100644 --- a/packages/translations/src/languages/my.ts +++ b/packages/translations/src/languages/my.ts @@ -551,6 +551,8 @@ export const myTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'သင်သည် အပြောင်းအလဲများကို အများဆိုင် အခြေအနေသို့ ပြန်ပြောင်းပါတော့မည်။ သေချာလား?', aboutToUnpublish: 'အများဆိုင်မှ ပြန်ဖြုတ်တော့မည်။ သေချာလား', + aboutToUnpublishIn: + 'Anda akan membatalkan penerbitan dokumen ini dalam {{locale}}. Adakah anda pasti?', aboutToUnpublishSelection: 'သင်သည် ရွေးချယ်မှုတွင် {{label}} အားလုံးကို ထုတ်ဝေတော့မည် ဖြစ်သည်။ သေချာလား?', autosave: 'အလိုအလျောက်သိမ်းဆည်းပါ။', @@ -597,6 +599,8 @@ export const myTranslations: DefaultTranslationsObject = { restoring: 'ပြန်ယူနေဆဲ...', reverting: 'ပြန်ပြောင်းနေဆဲ...', revertToPublished: 'အများဆိုင်သို့ ပြန်ပြောင်းပါ။', + revertUnsuccessful: + 'Pemulihan tidak berjaya. Tiada versi yang diterbitkan sebelum ini ditemui.', saveDraft: 'မှုကြမ်းကို သိမ်းဆည်းမည်။', scheduledSuccessfully: 'အောင်မြင်စွာ နေ့စွဲထားသည်။', schedulePublish: 'ပြဌာန်းထုတ်ဝေချိန်း', @@ -607,6 +611,9 @@ export const myTranslations: DefaultTranslationsObject = { specificVersion: 'အထူးဗားရှင်း', status: 'အခြေအနေ', unpublish: 'ပြန်ဖြုတ်မည်။', + unpublished: 'Belum diterbitkan', + unpublishedSuccessfully: 'Tidak diterbitkan dengan jayanya.', + unpublishIn: 'Batalkan penerbitan dalam {{locale}}', unpublishing: 'ပြန်ဖြုတ်နေဆဲ ...', version: 'ဗားရှင်း', versionAgo: '{{distance}} ကြာပြီ', diff --git a/packages/translations/src/languages/nb.ts b/packages/translations/src/languages/nb.ts index 9fb5e1472a1..e9259b6db5f 100644 --- a/packages/translations/src/languages/nb.ts +++ b/packages/translations/src/languages/nb.ts @@ -543,6 +543,8 @@ export const nbTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Du er i ferd med å tilbakestille endringene i dette dokumentet til den publiserte tilstanden. Er du sikker?', aboutToUnpublish: 'Du er i ferd med å avpublisere dette dokumentet. Er du sikker?', + aboutToUnpublishIn: + 'Du er i ferd med å avpublisere dette dokumentet i {{locale}}. Er du sikker?', aboutToUnpublishSelection: 'Du er i ferd med å oppheve publiseringen av alle {{label}} i utvalget. Er du sikker?', autosave: 'Lagre automatisk', @@ -589,6 +591,7 @@ export const nbTranslations: DefaultTranslationsObject = { restoring: 'Gjenoppretter...', reverting: 'Tilbakestiller...', revertToPublished: 'Tilbakestill til publisert', + revertUnsuccessful: 'Tilbakeføring mislykket. Ingen tidligere publisert versjon funnet.', saveDraft: 'Lagre utkast', scheduledSuccessfully: 'Planlegging vellykket.', schedulePublish: 'Planlegg publisering', @@ -599,6 +602,9 @@ export const nbTranslations: DefaultTranslationsObject = { specificVersion: 'Spesifikk versjon', status: 'Status', unpublish: 'Avpubliser', + unpublished: 'Upublisert', + unpublishedSuccessfully: 'Utgivelse avbrutt vellykket.', + unpublishIn: 'Avpubliser på {{locale}}', unpublishing: 'Avpubliserer...', version: 'Versjon', versionAgo: '{{distance}} siden', diff --git a/packages/translations/src/languages/nl.ts b/packages/translations/src/languages/nl.ts index b2cb1d1f876..55313fb6db0 100644 --- a/packages/translations/src/languages/nl.ts +++ b/packages/translations/src/languages/nl.ts @@ -551,6 +551,8 @@ export const nlTranslations: DefaultTranslationsObject = { 'U staat op het punt om de wijzigingen van dit document terug te draaien naar de gepubliceerde staat. Weet u het zeker?', aboutToUnpublish: 'U staat op het punt om de publicatie van dit document ongedaan te maken. Weet u het zeker?', + aboutToUnpublishIn: + 'U staat op het punt dit document in {{locale}} te depubliceren. Weet u het zeker?', aboutToUnpublishSelection: 'You are about to unpublish all {{label}} in the selection. Are you sure?', autosave: 'Automatisch bewaren', @@ -597,6 +599,7 @@ export const nlTranslations: DefaultTranslationsObject = { restoring: 'Herstellen...', reverting: 'Terugdraaien...', revertToPublished: 'Terugdraaien naar gepubliceerde versie', + revertUnsuccessful: 'Herstel mislukt. Geen eerder gepubliceerde versie gevonden.', saveDraft: 'Bewaar concept', scheduledSuccessfully: 'Succesvol gepland.', schedulePublish: 'Publicatie plannen', @@ -607,6 +610,9 @@ export const nlTranslations: DefaultTranslationsObject = { specificVersion: 'Specifieke versie', status: 'Status', unpublish: 'Publicatie ongedaan maken', + unpublished: 'Ongepubliceerd', + unpublishedSuccessfully: 'Met succes niet gepubliceerd.', + unpublishIn: 'Depubliceren in {{locale}}', unpublishing: 'Publicatie ongedaan maken...', version: 'Versie', versionAgo: '{{distance}} geleden', diff --git a/packages/translations/src/languages/pl.ts b/packages/translations/src/languages/pl.ts index 2f6a35efb64..9a661d2b36c 100644 --- a/packages/translations/src/languages/pl.ts +++ b/packages/translations/src/languages/pl.ts @@ -540,6 +540,8 @@ export const plTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Zamierzasz przywrócić zmiany w tym dokumencie do stanu opublikowanego. Jesteś pewien?', aboutToUnpublish: 'Zamierzasz cofnąć publikację tego dokumentu. Jesteś pewien?', + aboutToUnpublishIn: + 'Zamierzasz wycofać publikację tego dokumentu w {{locale}}. Czy jesteś pewny?', aboutToUnpublishSelection: 'Zamierzasz cofnąć publikację wszystkich {{label}} w zaznaczeniu. Jesteś pewny?', autosave: 'Autozapis', @@ -586,6 +588,7 @@ export const plTranslations: DefaultTranslationsObject = { restoring: 'Przywracanie...', reverting: 'Cofanie...', revertToPublished: 'Przywróć do opublikowanego', + revertUnsuccessful: 'Cofnij nieudane. Nie znaleziono wcześniej opublikowanej wersji.', saveDraft: 'Zapisz szkic', scheduledSuccessfully: 'Zaplanowano pomyślnie.', schedulePublish: 'Zaplanuj publikację', @@ -596,6 +599,9 @@ export const plTranslations: DefaultTranslationsObject = { specificVersion: 'Konkretna Wersja', status: 'Status', unpublish: 'Cofnij publikację', + unpublished: 'Nieopublikowany', + unpublishedSuccessfully: 'Nieopublikowano pomyślnie.', + unpublishIn: 'Cofnij publikację w {{locale}}', unpublishing: 'Cofanie publikacji...', version: 'Wersja', versionAgo: '{{distance}} temu', diff --git a/packages/translations/src/languages/pt.ts b/packages/translations/src/languages/pt.ts index 5aa78d11b71..6f77fb49916 100644 --- a/packages/translations/src/languages/pt.ts +++ b/packages/translations/src/languages/pt.ts @@ -544,6 +544,8 @@ export const ptTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Você está prestes a reverter as alterações desse documento para seu estado de publicação. Tem certeza?', aboutToUnpublish: 'Você está prestes a despublicar esse documento. Tem certeza?', + aboutToUnpublishIn: + 'Você está prestes a retirar a publicação deste documento em {{locale}}. Tem certeza?', aboutToUnpublishSelection: 'Você está prestes a cancelar a publicação de todos os {{label}} na seleção. Tem certeza?', autosave: 'Salvamento automático', @@ -590,6 +592,7 @@ export const ptTranslations: DefaultTranslationsObject = { restoring: 'Restaurando...', reverting: 'Revertendo...', revertToPublished: 'Reverter para publicado', + revertUnsuccessful: 'Reversão sem sucesso. Nenhuma versão publicada anteriormente encontrada.', saveDraft: 'Salvar rascunho', scheduledSuccessfully: 'Agendado com sucesso.', schedulePublish: 'Agendar Publicação', @@ -600,6 +603,9 @@ export const ptTranslations: DefaultTranslationsObject = { specificVersion: 'Versão Específica', status: 'Status', unpublish: 'Despublicar', + unpublished: 'Não publicado', + unpublishedSuccessfully: 'Não publicado com sucesso.', + unpublishIn: 'Despublicar em {{locale}}', unpublishing: 'Despublicando...', version: 'Versão', versionAgo: 'há {{distance}}', diff --git a/packages/translations/src/languages/ro.ts b/packages/translations/src/languages/ro.ts index 99de2fd2dbf..13d950fe9f9 100644 --- a/packages/translations/src/languages/ro.ts +++ b/packages/translations/src/languages/ro.ts @@ -551,6 +551,8 @@ export const roTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Sunteți pe cale să readuceți modificările aduse acestui document la starea sa publicată. Sunteți sigur?', aboutToUnpublish: 'Sunteți pe cale să nepublicați acest document. Sunteți sigur?', + aboutToUnpublishIn: + 'Sunteți pe cale să anulați publicarea acestui document în {{locale}}. Sunteți sigur?', aboutToUnpublishSelection: 'Sunteți pe punctul de a nepublica toate {{label}} din selecție. Sunteți sigur?', autosave: 'Autosalvare', @@ -597,6 +599,7 @@ export const roTranslations: DefaultTranslationsObject = { restoring: 'Restaurare...', reverting: 'Revenire...', revertToPublished: 'Reveniți la publicat', + revertUnsuccessful: 'Revenire nereușită. Nu a fost găsită nicio versiune publicată anterior.', saveDraft: 'Salvați proiectul', scheduledSuccessfully: 'Programat cu succes.', schedulePublish: 'Programare Publicare', @@ -607,6 +610,9 @@ export const roTranslations: DefaultTranslationsObject = { specificVersion: 'Versiunea specifică', status: 'Status', unpublish: 'Dezpublicare', + unpublished: 'Nepublicat', + unpublishedSuccessfully: 'Publicare anulată cu succes.', + unpublishIn: 'Anulați publicarea în {{locale}}', unpublishing: 'Dezpublicare...', version: 'Versiune', versionAgo: '{{distance}} în urmă', diff --git a/packages/translations/src/languages/rs.ts b/packages/translations/src/languages/rs.ts index aed84d4cbed..c1cb2e450b3 100644 --- a/packages/translations/src/languages/rs.ts +++ b/packages/translations/src/languages/rs.ts @@ -538,6 +538,8 @@ export const rsTranslations: DefaultTranslationsObject = { aboutToRestoreGlobal: 'Вратићете глобални {{label}} у стање у којем је био {{versionDate}}.', aboutToRevertToPublished: 'Вратићете промене у документу у објављено стање. Да ли сте сигурни?', aboutToUnpublish: 'Поништићете објаву овог документа. Да ли сте сигурни?', + aboutToUnpublishIn: + 'Uskoro ćete da opozovete objavljivanje ovog dokumenta na {{locale}}. Da li ste sigurni?', aboutToUnpublishSelection: 'Управо ћете поништити објаву свих {{label}} у одабиру. Да ли сте сигурни?', autosave: 'Аутоматско чување', @@ -584,6 +586,7 @@ export const rsTranslations: DefaultTranslationsObject = { restoring: 'Враћање...', reverting: 'Враћање...', revertToPublished: 'Врати на објављено', + revertUnsuccessful: 'Povratak neuspešan. Nije pronađena prethodno objavljena verzija.', saveDraft: 'Сачувај нацрт', scheduledSuccessfully: 'Успешно заказано.', schedulePublish: 'Planiranje publikovanja', @@ -594,6 +597,9 @@ export const rsTranslations: DefaultTranslationsObject = { specificVersion: 'Specifična verzija', status: 'Статус', unpublish: 'Поништи објаву', + unpublished: 'Необјављено', + unpublishedSuccessfully: 'Uspješno povučeno iz objave.', + unpublishIn: 'Otkaži objavljivanje na {{locale}}', unpublishing: 'Поништавање објаве...', version: 'Верзија', versionAgo: 'pre {{distance}}', diff --git a/packages/translations/src/languages/rsLatin.ts b/packages/translations/src/languages/rsLatin.ts index fd2fe176508..9d96980503f 100644 --- a/packages/translations/src/languages/rsLatin.ts +++ b/packages/translations/src/languages/rsLatin.ts @@ -540,6 +540,7 @@ export const rsLatinTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Vratićete promene u dokumentu u objavljeno stanje. Da li ste sigurni?', aboutToUnpublish: 'Poništićete objavu ovog dokumenta. Da li ste sigurni?', + aboutToUnpublishIn: 'Na korak ste da povučete ovaj dokument u {{locale}}. Da li ste sigurni?', aboutToUnpublishSelection: 'Upravo ćete poništiti objavu svih {{label}} u odabiru. Da li ste sigurni?', autosave: 'Automatsko čuvanje', @@ -586,6 +587,7 @@ export const rsLatinTranslations: DefaultTranslationsObject = { restoring: 'Vraćanje...', reverting: 'Vraćanje...', revertToPublished: 'Vrati na objavljeno', + revertUnsuccessful: 'Povratak nije uspeo. Nije pronađena prethodno objavljena verzija.', saveDraft: 'Sačuvaj nacrt', scheduledSuccessfully: 'Uspešno zakazano.', schedulePublish: 'Zakaži objavljivanje', @@ -596,6 +598,9 @@ export const rsLatinTranslations: DefaultTranslationsObject = { specificVersion: 'Specifična verzija', status: 'Status', unpublish: 'Poništi objavu', + unpublished: 'Neobjavljeno', + unpublishedSuccessfully: 'Uspešno nepublikovano.', + unpublishIn: 'Otkaži objavljivanje na {{locale}}', unpublishing: 'Poništavanje objave...', version: 'Verzija', versionAgo: 'pre {{distance}}', diff --git a/packages/translations/src/languages/ru.ts b/packages/translations/src/languages/ru.ts index 254333ca680..157d502409f 100644 --- a/packages/translations/src/languages/ru.ts +++ b/packages/translations/src/languages/ru.ts @@ -544,6 +544,7 @@ export const ruTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Вы собираетесь вернуть изменения этого документа к его опубликованному состоянию. Вы уверены?', aboutToUnpublish: 'Вы собираетесь отменить публикацию этого документа. Вы уверены?', + aboutToUnpublishIn: 'Вы собираетесь снять с публикации этот документ в {{locale}}. Вы уверены?', aboutToUnpublishSelection: 'Вы собираетесь отменить публикацию всех выбранных {{label}}. Вы уверены?', autosave: 'Автосохранение', @@ -590,6 +591,7 @@ export const ruTranslations: DefaultTranslationsObject = { restoring: 'Восстановление...', reverting: 'Возврат...', revertToPublished: 'Вернуться к опубликованному', + revertUnsuccessful: 'Не удалось отменить. Ранее опубликованная версия не найдена.', saveDraft: 'Сохранить черновик', scheduledSuccessfully: 'Успешно запланировано.', schedulePublish: 'Планирование публикации', @@ -600,6 +602,9 @@ export const ruTranslations: DefaultTranslationsObject = { specificVersion: 'Конкретная версия', status: 'Статус', unpublish: 'Отменить публикацию', + unpublished: 'Неопубликованный', + unpublishedSuccessfully: 'Успешно снято с публикации.', + unpublishIn: 'Отменить публикацию на {{locale}}', unpublishing: 'Отмена публикации...', version: 'Версия', versionAgo: '{{distance}} назад', diff --git a/packages/translations/src/languages/sk.ts b/packages/translations/src/languages/sk.ts index 148fa2b6f22..2c96e1fc8d9 100644 --- a/packages/translations/src/languages/sk.ts +++ b/packages/translations/src/languages/sk.ts @@ -540,6 +540,8 @@ export const skTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Chystáte sa vrátiť zmeny tohto dokumentu do jeho publikovaného stavu. Ste si istý?', aboutToUnpublish: 'Chystáte sa zrušiť publikovanie tohto dokumentu. Ste si istý?', + aboutToUnpublishIn: + 'Chystáte sa zrušiť publikovanie tohto dokumentu v {{locale}}. Ste si istý?', aboutToUnpublishSelection: 'Chystáte sa zrušiť publikovanie všetkých {{label}} vo výbere. Ste si istý?', autosave: 'Automatické uloženie', @@ -586,6 +588,7 @@ export const skTranslations: DefaultTranslationsObject = { restoring: 'Obnovovanie...', reverting: 'Vracanie...', revertToPublished: 'Vrátiť sa k publikovanému', + revertUnsuccessful: 'Vrátenie neúspešné. Nebola nájdená žiadna predtým publikovaná verzia.', saveDraft: 'Uložiť návrh', scheduledSuccessfully: 'Úspešne naplánované.', schedulePublish: 'Naplánovať publikovanie', @@ -596,6 +599,9 @@ export const skTranslations: DefaultTranslationsObject = { specificVersion: 'Špecifická verzia', status: 'Stav', unpublish: 'Zrušiť publikovanie', + unpublished: 'Neuverejnené', + unpublishedSuccessfully: 'Úspešne nezverejnené.', + unpublishIn: 'Zrušiť publikovanie v {{locale}}', unpublishing: 'Zrušujem publikovanie...', version: 'Verzia', versionAgo: 'pred {{distance}}', diff --git a/packages/translations/src/languages/sl.ts b/packages/translations/src/languages/sl.ts index 49895148f20..2c1542699fd 100644 --- a/packages/translations/src/languages/sl.ts +++ b/packages/translations/src/languages/sl.ts @@ -540,6 +540,8 @@ export const slTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Spremembe tega dokumenta boste povrnili v objavljeno stanje. Ste prepričani?', aboutToUnpublish: 'Ta dokument boste umaknili iz objave. Ste prepričani?', + aboutToUnpublishIn: + 'Ravno boste prenehali z objavo tega dokumenta v {{locale}}. Ste prepričani?', aboutToUnpublishSelection: 'Umaknili boste iz objave vse {{label}} v izboru. Ste prepričani?', autosave: 'Samodejno shranjevanje', autosavedSuccessfully: 'Samodejno shranjeno uspešno.', @@ -585,6 +587,7 @@ export const slTranslations: DefaultTranslationsObject = { restoring: 'Obnavljanje...', reverting: 'Razveljavljanje...', revertToPublished: 'Vrni na objavljeno', + revertUnsuccessful: 'Povrnitev ni uspela. Ni najdena nobena prej objavljena različica.', saveDraft: 'Shrani osnutek', scheduledSuccessfully: 'Uspešno načrtovano.', schedulePublish: 'Razporedi objavo', @@ -595,6 +598,9 @@ export const slTranslations: DefaultTranslationsObject = { specificVersion: 'Specifična različica', status: 'Status', unpublish: 'Razveljavi objavo', + unpublished: 'Neobjavljeno', + unpublishedSuccessfully: 'Uspešno neobjavljeno.', + unpublishIn: 'Prekliči objavo v {{locale}}', unpublishing: 'Razveljavljanje objave...', version: 'Različica', versionAgo: 'pred {{distance}}', diff --git a/packages/translations/src/languages/sv.ts b/packages/translations/src/languages/sv.ts index 1dd0e2f26a4..b41f3045e2d 100644 --- a/packages/translations/src/languages/sv.ts +++ b/packages/translations/src/languages/sv.ts @@ -542,6 +542,7 @@ export const svTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Du kommer återställa det här dokumentets ändringar till dess publicerade tillstånd. Är du säker?', aboutToUnpublish: 'Du kommer avpublicera detta dokument. Är du säker?', + aboutToUnpublishIn: 'Du håller på att avpublicera detta dokument i {{locale}}. Är du säker?', aboutToUnpublishSelection: 'Du är på väg att avpublicera alla {{label}} i urvalet. Är du säker?', autosave: 'Spara automatiskt', @@ -588,6 +589,7 @@ export const svTranslations: DefaultTranslationsObject = { restoring: 'Återställer...', reverting: 'Återställer...', revertToPublished: 'Återgå till publicerad', + revertUnsuccessful: 'Återställning misslyckades. Ingen tidigare publicerad version hittades.', saveDraft: 'Spara Utkast', scheduledSuccessfully: 'Schemalagd', schedulePublish: 'Schemalägg publicering', @@ -598,6 +600,9 @@ export const svTranslations: DefaultTranslationsObject = { specificVersion: 'Specifik version', status: 'Status', unpublish: 'Avpublicera', + unpublished: 'Opublicerad', + unpublishedSuccessfully: 'Ej publicerad framgångsrikt.', + unpublishIn: 'Avpublicera i {{locale}}', unpublishing: 'Avpublicerar...', version: 'Version', versionAgo: '{{distance}} sedan', diff --git a/packages/translations/src/languages/ta.ts b/packages/translations/src/languages/ta.ts index 5a7a76a66bd..f0401c54e50 100644 --- a/packages/translations/src/languages/ta.ts +++ b/packages/translations/src/languages/ta.ts @@ -543,6 +543,8 @@ export const taTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'இந்த ஆவணத்தின் மாற்றங்களை வெளியிடப்பட்ட நிலைக்கு மாற்றப்போகிறீர்கள். உறுதியா?', aboutToUnpublish: 'இந்த ஆவணத்தை வெளியிடாமல் செய்யப் போகிறீர்கள். உறுதியா?', + aboutToUnpublishIn: + 'நீங்கள் இந்த ஆவணத்தை {{locale}}-இல் வெளியீடு செய்யதேவையாக உள்ளீர்கள். நீங்கள் உறுதியாக உள்ளீர்களா?', aboutToUnpublishSelection: 'நீங்கள் தேர்வில் உள்ள அனைத்து {{label}}-ஐ வெளியிடாமல் செய்யப் போகிறீர்கள். உறுதியா?', autosave: 'தானியங்க சேமிப்பு', @@ -589,6 +591,8 @@ export const taTranslations: DefaultTranslationsObject = { restoring: 'மீட்டமைக்கப்படுகிறது...', reverting: 'மாற்றப்படுகிறது...', revertToPublished: 'வெளியிடப்பட்ட நிலைக்கு மாற்று', + revertUnsuccessful: + 'திரும்பப் பெற முடியவில்லை. முன்னர் வெளியிடப்பட்ட பதிப்புகள் எதுவும் காணப்படவில்லை.', saveDraft: 'வரைவை சேமிக்கவும்', scheduledSuccessfully: 'அட்டவணைப்படுத்தப்பட்டது வெற்றிகரமாக.', schedulePublish: 'வெளியீட்டை அட்டவணைப்படுத்தவும்', @@ -599,6 +603,9 @@ export const taTranslations: DefaultTranslationsObject = { specificVersion: 'குறிப்பிட்ட பதிப்பு', status: 'நிலை', unpublish: 'வெளியீட்டை நீக்கு', + unpublished: 'வெளியிடப்படாதது', + unpublishedSuccessfully: 'வெற்றிகரமாக வெளியீடு நிறுத்தப்பட்டது.', + unpublishIn: '{{locale}} இல் வெளியீட்டை அவிழ்க்க', unpublishing: 'வெளியீடு நீக்கப்படுகிறது...', version: 'பதிப்பு', versionAgo: '{{distance}} முன்பு', diff --git a/packages/translations/src/languages/th.ts b/packages/translations/src/languages/th.ts index 7fe52fa8a6a..d24365f6d14 100644 --- a/packages/translations/src/languages/th.ts +++ b/packages/translations/src/languages/th.ts @@ -530,6 +530,7 @@ export const thTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'คุณกำลังจะย้อนการเปลี่ยนแปลงของเอกสารนี้ไปยังเวอร์ชันที่เผยแพร่อยู่ คุณต้องการดำเนินการต่อหรือไม่?', aboutToUnpublish: 'คุณกำลังจะยกเลิกเผยแพร่เอกสารนี้ คุณต้องการดำเนินการต่อหรือไม่?', + aboutToUnpublishIn: 'คุณกำลังจะยกเลิกการเผยแพร่เอกสารนี้ใน {{locale}} คุณแน่ใจไหม?', aboutToUnpublishSelection: 'คุณกำลังจะเลิกเผยแพร่ {{label}} ทั้งหมดในส่วนที่เลือก คุณแน่ใจไหม?', autosave: 'บันทึกอัตโนมัติ', autosavedSuccessfully: 'บันทึกอัตโนมัติสำเร็จ', @@ -576,6 +577,7 @@ export const thTranslations: DefaultTranslationsObject = { restoring: 'กำลังกู้คืน...', reverting: 'กำลังย้อน...', revertToPublished: 'ย้อนกลับไปเวอร์ชันที่เผยแพร่อยู่', + revertUnsuccessful: 'ย้อนกลับไม่สำเร็จ ไม่พบเวอร์ชันที่เผยแพร่ก่อนหน้านี้', saveDraft: 'บันทึกร่าง', scheduledSuccessfully: 'ได้ทำการจัดตารางเรียบร้อยแล้ว', schedulePublish: 'ตั้งเวลาเผยแพร่', @@ -586,6 +588,9 @@ export const thTranslations: DefaultTranslationsObject = { specificVersion: 'เวอร์ชันเฉพาะ', status: 'สถานะ', unpublish: 'หยุดเผยแพร่', + unpublished: 'ไม่เผยแพร่', + unpublishedSuccessfully: 'ยกเลิกการเผยแพร่เรียบร้อยแล้ว', + unpublishIn: 'ยกเลิกการเผยแพร่ใน {{locale}}', unpublishing: 'กำลังหยุดการเผยแพร่...', version: 'เวอร์ชัน', versionAgo: '{{distance}} ที่แล้ว', diff --git a/packages/translations/src/languages/tr.ts b/packages/translations/src/languages/tr.ts index 8ece021f966..8031d978d7a 100644 --- a/packages/translations/src/languages/tr.ts +++ b/packages/translations/src/languages/tr.ts @@ -545,6 +545,7 @@ export const trTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Bu dökümanın değişikliklerini yayınladığı haline geri getirmek üzeresiniz. Devam etmek istiyor musunuz?', aboutToUnpublish: 'Bu dökümanı yayından kaldırmak üzeresiniz. Devam etmek istiyor musunuz?', + aboutToUnpublishIn: 'Bu belgeyi {{locale}} olarak yayından kaldırmak üzeresiniz. Emin misiniz?', aboutToUnpublishSelection: 'Seçimdeki tüm {{label}} yayınını kaldırmak üzeresiniz. Emin misin?', autosave: 'Otomatik kaydet', autosavedSuccessfully: 'Otomatik kaydetme başarılı', @@ -590,6 +591,7 @@ export const trTranslations: DefaultTranslationsObject = { restoring: 'Geri döndürülüyor...', reverting: 'Değişiklikler geri alınıyor...', revertToPublished: 'Yayınlanana geri döndür', + revertUnsuccessful: 'Geri almada başarısız. Daha önce yayınlanmış bir versiyon bulunamadı.', saveDraft: 'Taslağı kaydet', scheduledSuccessfully: 'Başarıyla planlandı.', schedulePublish: 'Yayını Planla', @@ -600,6 +602,9 @@ export const trTranslations: DefaultTranslationsObject = { specificVersion: 'Belirli Sürüm', status: 'Durum', unpublish: 'Yayından Kaldır', + unpublished: 'Yayınlanmamış', + unpublishedSuccessfully: 'Başarıyla yayınlanmadı.', + unpublishIn: "{{locale}}'da Yayından Kaldır", unpublishing: 'Yayından kaldırılıyor...', version: 'Sürüm', versionAgo: '{{distance}} önce', diff --git a/packages/translations/src/languages/uk.ts b/packages/translations/src/languages/uk.ts index cf5fe3bcb8f..25e3572378e 100644 --- a/packages/translations/src/languages/uk.ts +++ b/packages/translations/src/languages/uk.ts @@ -539,6 +539,8 @@ export const ukTranslations: DefaultTranslationsObject = { aboutToRevertToPublished: 'Ви бажаєте повернути зміни цього документа до його опублікованого стану. Ви впевнені?', aboutToUnpublish: 'Ви бажаєте скасувати публікацю цього документа. Ви впевнені?', + aboutToUnpublishIn: + 'Ви збираєтеся скасувати публікацію цього документа в {{locale}}. Ви впевнені?', aboutToUnpublishSelection: 'Ви бажаєте скасувати публікацію всіх {{label}} у вибірці. Ви впевнені?', autosave: 'Автозбереження', @@ -585,6 +587,7 @@ export const ukTranslations: DefaultTranslationsObject = { restoring: 'Відновлення...', reverting: 'Повернення до опублікованого стану...', revertToPublished: 'Повернутися до опублікованого стану', + revertUnsuccessful: 'Відкат невдалий. Не знайдено попередньо опублікованої версії.', saveDraft: 'Зберегти чернетку', scheduledSuccessfully: 'Успішно заплановано.', schedulePublish: 'Розклад публікації', @@ -595,6 +598,9 @@ export const ukTranslations: DefaultTranslationsObject = { specificVersion: 'Специфічна версія', status: 'Статус', unpublish: 'Скасувати публікацію', + unpublished: 'Неопубліковано', + unpublishedSuccessfully: 'Успішно скасовано публікацію.', + unpublishIn: 'Скасувати публікацію в {{locale}}', unpublishing: 'Скасування публікації...', version: 'Версія', versionAgo: '{{distance}} тому', diff --git a/packages/translations/src/languages/vi.ts b/packages/translations/src/languages/vi.ts index c31022cfaf7..1bbe05ed626 100644 --- a/packages/translations/src/languages/vi.ts +++ b/packages/translations/src/languages/vi.ts @@ -538,6 +538,8 @@ export const viTranslations: DefaultTranslationsObject = { 'Bạn chuẩn bị khôi phục lại bản toàn thể (global) của {{label}} về phiên bản {{versionDate}}.', aboutToRevertToPublished: 'Bạn có muốn tái xuất bản bản nháp này không?', aboutToUnpublish: 'Bạn có muốn ngưng xuất bản?', + aboutToUnpublishIn: + 'Bạn đang chuẩn bị hủy xuất bản tài liệu này trong {{locale}}. Bạn có chắc chắn không?', aboutToUnpublishSelection: 'Bạn có muốn ngưng xuất bản tất cả {{label}} không?', autosave: 'Tự động lưu dữ liệu', autosavedSuccessfully: 'Đã tự động lưu thành công.', @@ -583,6 +585,8 @@ export const viTranslations: DefaultTranslationsObject = { restoring: 'Đang khôi phục...', reverting: 'Đang về trạng thái cũ...', revertToPublished: 'Quay về trạng thái đã xuất bản', + revertUnsuccessful: + 'Hoàn tác không thành công. Không tìm thấy phiên bản đã được xuất bản trước đó.', saveDraft: 'Lưu bản nháp', scheduledSuccessfully: 'Đã lên lịch thành công.', schedulePublish: 'Lịch xuất bản', @@ -593,6 +597,9 @@ export const viTranslations: DefaultTranslationsObject = { specificVersion: 'Phiên bản cụ thể', status: 'Trạng thái', unpublish: 'Ẩn tài liệu', + unpublished: 'Chưa được xuất bản', + unpublishedSuccessfully: 'Đã hủy xuất bản thành công.', + unpublishIn: 'Hủy công bố trong {{locale}}', unpublishing: 'Đang ẩn tài liệu...', version: 'Phiên bản', versionAgo: '{{distance}} trước', diff --git a/packages/translations/src/languages/zh.ts b/packages/translations/src/languages/zh.ts index 3525f200255..39fe76dfc06 100644 --- a/packages/translations/src/languages/zh.ts +++ b/packages/translations/src/languages/zh.ts @@ -516,6 +516,7 @@ export const zhTranslations: DefaultTranslationsObject = { aboutToRestoreGlobal: '您要将全局的 {{label}} 恢复到 {{versionDate}} 时的状态', aboutToRevertToPublished: '您将要把这个文档的内容还原到它的发布状态。您确定吗?', aboutToUnpublish: '您即将取消发布这个文档。您确定吗?', + aboutToUnpublishIn: '您正准备取消发布此文档在 {{locale}}。您确定吗?', aboutToUnpublishSelection: '您即将取消发布所选内容中的所有 {{label}}。 您确定吗?', autosave: '自动保存', autosavedSuccessfully: '自动保存成功。', @@ -561,6 +562,7 @@ export const zhTranslations: DefaultTranslationsObject = { restoring: '恢复中...', reverting: '还原中...', revertToPublished: '还原到已发布的版本', + revertUnsuccessful: '撤销失败。未找到以前发布的版本。', saveDraft: '保存草稿', scheduledSuccessfully: '预约发布成功。', schedulePublish: '预约发布', @@ -571,6 +573,9 @@ export const zhTranslations: DefaultTranslationsObject = { specificVersion: '特定版本', status: '状态', unpublish: '取消发布', + unpublished: '未发布', + unpublishedSuccessfully: '成功取消发布。', + unpublishIn: '在{{locale}}中取消发布', unpublishing: '取消发布中...', version: '版本', versionAgo: '{{distance}} 前', diff --git a/packages/translations/src/languages/zhTw.ts b/packages/translations/src/languages/zhTw.ts index d146f2b8d8a..808fc2861aa 100644 --- a/packages/translations/src/languages/zhTw.ts +++ b/packages/translations/src/languages/zhTw.ts @@ -514,6 +514,7 @@ export const zhTwTranslations: DefaultTranslationsObject = { aboutToRestoreGlobal: '您即將將全域 {{label}} 還原至 {{versionDate}} 的狀態。', aboutToRevertToPublished: '您即將還原此文件至已發佈狀態。確定要繼續?', aboutToUnpublish: '您即將取消發佈此文件。確定要繼續?', + aboutToUnpublishIn: '您即將在 {{locale}} 中取消發布此文件。你確定嗎?', aboutToUnpublishSelection: '您即將取消發佈所有選取的 {{label}}。確定要繼續?', autosave: '自動儲存', autosavedSuccessfully: '已成功自動儲存。', @@ -559,6 +560,7 @@ export const zhTwTranslations: DefaultTranslationsObject = { restoring: '還原中…', reverting: '還原中…', revertToPublished: '還原至已發佈版本', + revertUnsuccessful: '還原失敗。找不到先前發布的版本。', saveDraft: '儲存草稿', scheduledSuccessfully: '排程成功。', schedulePublish: '排程發佈', @@ -569,6 +571,9 @@ export const zhTwTranslations: DefaultTranslationsObject = { specificVersion: '指定版本', status: '狀態', unpublish: '取消發佈', + unpublished: '未出版', + unpublishedSuccessfully: '成功取消發佈。', + unpublishIn: '在{{locale}}中取消發布', unpublishing: '取消發佈中…', version: '版本', versionAgo: '{{distance}} 前', diff --git a/packages/ui/src/elements/DocumentControls/index.tsx b/packages/ui/src/elements/DocumentControls/index.tsx index 08f463263af..4255fa2cb79 100644 --- a/packages/ui/src/elements/DocumentControls/index.tsx +++ b/packages/ui/src/elements/DocumentControls/index.tsx @@ -38,6 +38,7 @@ import { SaveButton } from '../SaveButton/index.js' import './index.scss' import { SaveDraftButton } from '../SaveDraftButton/index.js' import { Status } from '../Status/index.js' +import { UnpublishButton } from '../UnpublishButton/index.js' const baseClass = 'doc-controls' @@ -276,11 +277,12 @@ export const DocumentControls: React.FC<{ {(unsavedDraftWithValidations || !autosaveEnabled || (autosaveEnabled && showSaveDraftButton)) && ( - } - /> - )} + } + /> + )} + } diff --git a/packages/ui/src/elements/PublishButton/index.tsx b/packages/ui/src/elements/PublishButton/index.tsx index 249ca17edad..adef44943e9 100644 --- a/packages/ui/src/elements/PublishButton/index.tsx +++ b/packages/ui/src/elements/PublishButton/index.tsx @@ -186,9 +186,11 @@ export function PublishButton({ label: labelProp }: PublishButtonClientProps) { if (result) { setHasPublishedDoc(true) + setUnpublishedVersionCount(0) + setMostRecentVersionIsAutosaved(false) } }, - [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus], + [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus, setUnpublishedVersionCount, setMostRecentVersionIsAutosaved], ) const publishAll = diff --git a/packages/ui/src/elements/Status/index.tsx b/packages/ui/src/elements/Status/index.tsx index fc59f452bf1..290ae2a46ee 100644 --- a/packages/ui/src/elements/Status/index.tsx +++ b/packages/ui/src/elements/Status/index.tsx @@ -24,7 +24,6 @@ export const Status: React.FC = () => { hasPublishedDoc, incrementVersionCount, isTrashed, - setHasPublishedDoc, setMostRecentVersionIsAutosaved, setUnpublishedVersionCount, unpublishedVersionCount, @@ -43,7 +42,6 @@ export const Status: React.FC = () => { const { code: locale } = useLocale() const { i18n, t } = useTranslation() - const unPublishModalSlug = `confirm-un-publish-${id}` const revertModalSlug = `confirm-revert-${id}` let statusToRender: 'changed' | 'draft' | 'published' @@ -62,102 +60,85 @@ export const Status: React.FC = () => { : 'previouslyDraft' : statusToRender - const performAction = useCallback( - async (action: 'revert' | 'unpublish') => { - let url - let method - let body + const performAction = useCallback(async () => { + let url + let method - if (action === 'unpublish') { - body = { - _status: 'draft', - } - } - - if (collectionSlug) { - url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0` - method = 'patch' - } - - if (globalSlug) { - url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0` - method = 'post' - } + if (collectionSlug) { + url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0` + method = 'patch' + } - if (action === 'revert') { - const publishedDoc = await requests - .get(url, { - headers: { - 'Accept-Language': i18n.language, - 'Content-Type': 'application/json', - }, - }) - .then((res) => res.json()) - - body = publishedDoc - } + if (globalSlug) { + url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0` + method = 'post' + } - const res = await requests[method](url, { - body: JSON.stringify(body), + const publishedDoc = await requests + .get(url, { headers: { 'Accept-Language': i18n.language, 'Content-Type': 'application/json', }, }) + .then((res) => res.json()) - if (res.status === 200) { - let data - const json = await res.json() + const body = publishedDoc - if (globalSlug) { - data = json.result - } else if (collectionSlug) { - data = json.doc - } + const res = await requests[method](url, { + body: JSON.stringify(body), + headers: { + 'Accept-Language': i18n.language, + 'Content-Type': 'application/json', + }, + }) - // eslint-disable-next-line @typescript-eslint/no-floating-promises - resetForm(data) - toast.success(json.message) - incrementVersionCount() - setMostRecentVersionIsAutosaved(false) + if (res.status === 200) { + let data + const json = await res.json() - if (action === 'unpublish') { - setHasPublishedDoc(false) - } else if (action === 'revert') { - setUnpublishedVersionCount(0) - } - } else { - try { - const json = await res.json() - if (json.errors?.[0]?.message) { - toast.error(json.errors[0].message) - } else if (json.error) { - toast.error(json.error) - } else { - toast.error(t('error:unPublishingDocument')) - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - } catch (err) { - toast.error(t('error:unPublishingDocument')) + if (globalSlug) { + data = json.result + } else if (collectionSlug) { + data = json.doc + } + + // eslint-disable-next-line @typescript-eslint/no-floating-promises + resetForm(data) + toast.success(json.message) + incrementVersionCount() + setMostRecentVersionIsAutosaved(false) + + setUnpublishedVersionCount(0) + } else { + try { + const json = await res.json() + if (json.errors?.[0]?.message) { + toast.error(json.errors[0].message) + } else if (json.error) { + toast.error(json.error) + } else { + toast.error(t('version:revertUnsuccessful')) } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + } catch (err) { + toast.error(t('version:revertUnsuccessful')) } - }, - [ - api, - collectionSlug, - globalSlug, - id, - i18n.language, - incrementVersionCount, - locale, - resetForm, - serverURL, - setUnpublishedVersionCount, - setMostRecentVersionIsAutosaved, - t, - setHasPublishedDoc, - ], - ) + } + }, [ + api, + collectionSlug, + globalSlug, + id, + i18n.language, + incrementVersionCount, + locale, + resetForm, + serverURL, + setUnpublishedVersionCount, + setMostRecentVersionIsAutosaved, + t, + ]) const canUpdate = docPermissions?.update @@ -170,49 +151,26 @@ export const Status: React.FC = () => {
{t('version:status')}:  {t(`version:${displayStatusKey}`)} - {!isTrashed && canUpdate && statusToRender === 'published' && ( + {!isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && (  —  performAction('unpublish')} + body={t('version:aboutToRevertToPublished')} + confirmingLabel={t('version:reverting')} + heading={t('version:confirmRevertToSaved')} + modalSlug={revertModalSlug} + onConfirm={() => performAction()} /> )} - {!isTrashed && - canUpdate && - hasPublishedDoc && - statusToRender === 'changed' && ( - -  —  - - performAction('revert')} - /> - - )}
) diff --git a/packages/ui/src/elements/UnpublishButton/index.tsx b/packages/ui/src/elements/UnpublishButton/index.tsx new file mode 100644 index 00000000000..3cb52c86db1 --- /dev/null +++ b/packages/ui/src/elements/UnpublishButton/index.tsx @@ -0,0 +1,220 @@ +'use client' + +import { useModal } from '@faceless-ui/modal' +import * as qs from 'qs-esm' +import React, { useCallback, useEffect, useState } from 'react' +import { toast } from 'sonner' + +import { useForm } from '../../forms/Form/context.js' +import { FormSubmit } from '../../forms/Submit/index.js' +import { useHotkey } from '../../hooks/useHotkey.js' +import { useConfig } from '../../providers/Config/index.js' +import { useDocumentInfo } from '../../providers/DocumentInfo/index.js' +import { useEditDepth } from '../../providers/EditDepth/index.js' +import { useLocale } from '../../providers/Locale/index.js' +import { useTranslation } from '../../providers/Translation/index.js' +import { requests } from '../../utilities/api.js' +import { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js' +import { ConfirmationModal } from '../ConfirmationModal/index.js' +import { PopupList } from '../Popup/index.js' +export function UnpublishButton() { + const { + id, + collectionSlug, + data: dataFromProps, + docConfig, + globalSlug, + hasPublishedDoc, + incrementVersionCount, + setHasPublishedDoc, + setMostRecentVersionIsAutosaved, + setUnpublishedVersionCount, + } = useDocumentInfo() + const { toggleModal } = useModal() + + const { config, getEntityConfig } = useConfig() + const { reset: resetForm } = useForm() + const editDepth = useEditDepth() + const { code: localeCode } = useLocale() + const [unpublishSpecificLocale, setUnpublishSpecificLocale] = useState(false) + + const unPublishModalSlug = `confirm-un-publish-${id}` + + const { + localization, + routes: { api }, + serverURL, + } = config + + const { i18n, t } = useTranslation() + + const entityConfig = React.useMemo(() => { + if (collectionSlug) { + return getEntityConfig({ collectionSlug }) + } + + if (globalSlug) { + return getEntityConfig({ globalSlug }) + } + }, [collectionSlug, globalSlug, getEntityConfig]) + + const [hasLocalizedFields, setHasLocalizedFields] = useState(false) + + useEffect(() => { + const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields) + setHasLocalizedFields(hasLocalizedField) + }, [entityConfig?.fields]) + + const unpublish = useCallback( + (unpublishSpecificLocale?: boolean) => { + ;(async () => { + let url + let method + + const body = unpublishSpecificLocale ? {} : { _status: 'draft' } + const params = + unpublishSpecificLocale && localeCode ? `&unpublishSpecificLocale=${localeCode}` : '' + + if (collectionSlug) { + url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${localeCode}&fallback-locale=null&depth=0${params}` + method = 'patch' + } + + if (globalSlug) { + url = `${serverURL}${api}/globals/${globalSlug}?locale=${localeCode}&fallback-locale=null&depth=0${params}` + method = 'post' + } + + try { + const res = await requests[method](url, { + body: JSON.stringify(body), + headers: { + 'Accept-Language': i18n.language, + 'Content-Type': 'application/json', + }, + }) + + if (res.status === 200) { + void resetForm({ + ...(dataFromProps || {}), + _status: 'draft', + }) + + toast.success(t('version:unpublishedSuccessfully')) + incrementVersionCount() + setUnpublishedVersionCount(1) + setMostRecentVersionIsAutosaved(false) + setHasPublishedDoc(false) + } else { + try { + const json = await res.json() + if (json.errors?.[0]?.message) { + toast.error(json.errors[0].message) + } else if (json.error) { + toast.error(json.error) + } else { + toast.error(t('error:unPublishingDocument')) + } + } catch { + toast.error(t('error:unPublishingDocument')) + } + } + } catch { + toast.error(t('error:unPublishingDocument')) + } + })().catch(() => { + toast.error(t('error:unPublishingDocument')) + }) + }, + [ + dataFromProps, + resetForm, + collectionSlug, + globalSlug, + serverURL, + api, + localeCode, + id, + i18n.language, + incrementVersionCount, + setHasPublishedDoc, + setMostRecentVersionIsAutosaved, + setUnpublishedVersionCount, + t, + ], + ) + + useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => { + e.preventDefault() + e.stopPropagation() + + if (unpublish && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) { + unpublish(false) + } + }) + + const canUnpublish = hasPublishedDoc + + const canUnpublishCurrentLocale = hasLocalizedFields && canUnpublish + + const activeLocale = + localization && + localization?.locales.find((locale) => + typeof locale === 'string' ? locale === localeCode : locale.code === localeCode, + ) + + const activeLocaleLabel = + activeLocale && + (typeof activeLocale.label === 'string' + ? activeLocale.label + : (activeLocale.label?.[localeCode] ?? undefined)) + + return ( + + {canUnpublish && ( + <> + { + setUnpublishSpecificLocale(false) + toggleModal(unPublishModalSlug) + }} + size="medium" + SubMenuPopupContent={({ close }) => { + return ( + + { + setUnpublishSpecificLocale(true) + toggleModal(unPublishModalSlug) + close() + }} + > + {t('version:unpublishIn', { locale: activeLocaleLabel })} + + + ) + }} + type="button" + > + {t('version:unpublish')} + + unpublish(unpublishSpecificLocale)} + /> + + )} + + ) +} diff --git a/test/versions/e2e.spec.ts b/test/versions/e2e.spec.ts index d669435d27a..5fd711822b2 100644 --- a/test/versions/e2e.spec.ts +++ b/test/versions/e2e.spec.ts @@ -1101,7 +1101,7 @@ describe('Versions', () => { await changeLocale(page, 'en') await textField.fill('english published') - const publishOptions = page.locator('.doc-controls__controls .popup') + const publishOptions = page.locator('#action-save-popup') await publishOptions.click() const publishSpecificLocale = page.locator('#publish-locale') diff --git a/test/versions/int.spec.ts b/test/versions/int.spec.ts index 5e2d3edeca0..86015ea8fb8 100644 --- a/test/versions/int.spec.ts +++ b/test/versions/int.spec.ts @@ -3153,4 +3153,166 @@ describe('Versions', () => { }) }) }) + + describe('Unpublish Individual Locale', () => { + const collection = localizedCollectionSlug + const global = localizedGlobalSlug + + describe('Collections', () => { + let postID: string + + beforeEach(async () => { + await payload.delete({ + collection, + where: {}, + }) + }) + + it('should return correct data after unpublishing specific locale', async () => { + // publish spanish + const doc1 = await payload.create({ + collection, + data: { + text: 'Spanish', + _status: 'published', + }, + locale: 'es', + }) + + postID = doc1.id as any + + // publish english + const doc2 = await payload.update({ + id: postID, + collection, + data: { + text: 'English', + _status: 'published', + }, + locale: 'en', + }) + + // publish german + const doc3 = await payload.update({ + id: postID, + collection, + data: { + text: 'German', + _status: 'published', + }, + locale: 'de', + }) + + const publishedDoc = await payload.findByID({ + collection, + id: postID, + locale: 'all', + }) + + expect(publishedDoc?.text?.es).toStrictEqual('Spanish') + expect(publishedDoc?.text?.en).toStrictEqual('English') + expect(publishedDoc?.text?.de).toStrictEqual('German') + + // unpublish only english + const unpublish = await payload.update({ + id: postID, + data: {}, + collection, + unpublishSpecificLocale: 'en', + }) + + const latestPublishedDoc = await payload.findByID({ + collection, + id: postID, + locale: 'all', + }) + + expect(latestPublishedDoc?.text?.es).toStrictEqual('Spanish') + expect(latestPublishedDoc?.text?.en).toBeUndefined() + expect(latestPublishedDoc?.text?.de).toStrictEqual('German') + + const latestDraft = await payload.findByID({ + collection, + id: postID, + locale: 'all', + draft: true, + }) + + expect(latestDraft._status).toBe('draft') + expect(latestDraft?.text?.es).toStrictEqual('Spanish') + expect(latestDraft?.text?.en).toStrictEqual('English') + expect(latestDraft?.text?.de).toStrictEqual('German') + }) + }) + + describe('Globals', () => { + it('should save correct data when unpublishing individual locale', async () => { + // publish german + await payload.updateGlobal({ + slug: global, + data: { + title: 'German', + _status: 'published', + }, + locale: 'de', + }) + + // publish spanish + await payload.updateGlobal({ + slug: global, + data: { + title: 'Spanish', + _status: 'published', + }, + locale: 'es', + }) + + // publish english + await payload.updateGlobal({ + slug: global, + data: { + title: 'English', + _status: 'published', + }, + locale: 'en', + }) + + const globalData = await payload.findGlobal({ + slug: global, + locale: 'all', + }) + + expect(globalData?.title?.es).toStrictEqual('Spanish') + expect(globalData?.title?.en).toStrictEqual('English') + expect(globalData?.title?.de).toStrictEqual('German') + + // unpublish only english + await payload.updateGlobal({ + slug: global, + data: {}, + unpublishSpecificLocale: 'en', + }) + + const latestGlobal = await payload.findGlobal({ + slug: global, + locale: 'all', + }) + + expect(latestGlobal?.title?.es).toStrictEqual('Spanish') + expect(latestGlobal?.title?.en).toBeUndefined() + expect(latestGlobal?.title?.de).toStrictEqual('German') + + const latestDraft = await payload.findGlobal({ + slug: global, + locale: 'all', + draft: true, + }) + + expect(latestDraft._status).toBe('draft') + expect(latestDraft?.title?.es).toStrictEqual('Spanish') + expect(latestDraft?.title?.en).toStrictEqual('English') + expect(latestDraft?.title?.de).toStrictEqual('German') + }) + }) + }) })