Skip to content

Language Translations

TazUO’s interface text is powered by TazLang, a simple localization system. All UI strings live in plain-text .ini files in the client’s Data/ folder, so you can translate TazUO into any language by copying and editing one file.

NOTE: This is an ongoing process, many strings are not present here yet.

Language files are stored in the Data/ folder next to the TazUO executable and are named:

language.{CODE}.ini

Where {CODE} is a short language code, for example:

Data/language.EN.ini -> English
Data/language.DE.ini -> German
Data/language.FR.ini -> French

The English file (language.EN.ini) is created automatically the first time you run TazUO. It is the master list of every translatable string, so it’s the best starting point for a new translation.

  1. Go to the Data/ folder and copy language.EN.ini.
  2. Rename the copy to language.{CODE}.ini using your language’s code (e.g. language.DE.ini).
  3. Open it in any text editor (save it as UTF-8 so accented characters work).
  4. Translate the text on the right side of each =. Leave the keys (left side) and any placeholders unchanged.
  5. Save the file.
  1. Launch TazUO and open the Edit settings window (from the login screen).
  2. Find the UI Language dropdown — any language.*.ini file in Data/ shows up here automatically.
  3. Pick your language.
  4. Restart TazUO — language changes take effect on the next start.

Each line is a key=value pair. You only ever translate the value.

; Lines starting with a semicolon are comments and are ignored.
accountname=Account Name
music=Music
options=Options
uoversion=UO Version {0}.
  • Don’t change the keys. accountname, music, etc. must stay exactly as-is. Only translate the text after the =.
  • Keep placeholders. Things like {0} and {1} are filled in by the game (for example a version number). Keep them in your translated text — you may move them to wherever they read naturally in your language.
    uoversion=Version UO {0}.
  • Newlines: use \n to insert a line break inside a string.
    autostatlock_desc=Adjusts stat locks automatically.\nNote: Equipment bonuses may also trigger this.
  • Literal backslash: write \\ if you need an actual backslash character.
  • Blank lines and comments (; ...) are fine — use them to keep things organized.
  • Save as UTF-8 to preserve accents and special characters.

Your translation file is checked for correctness on every launch (there is no longer a _version= number to track): any new strings are added with their English defaults, and any keys that no longer exist upstream are removed — all without overwriting the text you’ve already translated for keys that still exist.

So after an update, just reopen your language.{CODE}.ini and translate any new English lines that appeared.

Not everything is translatable through language.ini. Spell names, reagent names, and magic circle names now come from the server’s cliloc strings whenever the server provides them, falling back to the built-in English strings otherwise — so those names match what the server itself displays and are not controlled by language.ini.

Previously separate resources were also folded into the TazLang system: the old ResGump, ResGeneral, and ResErrorMessages string sets now live in language.ini alongside everything else, so they are translated in the same file.

  • Copied language.EN.ini and renamed it language.{CODE}.ini
  • Translated values only, left keys untouched
  • Kept all {0} / {1} placeholders
  • Saved as UTF-8
  • Selected the language in UI Language and restarted