- 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.
Difference between revisions of "Divine language"
(Script for coming Lua release provided by Putnam) |
m (→Trivia: v50 modding file paths) |
||
Line 42: | Line 42: | ||
* The randomly generated divine words are not necessarily unique; the same letter sequence may correspond to two completely different English words. | * The randomly generated divine words are not necessarily unique; the same letter sequence may correspond to two completely different English words. | ||
* The shortest possible divine words have two letters (e.g. "ac"), while the longest words are typically 5-7 letters (e.g. "ciotayr") and could theoretically approach 10 (if all consonants were chosen to be "ng"). | * The shortest possible divine words have two letters (e.g. "ac"), while the longest words are typically 5-7 letters (e.g. "ciotayr") and could theoretically approach 10 (if all consonants were chosen to be "ng"). | ||
− | * In the world raws, the divine language is referred to as GEN_DIVINE. By changing an entity's TRANSLATION token | + | * In the world raws, the divine language is referred to as ``GEN_DIVINE``. By changing an entity's {{token|TRANSLATION|e}} token to ``GEN_DIVINE``, it's possible to make newly-generated creatures of that civilization use the same names as angels. |
{{Scriptdata}} | {{Scriptdata}} |
Latest revision as of 22:54, 21 December 2024
v50.15 · v0.47.05 This article is about the current version of DF.Note that some content may still need to be updated. |
This article contains massive spoilers. If you do not wish to have your game experience spoiled, do not scroll down! |
The Divine language is used to generate the names of angels. It works just like any of the four major languages in the respect that it has its own translation of a set of English words, but unlike the other languages, it is generated individually for each world. Each world has only one divine language, meaning that all angels in all vaults in a given world will use the same language.
Orthography[edit]
Each divine language draws from pools of randomly-chosen consonants and vowels for its words, covering the entire ISO basic Latin alphabet. Unlike the other four predefined languages, divine languages never use letters with diacritics. Furthermore, the letters "h" and "y" can be used as both consonants and vowels, and the letters "ng" can also be used together as a single consonant sound.
Consonants | Common | Uncommon | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
b | p | g | k | c | z | s | d | t | m | n | ng | v | f | w | h | j | l | r | q | x | y |
Vowels | Monophthongs | Diphthongs | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
a | e | i | o | u | ae | ai | ao | au | ea | ei | eo | eu | ia | ie | io | iu | oa | oe | oi | ou | ua | ue | ui | uo | ah | eh | ih | oh | uh | ay | ey | iy | oy | uy |
Each divine language uses 4 sets of letters:
- A short list of 5 randomly-selected consonants, 80% of which are restricted to the "Common" set
- A long list of 15 randomly-selected consonants, all drawn from the full set
- A short list of 5 randomly-selected vowels, 80% of which are restricted to the "Monophthongs" set
- A long list of 15 randomly-selected vowels, all drawn from the full set
Note that the contents of these lists are not guaranteed to be unique - it is possible for the same consonant or vowel to appear multiple times within the same list, restricting any given language to fewer than 20 distinct consonants and vowels.
Phonetics and Phonotactics[edit]
Each word in divine languages is constructed from two randomly-generated components, the first being of the form "CV" or "V", and the second being of the form "C", "CV", or "CVC" (where "C" is a consonant and "V" is a vowel). Thus, all words are of the form "VC", "CVC", "VCV", "CVCV", "VCVC", or "CVCVC".
For each consonant and vowel chosen, 80% are drawn from the "short" lists above, with the remaining 20% drawn from the "long" lists.
Trivia[edit]
- The randomly generated divine words are not necessarily unique; the same letter sequence may correspond to two completely different English words.
- The shortest possible divine words have two letters (e.g. "ac"), while the longest words are typically 5-7 letters (e.g. "ciotayr") and could theoretically approach 10 (if all consonants were chosen to be "ng").
- In the world raws, the divine language is referred to as
GEN_DIVINE
. By changing an entity's[TRANSLATION]
token toGEN_DIVINE
, it's possible to make newly-generated creatures of that civilization use the same names as angels.
1languages.GEN_DIVINE=function()
2
3 local letters={}
4 letters.vowel={}
5 letters.cons={}
6 letters.vowel.COMMON_NUM=5
7 letters.vowel.NUM=35
8 letters.cons.COMMON_NUM=12
9 letters.cons.NUM=22
10 letters.vowel.lookup={
11 "a","e","i","o","u",
12 "ae","ai","ao","au","ea","ei","eo","eu","ia","ie","io","iu","oa","oe","oi","ou","ua","ue","ui","uo","ah","eh","ih","oh","uh","ay","ey","iy","oy","uy"
13 }
14 letters.cons.lookup={
15 "b","p","g","k","c","z","s","d","t","m","n","ng",
16 "v","f","w","h","j","l","r","q","x","y"
17 }
18
19 for k,v in pairs(letters) do
20 v.common={}
21 v.rare={}
22 for i=1,5 do
23 if trandom(5)~=0 then v.common[i]=v.lookup[trandom(v.COMMON_NUM)+1] else v.common[i]=v.lookup[trandom(v.NUM)+1] end
24 end
25 for i=1,15 do
26 v.rare[i]=v.lookup[trandom(v.NUM)+1]
27 end
28 end
29
30 local function letter(t)
31 if trandom(5)~=0 then
32 return pick_random(t.common)
33 else
34 return pick_random(t.rare)
35 end
36 end
37 local gen_divine={}
38 for k,v in ipairs(world.language.word) do
39 local str=""
40 if trandom(2)~=0 then
41 str=str..letter(letters.cons)
42 str=str..letter(letters.vowel)
43 else
44 str=str..letter(letters.vowel)
45 end
46 local num_letters=trandom(3)
47 str=str..letter(letters.cons)
48 if num_letters>0 then str=str..letter(letters.vowel) end
49 if num_letters>1 then str=str..letter(letters.cons) end
50 gen_divine[v.token]=str
51 end
52
53 return gen_divine
54end
|
Races | |
---|---|
Modding | |
Text Sets |