Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The HTML within a paragraph gets converted into a translation string on theme save #573

Closed
pshemek opened this issue Apr 19, 2024 · 7 comments · Fixed by #719
Closed

The HTML within a paragraph gets converted into a translation string on theme save #573

pshemek opened this issue Apr 19, 2024 · 7 comments · Fixed by #719
Assignees
Labels
bug Something isn't working [Priority] High

Comments

@pshemek
Copy link

pshemek commented Apr 19, 2024

I ended up with:

<!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"500"}}} -->
<p style="font-style:normal;font-weight:500">
<?php echo __('<a href="mailto:[email protected]" data-type="mailto" data-id="mailto:[email protected]">[email protected]</a><br>Tel.: +48 000 000 000', 'mytheme');?>
</p>
<!-- /wp:paragraph -->

while the more desirable would be:

<!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"500"}}} -->
<p style="font-style:normal;font-weight:500">
<a href="mailto:[email protected]" data-type="mailto" data-id="mailto:[email protected]"><?php echo __('[email protected]', 'mytheme'); ?></a><br><?php echo __('Tel.: +48 000 000 000', 'mytheme');?>
</p>
<!-- /wp:paragraph -->

I am aware it may be difficult to implement, but I'm just reporting the situations when I was forced to edit the generated template or pattern manually to make it deliverable.

I'm not even sure that every paragraph should be converted into a translation, but I have no idea how we could distinguish between the ones we want and the ones we don't.

@pbking
Copy link
Contributor

pbking commented Apr 19, 2024

Oh, great example! Thanks for logging.

Yes, I can see how this could be improved to ensure that it's only the content of elements (and not the entire nested elements) that need to be escaped.

@creativecoder
Copy link
Contributor

It looks like WP_HTML_Tag_Processor doesn't yet support parsing or operating on child nodes, unfortunately, which would make this easier to solve. But I do believe that functionality is planned for the future.

@mikachan mikachan added the bug Something isn't working label Jun 20, 2024
@mikachan mikachan moved this from Bugs to Todo in Create Block Theme Release Planning Jul 2, 2024
@shivapoudel
Copy link

I have a paragraph with links and while saving translation it escapes and presents me the anchor markup within a paragraph. Is there any way we can escape that translation with comments?

@iamtakashi
Copy link

I've just experienced this with the theme I'm working on now. It'd be great if the issue gets resolved soon. I appreciate any help you can provide.

@iamtakashi
Copy link

@mikachan, Could anyone from the team please look into this issue? We have to fix it manually every time we save the theme.

<p><a href="#">Watch</a> Djokovic vs. Alcaraz with live commentary</p> becomes

<p><?php esc_html_e('<a href="#">Watch</a> Djokovic vs. Alcaraz with live commentary', 'tiebreak');?></p>

@mikachan
Copy link
Member

mikachan commented Oct 9, 2024

Thanks for the ping, @iamtakashi. We have a potential fix in #719, although finding a good solution is difficult. However, I'm hoping we'll be able to merge that PR soon.

@iamtakashi
Copy link

Thanks for your response, @mikachan. The PR makes me feel a little relieved. I, too, hope that fixes the issue! It has been a headache for themers for a while.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working [Priority] High
Development

Successfully merging a pull request may close this issue.

7 participants