40d:Language

From Dwarf Fortress Wiki
Jump to navigation Jump to search
This article is about an older version of DF.

As you've probably noticed if you've spent much time playing DF, the language routines used for naming people, sites, regions, etc. can produce some rather nonsensical output, such as "The Lazy Sabre of Buttering". Like much of the game though, it can be modded, and, though time-consuming, can add much more character to a new civilization rather than just re-using the existing files.

language_SYM.txt[edit]

[SYMBOL]: This defines a category of words, which works with the [SELECT_SYMBOL] and [CULL_SYMBOL] arguments in the corresponding entity file to create a list of words which your civilization will prefer to use and those it will never use. For instance, dwarves by default have [SELECT_SYMBOL:ALL:ARTIFICE] and [CULL_SYMBOL:ALL:FLOWERY]. This means that dwarven surnames, placenames and group names will tend to use words in the [SYMBOL:ARTIFICE] list (such as cloister, hammer and steel) and will never use words from the [SYMBOL:FLOWERY] list (such as butterfly, meadow and velvet). Under each [SYMBOL] heading, all possible words are listed in the form [S_WORD:word].

The full list of possible SYMBOL arguments are:

  • ARTIFICE
  • ASSERTIVE
  • AQUATIC
  • COLOR
  • DEATH
  • DOMESTIC
  • EARTH
  • EVIL
  • FLOWERY
  • GOOD
  • HOLY
  • LEADER
  • MAGIC
  • MYSTERY
  • MYTHIC
  • NATURE
  • NEGATIVE
  • NEGATOR
  • NEW
  • OLD
  • PEACE
  • PRIMITIVE
  • PROTECT
  • RESTRAIN
  • ROMANTIC
  • SUBORDINATE
  • THOUGHT
  • UGLY
  • UNTOWARD
  • VIOLENT
  • WILD

In addition, there are a few special categories used only for naming civilizations, regions and sites on the world map:

  • NAME_CAVE
  • NAME_DESERT
  • NAME_ENTITY_KINGDOM
  • NAME_ENTITY_TOWN_FOUNDER
  • NAME_FOREST
  • NAME_GLACIER
  • NAME_GRASSLAND
  • NAME_HILLS
  • NAME_LAKE
  • NAME_MOUNTAINS
  • NAME_OCEAN
  • NAME_SWAMP
  • NAME_REGION
  • NAME_TUNDRA

language_words.txt[edit]

In this file, all words that the game uses for naming are listed, defined by part of speech, and then the exact form for the part of speech given (including plurals for nouns). Example:


[WORD:MOUNTAIN]
	[NOUN:mountain:mountains]
		[FRONT_COMPOUND_NOUN_SING]
		[REAR_COMPOUND_NOUN_SING]
		[THE_COMPOUND_NOUN_SING]
		[THE_NOUN_SING]
		[REAR_COMPOUND_NOUN_PLUR]
		[OF_NOUN_PLUR]
	[ADJ:mountainous]
		[ADJ_DIST:2]

In this case, the word can be used in noun or adjective form. The noun form can be used

  • at the beginning of a compound noun ("Mountain-Axe")
  • at the end of a compound noun ("Axe-Mountain")
  • as part of a compound noun directly following The ("The Mountain-Axe")
  • on its own after The ("The Mountain")
  • at the end of a compound noun, in plural form ("Axe-Mountains")
  • after Of, in plural form ("Of Mountains")


[ADJ_DIST] specifies the order that multiple adjectives in the same name appear in. Lower ADJ_DISTs will cause the word to be displayed earlier in a name; it is unknown what happens when two adjectives with equal ADJ_DISTs clash.

Racial Language files[edit]

Each racial language has its own text file with headers of [OBJECT:LANGUAGE] followed by [TRANSLATION], with an argument of DWARF, ELF, HUMAN, etc.

The rest of the file is basically a glossary, with all entries in the format [T_WORD:(WORD):(Racial word)]. So the entry

[T_WORD:MOUNTAIN:onol]

means that the game will use the word onol for mountain any time it is called for in that language. Even though each race has certain sets of words that they never use because of the preferences in their entity file, the racial glossary files distributed with the game have translations for ALL the words, presumably so that there's no problem if you want to mod in a race of dark elves that use words from the EVIL, DARK, NEGATOR, etc. lists.

Accented characters[edit]

The language files are saved in code page 437 encoding. The accented characters in the language files look like nonsense when interpreted as ASCII or ISO 8859-1, which are often the default nowadays. On Windows, viewing the language file with the Terminal font is an easy way to see it correctly.