Internationalization

From ZDoom Wiki
Jump to navigation Jump to search
The Oracle from Strife, now speaking in Korean.

Internationalization in software is extensive support for other languages. Since version 4.0, GZDoom has completely overhauled its internationalization and localization system, allowing to use MiniWikipediaLogoIcon.pngUnicode strings. In addition, systems have been added to allow overriding strings hardcoded in game data, such as text printed by ACS in Hexen, or character dialogue in Strife, so as to make them translatable.

Character rendering

Doom and other games using its engine made use of distinctive bitmap fonts, as did most games from the 1990s. These fonts are an important part of the game's visual identity, and painstaking efforts were used to preserve them whenever possible. This meant drawing additional characters in the same style in the Latin and Cyrillic alphabets, for a dozen different fonts spread across Doom, Heretic, Hexen, Strife, and Chex Quest.

For some writing systems, however, notably the MiniWikipediaLogoIcon.pngCJK characters, the prospect of providing hand-drawn glyphs for every character in over a dozen font variations is not realistic. For this reason, when a bitmap font is not available for the language requested, the engine falls back to a "complete" vector font, with an added outline approximating the look of the original bitmap fonts in most supported games.

Note that the engine still only supports left-to-right writing. Right-to-left writing systems, such as those used in Arabic, Hebrew, Persian, or Urdu, are therefore not supported.

Existing translations

Complete

The customize controls menu in Russian.
Various items being picked up in Spanish.

The following languages are considered complete enough for inclusion in the standard GZDoom distribution.

Language Code MiniDoomLogoIcon.png MiniDoom2LogoIcon.png MiniHereticLogoIcon.png MiniHexenLogoIcon.png MiniStrifeLogoIcon.png MiniChex3LogoIcon.png MiniHacxLogoIcon.png MiniHarmonyLogoIcon.png
Czech cs
Finnish fi
French fr
German de
Italian it
Japanese jp
Korean ko
Polish pl
Portuguese (Portugal) ptg
Portuguese (Brazil) pt
Russian ru
Serbian sr
Spanish (Castilian) es
Spanish (Latin American) esm

In progress

The following languages are not considered complete enough to be included in GZDoom distribution yet.

Language Code MiniDoomLogoIcon.png MiniDoom2LogoIcon.png MiniHereticLogoIcon.png MiniHexenLogoIcon.png MiniStrifeLogoIcon.png MiniChex3LogoIcon.png MiniHacxLogoIcon.png MiniHarmonyLogoIcon.png
Greek el
Hungarian hu
Romanian ro

Translating GZDoom into your language

Korax taunting you in French.

It is worth noting that anyone can contribute to GZDoom's localization project, and fluent speakers who wish to contribute to both complete and incomplete languages are welcome. The following two spreadsheets contain all localized text data in GZDoom, along with all respective translations (both complete and works in progress):

  1. Engine strings
  2. Game strings

You can also help by contributing graphics for the missing glyphs in the various fonts. It is possible that your language will require additional characters to be drawn.

More details can be found in this forum topic, which describes in detail how to contribute to the translation of a new language, or improving an existing one.

See also