The WordPress Gutenberg project’s plan for internationalization (i18n) and localization (l10n) of Full Site Editing themes (FSE) has not yet been formulated. I’ve written a proposal, entitled Internationalization and localization: translating templates and template parts, raised as Feature request #27402.
I believe that very little needs to be done to Internationalize a file containing Gutenberg blocks and HTML, and that it can be translated and localized into a statically delivered file in the user’s required locale ( language and country ) using the process described in the feature request.
This post briefly discusses some of the challenges of translating rich text content.
Last updated:December 6, 2020
I’ve been using GitHub since October 2012 but until recently I’ve had very little understanding of any working process that enables me to contribute to other projects using Pull Requests ( PRs ).
But now I’ve started to try to work with branches. Two reasons:
In this post I’ll document the process I’m using for developing PRs against Gutenberg issues.
I read the instructions on WordPress.org. They all made sense, but I couldn’t work out how to create a PR that only contained the changes I’d intended to make. While the overall effect of my PRs were the change I intended, every Pull Request consisted of multiple commits, not just the one I wanted to apply. Obviously I was doing it wrong.
I read some Stack Overflow items ( thanks Angel for directing me to them ) and discovered the git commands that appear to do the job.
I’ve now created 4 or 5 PRs using this method. And so far I’ve not had any problems. This is a good thing. I’ve just re-read the Git Workflow process and realised it’s almost exactly the same.
cd \apache\htdocs\wordpress\wp-content\plugins git clone https://github.com/bobbingwide/gutenberg.git gutenberg-source cd gutenberg-source git remote add upstream https://github.com/WordPress/gutenberg.git git fetch --all
Work in a new branch (
git checkout -b fix/%1 upstream/trunk
Now make and test changes in the new branch. Add files and commit as often as necessary, with a nice commit message, referencing the issue number each time?
git commit -m "good commit message 50-70 characters
When ready push the changes to your fork of the repository (
git push -u origin fix/%1
Theoretically this should work for any repository.
Then change back to the main branch
git checkout trunk
To keep the local repository up to date use
fetch --all. I believe this has to be done in
C:\apache\htdocs\wordpress\wp-content\plugins\gutenberg-source> git checkout trunk git fetch --all Fetching origin Fetching upstream remote: Enumerating objects: 3248, done. remote: Counting objects: 100% (3248/3248), done. remote: Compressing objects: 100% (273/273), done. Receiving objects: 100% ( Receiving objects: 100% (4749/4749), 51.99 MiB | 3.85 MiB/s, done. Resolving deltas: 100% (3648/3648), completed with 996 local objects. From https://github.com/WordPress/gutenberg ...
For the 150 or so GitHub repositories under
bobbingwide I developed all my changes in the
main branch. It’s still called
master for many of them. Then I pulled the changes to a local version in
C:\github\bobbingwide\repository-name and pushed them from there.
I had two copies of each repository. One reason for this was protection against having the repository destroyed accidentally by WordPress updates or unpacking
.zip files into other development enviroments.
Last updated:May 28, 2021
The removal of jQuery-migrate from WordPress 5.5 broke a couple of my sites. Using the Enable jQuery Migrate Helper plugin helps you to survive the issue. But it just hides the underlying problems in the same way that WordPress core had been doing up until now.
Last updated:August 25, 2020
The SB Children bock plugin, which delivers a WordPress block called Children is now available in the WordPress Block Directory.
Last updated:August 9, 2020
I’m away on vacation very soon. I’ve taken the opportunity to release another beta version of my oik-blocks plugin with a new block called Dynamic content block (
This block implements 11 of my dynamic content shortcodes delivered by the oik base plugin, hence the prefix. When it’s ready for production then I’ll deliver the block in oik v4.1.0.
Last updated:February 9, 2020
What has cloning ever done for us?Asked by: Fuzzy Duck, Ducky Fuzz and the other one
Coming up to five years ago I published my requirements for cloning content between sites. One of the planned enhancements was to support pull cloning. ie. Pulling updated content back from a slave server to the local system, providing the same content cloning functionality as for push cloning, including attachments.
I’m going on holiday to New Zealand fairly soon. I won’t be taking my laptop. I want to be able to import any changes I make on my websites back to my development machine.
Back in June 2019, when I first started writing this post, I developed a batch interface to support push, pull and reconciliation. Then I got sidelined with
Do Not Clone logic to cater for posts that get cloned both between subdomains and local and slave servers.
Over the last couple of days, I’ve written a new Slave tab for the oik options > Clone admin page. I think I’ve nearly cracked it. It even seems to work for attachments. I can Import, Pull, Push and Clone content, including re-usable blocks.
Now I’m going to find out if it really does work. Fingers crossed. I’ve packaged a new version of the plugin as v2.0.0-beta-20200127. I don’t think I need to install the plugin on my servers since the changes apply to my local development. But I might as well.
Wish me luck! PS. I will be taking backups before I do anything too drastic.
Last updated:April 21, 2021
A few months ago, having resolved to internationalize, localize and test my WordPress plugins, I started busily beavering away at a solution that will enable me to automatically deliver UK English versions of my plugins. Now that Global WordPress Translation Day #3 is fast approaching it seems timely to write up an outline of my approach. The solution involves a number of fairly well defined processes, and a lot of repetition.
Last updated:November 7, 2017