From 43f1d78ae288ed8482412b61ee8f01ef4c27ae71 Mon Sep 17 00:00:00 2001 From: Eshaan Dabasiya <76681468+im3dabasia@users.noreply.github.com> Date: Wed, 12 Feb 2025 18:32:50 +0530 Subject: [PATCH] ESLint: Add rule to prevent usage of the word 'sidebar' in translatable strings (#68894) Co-authored-by: im3dabasia Co-authored-by: tyxla Co-authored-by: afercia Co-authored-by: swissspidy --- .eslintrc.js | 6 ++++++ .../add-custom-generic-template-modal-content.js | 1 + packages/edit-site/src/components/welcome-guide/page.js | 1 + .../edit-widgets/src/components/sidebar/widget-areas.js | 1 + .../components/post-template/create-new-template-modal.js | 1 + packages/editor/src/components/preferences-modal/index.js | 2 +- packages/editor/src/components/sidebar/header.js | 2 +- packages/editor/src/components/sidebar/index.js | 2 +- 8 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 6626a55a762d1c..d1ee2e1b347dfa 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -119,6 +119,12 @@ const restrictedSyntax = [ 'CallExpression[callee.name=/^(__|_x|_n|_nx)$/] > Literal[value=/^toggle\\b/i]', message: "Avoid using the verb 'Toggle' in translatable strings", }, + { + selector: + 'CallExpression[callee.name=/^(__|_x|_n|_nx)$/] > Literal[value=/(? diff --git a/packages/edit-site/src/components/welcome-guide/page.js b/packages/edit-site/src/components/welcome-guide/page.js index 41bb80342280cf..f9a26d99593062 100644 --- a/packages/edit-site/src/components/welcome-guide/page.js +++ b/packages/edit-site/src/components/welcome-guide/page.js @@ -57,6 +57,7 @@ export default function WelcomeGuidePage() {

{ __( + // eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts 'It’s now possible to edit page content in the site editor. To customise other parts of the page like the header and footer switch to editing the template using the settings sidebar.' ) }

diff --git a/packages/edit-widgets/src/components/sidebar/widget-areas.js b/packages/edit-widgets/src/components/sidebar/widget-areas.js index c7b49c10b97464..c34739fdd4db21 100644 --- a/packages/edit-widgets/src/components/sidebar/widget-areas.js +++ b/packages/edit-widgets/src/components/sidebar/widget-areas.js @@ -33,6 +33,7 @@ export default function WidgetAreas( { selectedWidgetAreaId } ) { let description; if ( ! selectedWidgetArea ) { description = __( + // eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts 'Widget Areas are global parts in your site’s layout that can accept blocks. These vary by theme, but are typically parts like your Sidebar or Footer.' ); } else if ( selectedWidgetAreaId === 'wp_inactive_widgets' ) { diff --git a/packages/editor/src/components/post-template/create-new-template-modal.js b/packages/editor/src/components/post-template/create-new-template-modal.js index 69d31b7f8f714e..9a89cf385ebab4 100644 --- a/packages/editor/src/components/post-template/create-new-template-modal.js +++ b/packages/editor/src/components/post-template/create-new-template-modal.js @@ -126,6 +126,7 @@ export default function CreateNewTemplateModal( { onClose } ) { placeholder={ DEFAULT_TITLE } disabled={ isBusy } help={ __( + // eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts 'Describe the template, e.g. "Post with sidebar". A custom template can be manually applied to any post or page.' ) } /> diff --git a/packages/editor/src/components/preferences-modal/index.js b/packages/editor/src/components/preferences-modal/index.js index fcca1b00e9bb2d..b8482885986989 100644 --- a/packages/editor/src/components/preferences-modal/index.js +++ b/packages/editor/src/components/preferences-modal/index.js @@ -88,7 +88,7 @@ function PreferencesModalContents( { extraSections = {} } ) { scope="core" featureName="showListViewByDefault" help={ __( - 'Opens the List View sidebar by default.' + 'Opens the List View panel by default.' ) } label={ __( 'Always open List View' ) } /> diff --git a/packages/editor/src/components/sidebar/header.js b/packages/editor/src/components/sidebar/header.js index ed2f7f89fe6e7a..b5d9aaa26707c1 100644 --- a/packages/editor/src/components/sidebar/header.js +++ b/packages/editor/src/components/sidebar/header.js @@ -22,7 +22,7 @@ const SidebarHeader = ( _, ref ) => { return { documentLabel: // translators: Default label for the Document sidebar tab, not selected. - getPostTypeLabel() || _x( 'Document', 'noun, sidebar' ), + getPostTypeLabel() || _x( 'Document', 'noun, panel' ), }; }, [] ); diff --git a/packages/editor/src/components/sidebar/index.js b/packages/editor/src/components/sidebar/index.js index 601bcd8f311bb8..6784aafeb57ff0 100644 --- a/packages/editor/src/components/sidebar/index.js +++ b/packages/editor/src/components/sidebar/index.js @@ -103,7 +103,7 @@ const SidebarContent = ( { headerClassName="editor-sidebar__panel-tabs" title={ /* translators: button label text should, if possible, be under 16 characters. */ - _x( 'Settings', 'sidebar button label' ) + _x( 'Settings', 'panel button label' ) } toggleShortcut={ keyboardShortcut } icon={ isRTL() ? drawerLeft : drawerRight }