Skip to content

i18n: Preserve block attribute encoding - #863

Open
MaggieCabrera wants to merge 1 commit into
trunkfrom
codex/i18n-preserve-block-attribute-encoding
Open

i18n: Preserve block attribute encoding#863
MaggieCabrera wants to merge 1 commit into
trunkfrom
codex/i18n-preserve-block-attribute-encoding

Conversation

@MaggieCabrera

Copy link
Copy Markdown
Contributor

Summary

Preserve WordPress Core’s encoding for block attributes during localized export.

Only localized values are substituted after serialization, leaving all other attributes encoded consistently with Core.

Test plan

  • vendor/bin/phpunit -c phpunit.xml.dist --verbose --filter CBT_Theme_Locale_EscapeBlockAttributes
  • vendor/bin/phpunit -c phpunit.xml.dist --verbose --group locale
  • vendor/bin/phpcs --standard=phpcs.xml.dist includes/create-theme/theme-locale.php tests/CbtThemeLocale/escapeBlockAttributes.php
  • Confirmed localized labels still work and encoded sibling attributes remain unchanged in generated pattern PHP.

@MaggieCabrera MaggieCabrera self-assigned this Aug 20, 2026
@MaggieCabrera
MaggieCabrera requested a lite review from Copilot August 20, 2026 15:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adjusts localized export handling so block attribute JSON retains WordPress Core’s canonical encoding for non-localized attributes, while still substituting localized attribute values after serialization.

Changes:

  • Update CBT_Theme_Locale::escape_block_attribute_strings() to re-serialize attributes via serialize_block_attributes() and then replace localized values using unique placeholders.
  • Add a unit test ensuring sibling (non-localized) attributes keep Core’s encoding (e.g., \u003c, \u0022, \u002d\u002d) while localized values are still injected.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
includes/create-theme/theme-locale.php Reworks attribute re-encoding to preserve Core encoding and only substitute localized values post-serialization.
tests/CbtThemeLocale/escapeBlockAttributes.php Adds regression coverage to confirm non-localized attributes remain Core-encoded after localization processing.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants