Localization and Translations
Spokes supports multiple display languages so everyone on your server can use the app in the language they are most comfortable with.
This page explains which languages are currently available, how language settings work across devices, and how to request a new language or help improve existing translations.
Supported Languages
Section titled “Supported Languages”Spokes is currently available in three languages:
- English (
en-US) - French (
fr-FR) - German (
de-DE)
I speak English and French myself. German was added after being requested by a server owner.
Requesting a New Language or Helping Out
Section titled “Requesting a New Language or Helping Out”Translations are managed publicly on Crowdin at https://crowdin.com/project/spokes.
Any other language can be added and auto-translated directly on Crowdin. This makes adding a new language fast and easy, but since I cannot personally verify the auto-translation quality for languages other than English and French, I'm waiting on user requests to enable more languages. I am simply looking for users willing to give an auto-translated language a quick look over, let me know if something sounds off, or correct an issue directly when they spot one.
If you would like a new language added, or if you notice a translation mistake in an existing language, feel free to:
- Send an email to [email protected]
- Create a post on the Spokes Forum
- Suggest edits directly on the Spokes Crowdin project
Changing Your Display Language
Section titled “Changing Your Display Language”Language settings in Spokes are per user, not server-wide. Friends or family members sharing the same server can each pick their own preferred display language independently.
To change your language:
- Sign into your Spokes server.
- Open User Settings:
- On Desktop or Web: Click the Settings gear icon in the top bar.
- On Mobile: From the main screen, tap the three-dot menu icon in the top right corner and select Settings.
- Under Language & Region, choose your preferred language from the Select Language dropdown.
The interface will reload immediately in your selected language.
How Localization Works Under the Hood
Section titled “How Localization Works Under the Hood”- Synced Across Your Devices: When you select a language in User Settings, Spokes saves that preference to your user profile on the server (alongside a local browser cookie for fast page loads). Whenever you sign in on another browser, the Desktop app, or the native iOS and Android apps, Spokes automatically applies your saved language.
- Consistent Across Web, Desktop, and Mobile: Because the Web UI, Desktop client, and mobile apps render your server's interface directly, translation updates ship with server releases and apply across every platform at once.
- Resource Files and Fallbacks: Spokes stores its English source strings in a standard .NET resource file (
AppResources.resx), alongside language-specific files (AppResources.fr.resx,AppResources.de.resx). Regional variants (such asfr-CAorde-AT) automatically match their base language, and any newly added UI text that has not been translated yet falls back cleanly to English. - Independent Date and Number Formatting: Changing your display language only translates UI text. Number formatting stays consistent under the hood, and your server's configured date format in Server Settings is preserved separately.
- Crowdin Sync: Before releases, UI strings are extracted from the server codebase and synced with Crowdin, and updated translations are pulled back into the repository so they ship directly inside the Spokes Docker container.