How to set a french site


I just set up my Ghost (Pro) free trial, downloaded the Lyra theme to set the membership, all is fine. Love it.

My site is and content will be in french.

Following the simple steps here, I replaced EN (default) by FR.

And my site is still in english, example ‘‘Log in’’, ‘‘Subscribe’’, etc.

Thanks for your help!

You need to translate you theme as well… Ghost has a great guide on this check out the link below

1 Like

Thanks. It’s just that I use Ghost (Pro). I installed it with the one-click feature. I don’t host it locally or anything. Therefore, I don’t clearly understand the tutorial. Is there a step I should do before that? Do I need to install Ghost locally?

Hi @FrankD,

First of all its not necessary to have local ghost install to add a language to the site. You can do it on ghost pro as well… But it needs some manual tweaking & its better if you are comfortable with coding…

First Part

  • Download your current theme which is Lyra from your Ghost Admin
  • Unzip the folder
  • Now create a folder called locales inside the root folder of your theme
  • Now create a file called fr.json inside the locales folder
  • on that json file you can define Key & values of translations see example below
  "Subscribe": "souscrire",
  "Signin": "se connecter",
  "Sign up": "S'inscrire"

  • Like above list all the texts you want to translate
  • then Save the file

Next part

Now you have to use {{t}} helper in your theme files in order to get the texts from the json file…

For example lets make the Login & Subscription texts work with translated text.

To do that we need to find first where is that text Login & Subscribe coming from… In Lyra Theme that piece of text sits in the following file

partials/site-nav.hbs Go below & you will see something link this

<a class="signin-link" href="{{@site.url}}/signin/">Log in</a>
<a class="button primary small header-cta" href="{{@site.url}}/signup/">Subscribe</a>

Now we have to replace the hardcoded text with the Lang Keys we have defined on json file with the help of {{t}} helper as below instead of hard coded text

<a class="signin-link" href="{{@site.url}}/signin/">{{t "Signin"}}</a>
<a class="button primary small header-cta" href="{{@site.url}}/signup/">{{t "Subscribe"}}</a>

Then save the file . & rezip the theme folder again & reinstall the updated theme to your ghost & the updated texts will be translated.

Note: if you need to translate more texts then just add the translation key & value to json file & replace the Hardcoded texts with the translation key from json file…

Hope this helps you…

Let me know if you have any questions


1 Like

Thanks so much for your time!

So far I found all these words.

    "Back": "Retour",
    "Newer Posts": "Articles récents",
    "Older Posts": "Articles anciens",
    "Page {page} of {pages}": "Page {page} sur {pages}",
    "Subscribe": "S'abonner",
    "Subscribe to": "S'abonner à",
    "Subscribed!": "Abonné !",
    "with the email address": "avec l'adresse courriel",
    "Your email address": "Votre adresse courriel",
    "You've successfully subscribed to": "Vous êtes abonné avec succès à",
    "A collection of posts": "Une catégorie d'articles",
    "A collection of 1 post": "Une catégorie avec un article",
    "A collection of % posts": "Une catégorie avec % articles",
    "Get the latest posts delivered right to your inbox": "Recevez les derniers articles directement par courriel",
    "Go to the front page": "Aller sur la page d’accueil",
    "Latest Posts": "Derniers articles",
    "Message:": "Message :",
    "<a href='{url}'>More posts</a> by {name}": "<a href='{url}'>Plus d'articles</a> par {name}",
    "No posts": "Aucun article",
    " (Page %)": " (Page %)",
    "Read More": "En savoir plus",
    "Read <a href='{url}'>more posts</a> by this author": "Lire <a href='{url}'>plus d'articles</a> de cet auteur",
    "Ref:": "Réf. :",
    "See all % posts": "Voir les % articles",
    "Share this": "Partager",
    "Stay up to date! Get all the latest & greatest posts delivered straight to your inbox": "Restez à jour ! Recevez tous les derniers articles directement dans votre courriel.",
    "This post was a collaboration between": "Cet article est le fruit d’une collaboration entre",
    "": "",
    "1 post": "Un article",
    "% posts": "% articles",
    "1 min read": "1 min de lecture",
    "% min read": "% min de lecture"
    "<strong>Great!</strong> Check your inbox and click the link to confirm your subscription.": "<strong>Bien !</strong> Vérifiez vos courriel et cliquez sur le lien pour confirmer votre abonnement.",
    "Please enter a valid email address!": "Svp entrez une adresse courriel valide",
    "Signed in as": "Se connecter en tant que",
    "Account": "Compte",
    "Log out": "Se déconnecter",
    "Great! Next, complete checkout for full access to": "Bien ! Ensuite, compléter le paiement pour avoir accès à",
    "Welcome back! You've successfully signed in.": "Hey salut! Vous vous êtes connecté avec succès",
    "Success! Your account is fully activated, you now have access to all content.": "C'est réussi! Votre compte est actif, vous avez maintenant accès à tout le contenu",
    "Success! Your billing info is updated.": "C'est réussi! Vos informations de facturation sont mises à jour",
    "Billing info update failed.": "Échec de la mise à jour des informations de facturation."

I have to be find them all in the theme files. I’ve done a few so far, zip the files and uploaded it back to Ghost and I still don’t see the translations after 10+ min. Does it become live right away?

Some times it’s cache issue… Clean your browser cache or check on incognito mode…

& A restart of your ghost instance is the better way to check… Since you are using ghost pro you should ask ghost support if they can restart your instance or what to do if the updates are not reflecting on the site …

One more thing… You can shuffle the theme to check if the updates reflecting on your site … I mean from admin set the default theme to Casper & few seconds later switch it to lyra & check on front ent it the language updates reflecting on your site or not

Cleared cache and check on incognito mode + try switching the theme Casper to Lyra and still in english. I’ll contact the support team if they can restart the instance or something. Thanks again!

You are welcome

Just want to say that the support team helped me the same day I contact them. There was an issue with a comma or something. Love Ghost!

Cool! … Glad your issue is resolved…

1 Like

I didn’t see it but there is already a Lyra theme translated in french.

Would have been much easier :sweat_smile:

Merci @Chicotagada

1 Like

Tu m’étonnes :joy:

Je t’en prie @FrankD :slight_smile: