Skip to content

Language

Where: the flag in the top bar — in the mobile drawer below 768 px

UseNadia is French by default. Not “French if the browser asks for it”: French is what anyone without an explicit preference gets, anonymous visitor or signed-in account alike.

Click the flag in the top bar. A Change Language dialog opens with a grid of every language the app knows, each as a flag and its name written in that language (Français, English, Polski…); the current one is outlined. Pick one and the interface switches at once.

The choice is saved in two places: a cookie in this browser, so the login screen already speaks your language, and your account, so it follows you to another machine. Changing it on the login screen, before you are signed in, only sets the cookie.

  • The interface. Every string goes through the translation layer, and a string missing from a language file falls back to French — so a stray French sentence in an English screen is a missing translation, not a setting.
  • Transactional emails. Activation, password reset, publish success and failure (see Settings for the toggles). They are sent in the language on the account — French when none is set, which is why an activation e-mail arrives in French unless you chose otherwise before signing up.

It does not cover this documentation, which is written in English.

Three are translated in full and maintained: French, English and Polish. The dialog also lists Hebrew, Russian, Chinese, Spanish, Portuguese, German, Italian, Japanese, Korean, Arabic, Turkish and Vietnamese: they come from the original project and are kept rather than deleted, but nothing added to UseNadia is translated into them, so an interface in one of those shows French wherever the original project’s translation stops. Hebrew and Arabic switch the interface to right-to-left.

A string added to the interface has to exist in the French, English and Polish translation files, or the interface silently shows French for it. CI enforces this: the translation checks fail on any new English string in JSX, a placeholder, a toast, an email or a notification, and on any key missing from the Polish file.

Strings inherited from the original project are frozen in a baseline that is only ever allowed to shrink.