Translating your theme

Fantasma generates a Ghost locale file for theme ZIPs. Use it when you want to adjust theme strings or prepare the theme for another publication language.

The generated file lives here:

locales/en.json

It contains translatable strings from the theme, including eligible text entered in the builder.

How the file works

Ghost locale files use the original string as the key and the translated string as the value:

{
  "Subscribe": "Subscribe",
  "Read more": "Read more"
}

Keep the keys unchanged. Edit the values.

Edit English strings

To change text while keeping the publication language as English, edit values in locales/en.json:

{
  "Subscribe": "Join now",
  "Read more": "Continue reading"
}

Upload the edited theme ZIP to Ghost after the file is changed.

Add another language

To translate the theme into another language:

  1. Copy locales/en.json.
  2. Rename the copy using the target language code, for example de.json, fr.json, or es.json.
  3. Translate the values and keep the original keys unchanged.
  4. Add the translated file inside the theme’s locales/ folder.
  5. In Ghost Admin, set the matching publication language.
  6. Upload and activate the updated theme.

Example locales/de.json:

{
  "Subscribe": "Abonnieren",
  "Read more": "Weiterlesen"
}

After downloading again

Fantasma regenerates locales/en.json when you download a fresh theme ZIP or publish a new build. If you edited locale files manually, keep a copy of your translated file and merge it into the new ZIP after downloading again.

New builder text can add new keys. Removed text can leave old translations unused. Review the locale file after major changes so translators receive the current strings.

What is not translated here

Locale files affect theme strings. They do not translate Ghost posts, pages, tags, authors, navigation labels, member emails, Portal text, or Admin settings.