Language Translated Unfinished Unfinished words Unfinished characters Untranslated Checks Suggestions Comments
English LGPL-3.0-or-later 100% 0 0 0 0 5 0 2
Bulgarian LGPL-3.0-or-later 0% 393 557 2,861 393 0 0 0
Chinese (Simplified Han script) LGPL-3.0-or-later 100% 0 0 0 0 1 0 0
Chinese (Traditional Han script) LGPL-3.0-or-later 0 0 0 0 0 0 0
French LGPL-3.0-or-later 17% 324 462 2,368 324 1 0 0
German LGPL-3.0-or-later 14% 336 482 2,450 336 1 0 0
Hungarian LGPL-3.0-or-later 0% 393 557 2,861 393 0 0 0
Italian LGPL-3.0-or-later 43% 222 350 1,745 222 1 0 0
Japanese LGPL-3.0-or-later 19% 318 426 2,157 318 5 0 0
Korean LGPL-3.0-or-later 99% 1 1 5 1 0 0 0
Norwegian Bokmål LGPL-3.0-or-later 0% 393 557 2,861 393 0 0 0
Polish LGPL-3.0-or-later 0% 393 557 2,861 393 0 0 0
Portuguese LGPL-3.0-or-later 99% 1 1 5 1 4 0 0
Portuguese (Brazil) LGPL-3.0-or-later 100% 0 0 0 0 1 0 0
Russian LGPL-3.0-or-later 0 0 0 0 0 0 0
Spanish LGPL-3.0-or-later 44% 219 339 1,702 218 0 2 0
Tamil LGPL-3.0-or-later 0 0 0 0 0 0 1
Turkish LGPL-3.0-or-later 96% 12 44 249 2 0 0 0
Ukrainian LGPL-3.0-or-later 0% 393 557 2,861 393 0 0 0
Please sign in to see the alerts.

Summary

Project website wohlsoft.ru/projects/TheXTech
Instructions for translators

There are two counterparts that can be translated: the game itself, and the game launcher on Android. They has different formats and concepts.

About WebLate components:

  • Android launcher (strings) - There are text lines used in the launcher UI on Android.
  • Android launcher (values) - There are menu items, combo boxes values, etc. They appear at the settings dialogue of the launcher on Android.
  • Engine General - There are common strings used at the game itself (such as menu items, internal messages, etc.). Pay major attention on the string length, feel free to use shortenings in these strings that may not fit into the UI (you always can verify your translations to ensure everything is correct and clean, the related manual is below).
  • Engine Assets-specific - There are strings that may different among different games: there are things like character names, in-game item names and titles, etc. The generic variant is being used as a template for other per-game variations of this component.

How to test WebLate-done translations in action?

  • Download translation files of the WebLate project using the Files / Download as ZIP menu item
  • Open the ZIP archive, navigate to the engine-general / resources / languages directory, you should find a pile of JSON files
  • Take translation files of the necessary language (thextech-xx.json and assets-xx.json) and put them into your game pack's languages sub-directory
  • Edit the fresh assets-xx.json and rename playable character names and "stars" term into the context of your game pack if you don't want to see default placeholders like "Char 1", "Char 2", etc. (for example, if it's the game based on the SMBX universe, character names should be Mario, Luigi, Peach, Toad, Link, and stars should remain as "Stars"; and if your game pack is based on the A2XT, then, characters will be Demo, Iris, Kood, Raocow, Sheath, and stars will be "Leeks").
  • Tip: It's highly recommended to use the latest development version of the game as the current state is a representation of the main repository's current state. The set of presented string keys may be different between stable and in-development versions, and therefore some strings may appear not-yet-translated because of string keys mismatch between different versions of the engine.
  • Try to run the game, and switch the language that you want and make sure everything is fine.
  • If you find any incorrectness, then you can quickly find the string in the WebLate and fix it once and forever. You can also tweak the translation file manually via any convenient plain text editor.

Manual translation (out of WebLate)

If you have any troubles to use the WebLate, you also can perform the translation through the manual editing of translation files shipped with the main source code repository and submit your updates back to the main repository via pull-requests.

So, how to translate the game's launcher for Android:

  • Find at project's root the android-project/thextech/src/main/res directory.
  • Find the "values-*" directories: every directory contains translation files for every language (right now there are strings.xml and arrays.xml).
  • Use the content of "values" as a reference with the default English translation.
  • To add a new language, make the "values-*" directory that will have the identification of the target language, then copy strings.xml and arrays.xml from the "values" directory.

And, how to translate the game itself:

  • At the repository, there are JSON files at the resources/languages directory.
  • Put the content of this directory at the root of assets directory (JSON files should be placed into the lanuguages sub-directory)
  • The translation system will work in only condition when new fonts are presented at the assets directory.
  • If you build the engine in debug mode, you will have an ability to reload translations on the fly by pressing the F5 button (on release builds this feature is unavailable).
  • There re "engine" and "assets" translations: The first one is a general translation for the engine itself and the rest of its stuff. And the "assets" translation contains a lot of game specific terms like character names and titles of the game universe related aspects. So, it will have a different form among different games. However, you can translate the general version which is intended to be used as a reference for the future.
  • During the translation work, pay the major attention on the length, in some cases you will need to use shortenings to avoid overlaps or cut offs of the text, etc.
Project maintainers2 User avatar WohlstandUser avatar ds-sloth
Translation license GNU Lesser General Public License v3.0 or later
Translation process
  • Translations can be made directly.
  • Translation suggestions can be made.
  • Any authenticated user can contribute.
  • The translation uses monolingual files.
  • The translation base language is editable.
Source code repository https://github.com/TheXTech/TheXTech
Repository branch main
Last remote commit player_warp_logic.cpp: only freeze WarpCD timer on current warp (#1078) 198a6516
User avatar ds-sloth authored 02/13/2026
Last commit in Weblate player_warp_logic.cpp: only freeze WarpCD timer on current warp (#1078) 198a6516
User avatar ds-sloth authored 02/13/2026
Weblate repository https://hosted.weblate.org/git/thextech/engine-general/
File mask resources/languages/assets_*.json
Monolingual base language file resources/languages/assets_en.json
01/11/2026

String statistics

Strings percent Hosted strings Words percent Hosted words Characters percent Hosted characters
Total 7,467 10,583 54,359
Source 393 557 2,861
Translated 54% 4,069 53% 5,693 54% 29,373
Needs editing 1% 11 1% 14 1% 67
Read-only 0% 0 0% 0 0% 0
Failing checks 1% 19 1% 20 1% 92
Strings with suggestions 1% 2 1% 2 1% 12
Untranslated strings 45% 3,387 46% 4,876 45% 24,919

Quick numbers

10,583
Hosted words
7,467
Hosted strings
54%
Translated
0
Components
19
Languages
19
Translations
0
Screenshots
and previous 30 days

Trends of last 30 days

Hosted words
+100%
Hosted strings
+100%
Translated
+54%
Contributors
User avatar weblate:commit

Changes committed

Changes committed 01/10/2026
User avatar weblate:commit

Changes committed

Changes committed 01/10/2026
User avatar LoveBodhi

Translation changed

01/10/2026
User avatar LoveBodhi

Translation changed

01/10/2026
User avatar LoveBodhi

Translation changed

01/10/2026
User avatar LoveBodhi

Translation changed

01/10/2026
User avatar LoveBodhi

Translation changed

01/10/2026
User avatar LoveBodhi

Translation changed

01/10/2026
User avatar LoveBodhi

Translation changed

01/10/2026
User avatar LoveBodhi

Translation changed

01/10/2026
Browse all component changes