Running Ghost in Another Language, Including RTL

One setting changes the language of a Ghost site, but three layers decide what actually changes: Ghost, the theme and your content. We switched one to German.

Luxe Themes 6 min read

Quick answer: One setting, under Settings → General → Publication language, changes the language of a Ghost site, and it touches three layers. Ghost’s own screens switch in any of its sixty-odd languages, the theme’s words switch only if the theme ships that language, and your posts never change. Right-to-left layout is the theme’s job, not Ghost’s, so check for it before you choose one.

You write in German, or Arabic, or Portuguese, and the site around your writing keeps saying “Subscribe” and “Read more” in English. Or you are choosing a theme and want to know whether it will speak your language before you pay for it. The language setting in Ghost is a single dropdown, and what it does is easy to misjudge in both directions.

This guide explains the three layers that setting touches, what each one changes, and where right-to-left languages fit. We switched one of our own sites to German while writing it, and the screenshots show what happened. It applies to any theme; where it depends on the theme, it says so. Our recommendation is to set the language first, see what is still in English, and judge a theme by whether it ships your language before you pay for it.

What the language setting does

Under Settings → General → Publication language Ghost offers a list of languages. Pick one and save. Three things happen, and they are worth separating, because each is handled by a different part of the system.

The page declares its language. Ghost exposes the setting to the theme. A theme that follows Ghost’s conventions writes it into the page as the language attribute search engines read. This is why the setting matters even on an English theme with English text. It tells search engines and screen readers what the content is.

Ghost’s own screens switch. The signup and account window, called Portal, the comments section, the search box, the embeddable signup form and the emails Ghost sends to members are all translated by Ghost itself. Ghost ships those strings in over sixty languages. This layer works for almost everyone with no theme involvement at all.

The theme’s words switch, if the theme lets them. Every word a theme prints that is not your content comes from the theme: “Subscribe”, “Read more”, “Page 1 of 5”, “Published with Ghost”. Ghost gives themes a way to translate those words. A theme that uses it ships a small text file per language. When your language has a file, the words switch. When it does not, the theme’s English appears.

We tested this on one of our own sites by switching the language to German and reloading. The page’s language attribute changed to German. The theme’s buttons and links changed, because the theme carries a German file. And the signup window, which is Ghost’s own, came up in German with no theme involvement.

Ghost's Portal signup window on a Luxe Themes demo site after the publication language was set to German, showing the site's logo and German text saying the site is invite-only and offering an Einloggen link for existing members

What did not change was every post. The titles, the excerpts and the articles stayed in the language they were written in, because that is content, and no setting translates content.

What the theme has to bring

The theme layer is where sites differ, so it is the layer to check before choosing a theme.

Ghost’s translation documentation describes the mechanism. A theme wraps each of its own words in a translation helper and ships a folder of language files, one per language. Each file is a list of English phrases and their translations. Ghost picks the file that matches the publication language. If a phrase is missing from the file, or the file does not exist, the English phrase is shown instead. A partly translated theme degrades gracefully rather than breaking.

Two consequences follow. A theme’s language support is a list, and it is worth reading. A theme with files for twenty languages speaks twenty, and a theme with none speaks English whatever you set. And the translations are the theme maker’s wording, which you may want to adjust. Both the file and the wording are inside the theme, which brings the usual trade-off. An edit to a theme file is lost on the next theme update, so keep a note of any changes you make there. Our theme update guide covers what survives an update.

For a word or two, there is a lighter route. A short piece of CSS or script in Settings → Advanced → Code injection can replace the visible text of a specific element without touching the theme. It survives updates. Our snippet for the search placeholder is an example of the pattern.

Right-to-left languages

Ghost’s own screens handle right-to-left text in the languages that need it, and Arabic, Hebrew, Persian and Urdu are all in the language list. The rest of the page is the theme’s responsibility. A page is laid out left to right unless something tells the browser otherwise, and that something has to come from the theme. It reads the language setting and, for a right-to-left language, switches the direction of the whole document. It then mirrors the layout, the navigation and the alignment to match.

A theme that does this will say so, usually in its documentation under a heading about languages or right-to-left support. A theme that does not will show your Arabic or Hebrew text correctly inside each paragraph, because browsers handle that on their own. The page structure stays built for left-to-right reading, with menus on the wrong side and alignment fighting the text.

For the technical reader: the usual convention is that the theme sets dir="rtl" on the document based on the site locale, and its stylesheet uses logical properties or mirrored rules so margins and floats follow the direction. Forcing the direction through code injection with a single CSS rule flips the text but not a layout written for left-to-right, so treat it as a stopgap.

Publishing in more than one language

The language setting is one value for the whole site, so a site cannot switch its interface per post. Two situations come up.

The same content, translated. When every post exists in both languages as a translation, Ghost’s documentation points to a translation service that sits in front of the site and serves each visitor their language. Nothing changes in Ghost itself.

Different content in each language. Ghost’s documentation recommends one Ghost site per language. Each site has its own language setting, its own theme translation, its own newsletter and its own audience, and nothing has to be worked around. It is the cleaner answer for most publications.

Both languages on one site. This is possible with tags. Tag posts by language and give each language its own collection or homepage section through the routes file. The interface, the newsletter signup and the emails stay in the one language you set. Readers of the other language get correctly written posts with the site’s furniture in the wrong language around them. That is a workable compromise for a bilingual personal site and a poor one for anything larger.

Ghost’s admin, the screens you use to write and manage the site, is English only. The setting changes what readers see, not what you see.

Where this leaves you

You know which of the three layers the language setting touches, and that the one which varies is the theme. Before choosing a theme for a language other than English, read its language list and, if you need it, its right-to-left support; both should be plainly stated. Our Ghost themes state the languages they ship, and the newer ones say where right-to-left layout is supported. If the setting is done and the newsletter is next, the Ghost newsletter guide picks up from here.

Frequently Asked Questions

How do I change the language of a Ghost site?
Under Settings, then General, then Publication language, pick the language from the list and save. Ghost's own screens, such as the signup window, comments, search and member emails, switch immediately. The theme's own words switch if the theme ships a translation for that language. Your posts stay in whatever language you wrote them.
Does Ghost translate my posts?
No. The language setting changes the interface, not the content. If you publish the same content in two languages, Ghost recommends a translation service that sits in front of the site. If you publish different content in each, Ghost recommends one site per language; tags and a separate homepage section per language are the workable alternative on one site.
Does Ghost support right-to-left languages?
Ghost's own screens do, and the language list includes Arabic, Hebrew, Persian and Urdu. Whether the rest of the page flips is up to the theme: a theme has to read the language setting and switch its layout direction. Check the theme's documentation for right-to-left support before choosing it.
Can I change the words a theme uses, like Subscribe or Read more?
Yes. Those words come from the theme's translation file for your language, a small text file inside the theme. You can edit the file and re-upload the theme, which has to be redone on each update, or override a word or two with code injection. If a theme has no file for your language, the English text appears.

Keep reading

Recommended Themes

Themes with at least one of the features this guide touches: multi-language support and RTL support.

Comparing options? Browse all premium Ghost themes side by side.

Get every theme in one bundle

The complete Luxe Themes bundle: every theme, one purchase.

$249