diff --git a/packages/block-library/src/image/edit.js b/packages/block-library/src/image/edit.js index e1e221bc9575a0..489343e1dfef77 100644 --- a/packages/block-library/src/image/edit.js +++ b/packages/block-library/src/image/edit.js @@ -20,7 +20,7 @@ import { useBlockEditingMode, } from '@wordpress/block-editor'; import { useEffect, useRef, useState } from '@wordpress/element'; -import { __ } from '@wordpress/i18n'; +import { __, sprintf } from '@wordpress/i18n'; import { image as icon, plugins as pluginsIcon } from '@wordpress/icons'; import { store as noticesStore } from '@wordpress/notices'; @@ -336,7 +336,7 @@ export function ImageEdit( { } ); // Much of this description is duplicated from MediaPlaceholder. - const { lockUrlControls = false } = useSelect( + const { lockUrlControls = false, lockUrlControlsMessage } = useSelect( ( select ) => { if ( ! isSingleSelected ) { return {}; @@ -351,6 +351,13 @@ export function ImageEdit( { !! metadata?.bindings?.url && ( ! blockBindingsSource || blockBindingsSource?.lockAttributesEditing ), + lockUrlControlsMessage: blockBindingsSource?.label + ? sprintf( + /* translators: %s: Label of the bindings source. */ + __( 'Connected to %s' ), + blockBindingsSource.label + ) + : __( 'Connected to dynamic data' ), }; }, [ isSingleSelected ] @@ -387,7 +394,7 @@ export function ImageEdit( { - { __( 'Connected to a custom field' ) } + { lockUrlControlsMessage } ) : ( content diff --git a/packages/block-library/src/image/image.js b/packages/block-library/src/image/image.js index ea0f82a2e1986b..e55f6bfa03d73e 100644 --- a/packages/block-library/src/image/image.js +++ b/packages/block-library/src/image/image.js @@ -410,7 +410,9 @@ export default function Image( { lockUrlControls = false, lockHrefControls = false, lockAltControls = false, + lockAltControlsMessage, lockTitleControls = false, + lockTitleControlsMessage, lockCaption = false, } = useSelect( ( select ) => { @@ -454,10 +456,24 @@ export default function Image( { !! altBinding && ( ! altBindingSource || altBindingSource?.lockAttributesEditing ), + lockAltControlsMessage: altBindingSource?.label + ? sprintf( + /* translators: %s: Label of the bindings source. */ + __( 'Connected to %s' ), + altBindingSource.label + ) + : __( 'Connected to dynamic data' ), lockTitleControls: !! titleBinding && ( ! titleBindingSource || titleBindingSource?.lockAttributesEditing ), + lockTitleControlsMessage: titleBindingSource?.label + ? sprintf( + /* translators: %s: Label of the bindings source. */ + __( 'Connected to %s' ), + titleBindingSource.label + ) + : __( 'Connected to dynamic data' ), }; }, [ clientId, isSingleSelected, metadata?.bindings ] @@ -557,11 +573,7 @@ export default function Image( { disabled={ lockAltControls } help={ lockAltControls ? ( - <> - { __( - 'Connected to a custom field' - ) } - + <>{ lockAltControlsMessage } ) : ( <> @@ -607,11 +619,7 @@ export default function Image( { disabled={ lockTitleControls } help={ lockTitleControls ? ( - <> - { __( - 'Connected to a custom field' - ) } - + <>{ lockTitleControlsMessage } ) : ( <> { __( @@ -652,11 +660,7 @@ export default function Image( { readOnly={ lockAltControls } help={ lockAltControls ? ( - <> - { __( - 'Connected to a custom field' - ) } - + <>{ lockAltControlsMessage } ) : ( <> @@ -694,7 +698,7 @@ export default function Image( { readOnly={ lockTitleControls } help={ lockTitleControls ? ( - <>{ __( 'Connected to a custom field' ) } + <>{ lockTitleControlsMessage } ) : ( <> { __(