Internationalization and localization for Terasology


Terasology offers limited support for translating labels in-game. The current state of our internationalization system (i18n) is quite limited and not widely used, though. Need to support more!

Current Situation

While we can translate basic menu strings we do not yet have a setup for game assets or "best practices" for module developers to follow. Additionally, while the Noto font from Google is in-use there's no character set switcher to go with when the user for instance switches to Arabic or Chinese.

Generally, internationalization / translation efforts can be performed by non-developers. However, in the current situation a GitHub account would be required to do so. We're looking for a non-developer friendly (regarding user experience and accessibility, e.g. web front-end) solution with low/minimal maintenance and configuration effort.

Your Project

For the topic of internationalization / translation, we propose two (mostly) independent projects that you can work on:

(1) Improve the technical support for internationalization and localization in Terasology. As part of your application you should assess the status quo of the framework used in Terasology and propose useful additions you want to implement during your GSoC project.

Your changes should

  • be directly reflected in a game mode, e.g., by using it to internationalize elements of the "Josharias Survival" gameplay template. If needed, the Terasology mentors from all over the world can help providing translations.
  • include documentation for how to use the technical framework to provide translations for game assets and other features provided by modules.

Basic knowledge of Java and JSON is recommended.

(2) Set up a user-friendly entry point for providing translations for game assets. As part of your application you should analyze the shortcomings or pitfalls we faced with using Weblate and provide an alternative solution. Your potential mentor will help to assess feasibility of the proposed solution.

Your project will include:

  • implementing the proposed solution by setting up the respective solution (service) and configuring it to work with Terasology

Experience in working with Linux and web-based services is recommended. Analytical skills are beneficial if you want to expand the project onto the Terasology module space.

An example for a potential alternatives is Crowdin - possibly in combination with Docusaurus to help support translation for our websites as well.

Problems with Past Efforts

We used to have a Weblate server that helped make it easier to translate the strings we did have internationalization support for, but that site was difficult to keep maintained and configured properly. New languages would fail to show up and the language file format was awkward at times.