Localization
Gravity supports client-side localisation with the i18next package. The section explains how to translate the client side UI.
Refer to the server-side localization section to learn how to translate the server-side code.
Locale Files
Locale files are stored inside the /src/locales
folder, and each language has its own folder of .json
files. The locales are split to match the same structure as the views.
All .json
files inside each locale folder are automatically imported and combined, so you can add more JSON files without explicitly importing them anywhere.
The locale files are simple JSON files containing the strings. The keys are always the same (in English) as these are referenced in the code. The string changes depending on the language.
Adding More Locales
Pro tip – ask ChatGPT to translate the JSON files to new languages.
Create a new folder inside the
/locales
file with the local name eg./fr
and add your JSON files.Import the locale to
app.js
and add it to theresources
section of the i18nconfig
.
Performing Translations
Translations can be performed in three ways:
Using the
useTranslation
hook (available anywhere)Using
props.t
(available in allView
components inside/views
)Using
ViewContext
(available anywhere)
Table Translations
To translate the table headers, you can pass the a string reference to the translation object to the translation
prop of the <Table/>
. The JSON object should be named header
.
Switching Languages
There is a language switcher component at the top right of the UI for changing the language. You can add more languages to the dropdown in /components/locale
. You will need to import any additional flags you want to use.
Last updated