847 lines of code to make no visible changes? Check.

Unblocking official theme translations.

847 lines of code to make no visible changes?  Check.
Photo by Luis Desiro / Unsplash

So…. the PR to swap out for the translation package behind theme translation went through earlier this week. This is the item identified previously by Hannah as a blocker for doing translation of official themes. Basically (but at 847 lines, it wasn't very basic), I set up Ghost to use i18next for theme translation (matching what's already being done elsewhere in the project), instead of an older home-built i18n package.

The PR will be in the release cut tomorrow (6.11, I think?), and should roll out to Ghost Pro next week on the usual schedule (mostly Tuesday).

IMPORTANT: None of this work changes anything you will see on your site, unless I made a mistake. It was a one for one replacement of existing functionality. Yep, if I did it perfectly, absolutely nothing will be different.

Furthermore, it’s behind a private flag, which means it isn’t live on your site unless enabled.

I would love to have some folks running in languages other than English test it out. Here’s how:

If you self-host

After upgrading to 6.11 (available tomorrow)…

  • In your config.production.json:
    "enableDeveloperExperiments": {
    "enableDeveloperExperiments": true
    }

    (Docker users and others using environment variables would set enableDeveloperExperiments__enableDeveloperExperiments to true.)
  • Restart Ghost.
  • Find and toggle the ā€œTheme Translationā€ toggle in /ghost > settings > labs to on to activate the new translations package. (Tip: You'll find additional tabs and toggles in labs. I don't recommend messing with these on sites you care about, because some are hidden because they're decidedly half-baked and may break things. Ask me how I know...)

If you are hosted by Ghost Pro

Send an email to their support address, asking to have the private themeTranslation turned on. Note that they will have lower staffing levels over the holidays, so you might want to make that request early next week.

If you are hosted by Synaps Media

Murat reports he'll be turning this feature on for all Synaps Media sites. šŸŽ‰

If you are hosted by Magic Pages

Jannis says it'll be default-enabled for everyone once 6.11 rolls out to Magic Pages, but if you want it disabled to let him know.

What to expect

Again, the expected result of turning on this private beta is absolutely no change. Don’t email me to tell me that it isn’t working when nothing obvious happens.  šŸ˜† Do email me if you notice anything translation-related that’s not right after you flip the toggle, but right when you turn it back off.

Yep. 847 lines of code, 20 files changed, and two rewrites for a PR that does absolutely nothing you can see on your site. šŸ¤£ But it’s the foundation for what comes next…

I’m hoping we’ll do official theme translation in early 2026. I’ve got a PR open, but we’ve run up against the holiday code release freeze, so it won’t be available before 2026.

If you are excited to contribute strings for Source, you can find a draft list of strings here:

Set up Source for translation by cathysarisky Ā· Pull Request #104 Ā· TryGhost/Source
This PR includes t wrapping of (I think) all text strings in Source, including adding the translatable partials.

On my to-do list is figuring out the best way to handle a set of shared strings across the official themes, so that (once we get everything wrapped for translations). Still thinking about that.


Did you read all the way to the end? Thanks, and sorry for the novel.

A small aside

I am not employed by the Ghost Foundation/Ghost Pro. I'm a community member and open source contributor who accidentally found herself managing translations. The work above was unfunded, and displaced paying work opportunities (and video games šŸŽ®, and laundry 🧦). If you’re benefitting financially from my work and would like to see more of it, please consider supporting me. Here’s my šŸ‘‰ Github sponsors page šŸ‘ˆ.

ā¤ļø A super huge shoutout to Magic Pages and Synaps Media for being monthly sponsors. I appreciate you! ā¤ļø

In case I don't manage another newsletter before the holidays, I wish you a joyous, peaceful, and/or restorative holiday season.

--Cathy