The official Luanti website, living at www.luanti.org.
rem units, hsl colors.This site uses the Eleventy static site generator.
nvm. First install nvm,
and then run nvm use whenever you open the project.npm install.npm start to serve the website locally.When working on new features, keep in mind this website only supports evergreen browsers:
Internet Explorer isn't supported.
Unfortunately, Weblate is not yet available. In the meantime, you can translate by GitHub Pull Request.
Clone the Git repo
Find out your language code https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes
Copy locales/en/translation.json file to your language. For example, locales/fr/translation.json for French.
Update the values of the JSON file, leaving the keys in English. So it should be of the form "English": "Translated" so:
{
"Hello {{name}}": "Bonjour {{name}}"
}
You can use a desktop application like PoEdit to easily edit this JSON file.
In case you need to know, this is the i18next JSON format.
(Optional) If you've 100% completed your translation, you can enable it like so:
content/fr to content/LANG_CODE where LANG_CODE is your language code.content/LANG_CODE/fr.json to content/LANG_CODE/LANG_CODE.json.content/LANG_CODE/LANG_CODE.json to have "lang": "LANG_CODE".Create a PR for your updates. Alternatively, send the translation.json to rubenwardy.
Luanti.org uses i18next for translations. This is exposed to liquid templates by a custom i18n filter:
{{ "Hello world" | i18n }}
As double curly braces are used by liquid, use double square braces instead:
{{ "Hello [[name]]" | i18n: "name", "Bob" }}
When Eleventy builds the website, it'll update the locales/en/translation.json
file with any new strings it finds. It'll replace [[name]] with {{name}} to
match i18next's interpolation syntax:
{
"Hello {{name}}": "Bonjour {{name}}"
}
locales/en/translation.json to {} and save.npm start.locales/en/translation.json.Copyright © 2015-2025 Hugo Locurcio, rubenwardy, and contributors
Unless otherwise specified, code is licensed under the MIT license. Media (except gallery) and content are licensed under CC BY-SA 3.0 Unported.
Gallery screenshots are by various authors and are credited on the webpage.