Translating BeatVortex
The information below only applies to BeatVortex versions from 0.3.1 onwards. Versions prior to 0.3.1 did not include the code necessary to support translations.
Vortex includes built-in translation support and there’s already quite a few translations available on Nexus Mods. Any of the “common” interface elements from Vortex that are used in BeatVortex (things like menus, tables and common buttons) will all use the language you specify in Settings (under Interface).
For general information on translation support in Vortex, check out the Vortex wiki
However, there’s quite a few Beat Saber-specific parts that we add to Vortex, and these won’t automatically be translated. Of particular note are the BeatMods browser, Beat Saber-specific settings and some dialogs and notifications. We’ve built support for translating these elements but that requires actual, you know, translations!
Building Translations
If you’re already familiar with Vortex (or react-i18next
-based) translations then the short version is that BeatVortex uses a separate beatvortex
namespace (and beatvortex.json
file) to get localised strings.
We haven’t worked with Vortex translations much before: please raise an issue if something doesn’t look right or needs changing!
More specifically, Vortex will usually look for a beatvortex.json
file inside %APPDATA%/Vortex/resources/locales/<ISO-CODE>
and use any translated strings it finds there, falling back to English if none is found.
Existing Translations
If you are working on, or maintaining, an existing Vortex translation, you can add BeatVortex support by adding a beatvortex.json
file to your translation package for the BeatVortex-specific strings. A loose example file that should cover most elements is available at beatvortex.dev/beatvortex_en.json that translators can use for a good starting point.
Translation
However, we’ve added an extra convention to make translations a bit easier: the extension contains a file called language_en.json with all the currently translateable English strings. When Vortex starts up, BeatVortex will load in any language_<code>.json
files it finds, so you can create a language_fr.json
file to add French translations or a language_ru.json
file to add Russian translations.
Once installed, these files will be at %APPDATA%/Vortex/plugins/game-beatsaber/
. You can manually create these files while translating.
To be clear, please try and contribute translations back to the many existing Vortex translations primarily. If there isn’t an existing translation or you’re having trouble getting translations included, only then add them directly to the extension instead.
Documentation
This documentation, like the extension code, is all open-source. If you’d like to help out with translating the documentation, you’re an amazing person! Our docs builder (Hugo with Docsy) is capable of supporting multiple languages using folders under the docs/content/
path (for example, docs/content/es
or /docs/content/de
). If you submit a PR with any translated docs, we will enable that language in our site build and your translated docs will be available when we next publish.