Introducing Yggdrasil (and Rosetta-Go/Rosetta-TS)

25 Aug 2019

Yggdrasil Rosetta-Go Rosetta-TS

In this short triple feature I’d like to talk a bit about my latest work in regards to Middangeard.

After some tinkering with Trizbort — which I discovered upon playing with adventuron — I decided a map editor of that kind would make an excellent addition to Middangeard. An IDE of some kind (later on, I intend adding a “Run” option to interactively playtest games straight from the UI) that would make creating interactive fiction a breeze.

I spent a few hours hacking away on the Trizbort source code before I stumbled upon Trizbort.io, a web UI based rewrite of Trizbort. Browsing the source code, I soon realized this would make a better basis for my plans than the regular, C# based Trizbort.

Yggdrasil is the result of this short R&D venture. A web based editor but also a more complete desktop application, with support for Windows, Mac OS and GNU/Linux.

After a few weeks of intensive work, Yggdrasil is now heading towards v0.3.0. The main focus of this release is translation/internationalization. Which brings us to two subprojects spawned as a result of my work.

Rosetta-Go and Rosetta-TS.

Rosetta-Go/Rosetta-TS are two localization libraries, for Go and TypeScript respectively. The goal of either one is to provide a Chrome i18n compatible API.

Re-using Chrome i81n will make ports to Chrome OS straightforward. Furthermore, it’s well supported by the likes of transifex and Crowdin.

The basic setup process is already similar for both implementations.

  1. Import the library.
  2. Initialize the library with a path to the locales and additional options.
  3. Create a locale-specific translation in the i18n format messages.json.
  4. Call the library’s getMessage(key: string) function with a translation specific key from the previous step.

In the following weeks I hope to refine both libraries and officially launch them (as well as Yggdrasil) on their respective platforms.

Web Demo: EnglishGerman

All three projects are available under the MIT license. Rosetta-TS is currently a part of Yggdrasil, but will be split into its own distinct repository soon. Rosetta-Go is a fork of gotrans.