v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "Language token"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
m (→‎SYMBOL: Creating a page with the vanilla symbols for quick reference)
(DFLang, and how to avoid its pitfalls)
 
(13 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Quality|Exceptional|21:42, 17 May 2015 (UTC)}}
+
 
 +
{{Quality|Fine}}
 
{{av}}
 
{{av}}
 +
{{Modding}}
  
'''Language tokens''' are used within the language_*.txt raw files. Each token is permitted in a specific context.
+
'''Language tokens''' can be used to adjust existing [[language]]s or create a whole new languages. Vanilla language definitions can be found in <code>[[Game folder|<Dwarf Fortress>]]\data\vanilla\vanilla_languages\</code> within the language_*.txt raw files. Each [[token]] is permitted in a specific context.
 +
 
 +
Note: All language [[raw file]]s use [[Character table|Code Page 437]] encoding, and you should make sure you are editing these files in that format. As many text editors default to UTF-8, some characters with diacritical marks may fail to show properly. Saving one of the default language raw files in this state will overwrite these characters with the Unicode question mark, which will corrupt the file. To fix this replace the file with a clean one downloaded from the distributed version of DF.
 +
 
 +
{{Urist asks|q=I want to create a language for my [[Entity token|custom civilization]]. Are there any programs built to support the in-game dictionary?|a=
 +
You can generate a language with [http://www.bay12forums.com/smf/index.php?topic=47332.0 DFLang] from a list of sample words.
 +
 
 +
You will need to update DFLang's copy of ``language_words.txt`` with the most recent version ([https://github.com/DF-Wiki/DFRawFunctions/blob/master/raws/v50/language_words.txt mirrored here]), as new words have been added since the last program release.
 +
 
 +
If you use accent marks or special characters, make sure to save your input file with Code Page 437 encoding.
 +
 
 +
[http://www.bay12forums.com/smf/index.php?topic=119625 LangCreate] is a more limited alternative, but can generate from a smaller sample.
 +
}}
 +
 
 +
__TOC__
 +
{{clear}}
  
 
==WORD==
 
==WORD==
Line 137: Line 154:
 
|
 
|
 
* WORD
 
* WORD
| Specifies the given WORD (defined in  
+
| Specifies the given WORD (defined in #REDIRECT [[language_words.txt]]) as belonging to the symbol being defined. A given word can belong to multiple symbols.
#REDIRECT [[language_words.txt]]
 
) as belonging to the symbol being defined. A given word can belong to multiple symbols.
 
 
|}
 
|}
  
Line 158: Line 173:
 
|}
 
|}
  
==English instead of dwarven language==
+
==English instead of Dwarven language==
You can hack the language files with this regular expression command:
+
You can hack the language files to display English in-game with this regular expression command:
  
 
'''<nowiki>:%s/T_WORD:\([A-Z_ -]*\):[^\]]*\]/T_WORD:\1:\L\1]/</nowiki>'''
 
'''<nowiki>:%s/T_WORD:\([A-Z_ -]*\):[^\]]*\]/T_WORD:\1:\L\1]/</nowiki>'''
 +
 +
A procedural version can also be found at [[Lua scripting#Identity language]].
  
 
==See also==
 
==See also==
[[40d:Language]] (has expanded explanations of parts of the language system, which seems to still be the same in this version)
+
* [[40d:Language]] (has expanded explanations of parts of the language system, which seems to still be the same in this version)
 +
* [[Speech file]]s
 +
* [[Utilities#Language tools]]
 +
* '''Raws'''
 +
** [[language_SYM.txt]]
  
 +
 
{{Category|Modding}}
 
{{Category|Modding}}
 
{{Category|Tokens}}
 
{{Category|Tokens}}
 
 
[[ru:Language token]]
 
[[ru:Language token]]
 +
[[Category:Language]]

Latest revision as of 08:27, 20 December 2024

This article is about the current version of DF.
Note that some content may still need to be updated.


Language tokens can be used to adjust existing languages or create a whole new languages. Vanilla language definitions can be found in <Dwarf Fortress>\data\vanilla\vanilla_languages\ within the language_*.txt raw files. Each token is permitted in a specific context.

Note: All language raw files use Code Page 437 encoding, and you should make sure you are editing these files in that format. As many text editors default to UTF-8, some characters with diacritical marks may fail to show properly. Saving one of the default language raw files in this state will overwrite these characters with the Unicode question mark, which will corrupt the file. To fix this replace the file with a clean one downloaded from the distributed version of DF.

Urist asks... I want to create a language for my custom civilization. Are there any programs built to support the in-game dictionary?

You can generate a language with DFLang from a list of sample words.

You will need to update DFLang's copy of language_words.txt with the most recent version (mirrored here), as new words have been added since the last program release.

If you use accent marks or special characters, make sure to save your input file with Code Page 437 encoding.

LangCreate is a more limited alternative, but can generate from a smaller sample.

WORD[edit]

Token Arguments Description
NOUN
  • singular
  • plural
Begins defining a noun usage of a word.
ADJ
  • adjective
Begins defining an adjective usage of a word.
PREFIX
  • prefix
Begins defining a prefix usage of a word.
VERB
  • present first person
  • present third person
  • preterite
  • past participle
  • present participle
Defines a verb usage of a word.
ADJ_DIST number 1-7 Determines what order the adjective being defined comes in when in a string of multiple adjectives.
THE_NOUN_SING Lets the singular noun form of the word be used after "the" ("The X of Y", where X is the word with the tag).
THE_NOUN_PLUR As above, but with plural ("The Xs of Y").
THE_COMPOUND_NOUN_SING Lets the singular noun form of the word be used as part of a compound noun after "the" ("The Z-X of Y").
THE_COMPOUND_NOUN_PLUR As above, but with plural ("The Z-Xs of Y").
THE_COMPOUND_ADJ Lets the adjective form of the word be used as part of a compound noun after "the" ("The Z-X of Y").
OF_NOUN_SING Lets the singular noun form of the word be used after "of" ("The Y of X").
OF_NOUN_PLUR As above, but with plural ("The Y of Xs").
FRONT_COMPOUND_NOUN_SING Lets the singular noun form of the word be used at the front of a compound noun ("XY", as in surnames).
FRONT_COMPOUND_NOUN_PLUR As above, but with plural.
REAR_COMPOUND_NOUN_SING Lets the singular noun form of the word be used at the rear of a compound noun ("YX", as in surnames).
REAR_COMPOUND_NOUN_PLUR As above, but with plural.
FRONT_COMPOUND_ADJ Lets the adjective form of the word be used at the front of a compound noun.
REAR_COMPOUND_ADJ As above, but at the rear instead.
FRONT_COMPOUND_PREFIX Allows the prefix form to be appended as a prefix to a compound noun.
THE_COMPOUND_PREFIX Allows the prefix form to be appended as a prefix to a compound noun following "the".
STANDARD_VERB Allows the verb to be used in a compound noun and for its participles to be used as adjectives.

SYMBOL[edit]

Token Arguments Description
S_WORD
  • WORD
Specifies the given WORD (defined in #REDIRECT language_words.txt) as belonging to the symbol being defined. A given word can belong to multiple symbols.

TRANSLATION[edit]

Token Arguments Description
T_WORD
  • WORD
  • translation
Specifies a translation from a given WORD (defined in language_words.txt) into the language being defined.

English instead of Dwarven language[edit]

You can hack the language files to display English in-game with this regular expression command:

:%s/T_WORD:\([A-Z_ -]*\):[^\]]*\]/T_WORD:\1:\L\1]/

A procedural version can also be found at Lua scripting#Identity language.

See also[edit]