[[TOC]] ''For strings, see wiki:SpecificNames.'' This guide provides some ground rules to write user-facing texts for '''0 A.D.''' == Orthography === English spelling Use American English spelling. ||='''American''' =||='''British''' =|| ||analyze ||analyse || ||archeology ||archaeology || ||armor ||armour || ||artifact ||artefact || ||center ||centre || ||civilization * ||civilisation * || ||counterclockwise ||anticlockwise || ||defense ||defence || ||dialog ||dialogue || ||fertilizer * ||fertiliser * || ||gray ||grey || ||itemize * ||itemise * || ||maneuver ||manoeuvre || ||plow ||plough || ||traveler ||traveller || * The -ize/-ise, -izer/-iser, and -ization/-isation differences only apply to words where the ending is not part of the root. Some words always end in -ise in all varieties of English. These are: advertise, advise, apprise, arise, chastise, circumcise, comprise, compromise, demise, despise, devise, disguise, enterprise, excise, exercise, franchise, guise, improvise, incise, merchandise, mortise, premise, reprise, revise, supervise, surmise, surprise, televise, as well as all words ending in -wise. * Likewise, there are a number of words that always end in -ize in all varieties of English. These include: assize, baize, capsize, downsize, maize, prize, resize, seize, size. * Check what you type: e.g. the verb to pron''ou''nce is always spelled with ''ou'', but the noun pron''u''nciation is spelled with only ''u''. * If unsure about the correct spelling, consult a dictionary, e.g. https://www.lexico.com/ === Calender years The name of the game is '''0 A.D.''', which includes dots, for stylistic reasons. However, dots are not used when writing down years. E.g. Augustus was emperor of Rome from 27 BC until AD 14. ||='''good''' =||='''bad''' =|| ||BC ||B.C., BCE, B.C.E. || ||AD ||A.D., CE, C.E. || Also check there is always a single space between the year and BC/AD. === Dynastic factions ||='''singular:''' =||='''plural:''' =||='''adjective:''' =|| ||''founder of dynasty''||''members of dynasty''||''belonging to dynasty''|| ||Achaemenes ||Achaemenids ||Achaemenid || ||Maurya ||Mauryas ||Mauryan || ||Ptolemy ||Ptolemies ||Ptolemaic || ||Seleucus ||Seleucids ||Seleucid || === Greek and Latin Greek words and proper names are Latinized everywhere, except in the specific name. ||='''good''' =||='''bad''' =|| ||Aeschylus ||Aiskhulos || ||Darius ||Dareios || ||Seleucus I ||Seleukos A' || ||Thucydides ||Thoukudidēs || Also, use the English form if there is one. ||='''good''' =||='''bad''' =|| ||Alexander the Great ||Alexander Magnus, Alexandros ho Megas || ||Athens ||Athenae, Athenai || ||Homer ||Homerus, Homēros || ||Livy ||Livius || ||Mark Antony ||Marcus Antonius || ||Ovid ||Ovidius || ||Ptolemy ||Ptolemaeus, Ptolemaios || ||Virgil ||Vergilius || ||Cataphract ||Kataphraktos || ||Hoplite ||Hoplitēs || ||Penteconter ||Pentercontor, Pentēkontoros || ||Theatre ||Theatrum, Theatron || ||Trireme ||Triremis, Triērēs || == Terminology In texts that the user needs to understand, such as menu entries, help tooltips, and similar, you must be consistent with the vocabulary that you use. An object should always be referred to using the same word everywhere in the game, and an action should always be referred to using the same verb. For example, if there is a unit type called ‘Female Citizen’, always refer to it as such, do not also use alternative forms such as ‘females’, ‘women’, and so on. Even in the same paragraph or sentence, you should use the same term. Always be precise. E.g. if a technology multiplies the melee attack damage of cavalry by 1.2, the tooltip should be “Cavalry +20% melee attack damage”, not “Melee Cavalry +20% attack damage”. Furthermore, there should be a bijection between descriptions and classes. E.g. if a technology affects the `Citizen` class, write “Citizens”; if it affects the `Soldier` class, write “Soldiers”; if it affects only units that have both the `Citizen` and the `Soldier` class, write “Citizen Soldiers”. For specific words that you should use or avoid in 0 A.D. gameplay texts, see the tables below. === Actions ||='''good''' =||='''bad''' =|| ||build (structures) ||construct, make || ||collect (treasures) ||gather || ||construct (ships, siege weapons) ||build, produce, train || ||gather (resources) ||collect, get || ||research (technologies) || || ||train (human units) ||build, construct, recruit, produce || === Cursor vs Mouse Mind the difference between the cursor (virtual) and the mouse (physical). === GUI ||='''good''' =||='''bad''' =|| ||icon ||image, picture, portrait, sprite, thumbnail || ||window ||dialog(ue) || === Stats ||='''code''' =||||='''good''' =||||='''bad''' =|| ||`Armour/Hack` ||||hack armor ||||hack armour || ||`Attack/Capture/Capture` ||||capture attack strength ||||capture rate, capture vale || ||`Attack/Capture/MaxRange` ||||capture attack range ||||capture range || ||`Attack/Capture/RepeatTime` ||||capture attack speed¹ ||||capture rate, capture time || ||`Attack/Melee/Damage/Crush` ||||melee attack crush damage ||||crush, crush attack, crush strength || ||`Attack/Melee/MaxRange` ||||attack range ||||range, melee range || ||`Attack/Melee/RepeatTime` ||||melee attack speed¹ ||||melee attack repeat time || ||`Attack/Ranged/ElevationBonus` ||||elevation bonus |||| || ||`Attack/Ranged/MinRange` ||||minimum attack range ||||min attack range, minimum range || ||`Attack/Ranged/RepeatTime` ||||ranged attack speed¹ ||||ranged attack repeat time || ||`Builder/Rate` ||||build rate ||||builder rate, building rate || ||`Capturable/CapturePoints` ||||capture points |||| || ||`Cost/BuildTime` ||''structures''[[br]]''ships, siege''[[br]]''animals''[[br]]''other units''||build time[[br]]construction time[[br]]breeding time[[br]]training time||||building time, production time, recruitment time|| ||`Cost/Population` ||||population cost |||| || ||`Cost/PopulationBonus` ||||population bonus |||| || ||`Cost/Resources/food` ||||food cost |||| || ||`Cost/Resources/wood` ||||wood cost ||||timber cost || ||`Cost/Resources/stone` ||||stone cost |||| || ||`Cost/Resources/metal` ||||metal cost ||||iron cost || ||`GarrisonHolder/Max` ||||garrison capacity |||| || ||`Heal/HP` ||||healing strength ||||HP, heal value || ||`Heal/Range` ||||healing range ||||heal range || ||`Heal/Rate` ||||healing time ||||heal rate, healing speed || ||`Health/Max` ||||health ||||health points, hitpoints, HP || ||`Health/RegenRate` ||||health regeneration rate ||||regeneration, regen rate, regen speed || ||`Loot/xp` ||grant||experience loot |||| || ||`Looter/xp` ||gain||experience loot |||| || ||`ProductionQueue/TechCostMultiplier/food`||technologies require||food |||| || ||`Promotion/RequiredXp` ||||promotion experience |||| || ||`ResourceGatherer/BaseSpeed` ||||gather speed ||||gather rate, work speed || ||`ResourceGatherer/Capacities/food` ||||food capacity ||||carry capacity, foot load || ||`ResourceGatherer/MaxDistance` ||||gather distance |||| || ||`ResourceGatherer/Rates/food.fish` ||||fish gather rate |||| || ||`ResourceGatherer/Rates/food.fruit` ||||fruit gather rate |||| || ||`ResourceGatherer/Rates/food.grain` ||||grain gather rate |||| || ||`ResourceGatherer/Rates/food.meat` ||||meat gather rate |||| || ||`ResourceGatherer/Rates/metal.ore` ||||metal gather rate |||| || ||`ResourceGatherer/Rates/metal.ruins` |||| |||| || ||`ResourceGatherer/Rates/stone.rock` ||||stone gather rate |||| || ||`ResourceGatherer/Rates/stone.ruins` |||| |||| || ||`ResourceGatherer/Rates/treasure` |||| |||| || ||`ResourceGatherer/Rates/wood.rock` ||||wood gather rate |||| || ||`ResourceGatherer/Rates/wood.ruins` |||| |||| || ||`ResourceTrickle/Interval` ||||resource trickle time |||| || ||`ResourceTrickle/Rates/food` ||||food trickle rate |||| || ||`UnitMotion/WalkSpeed` ||||walk speed ||||movement speed, velocity || ||`Vision/Range` ||||vision range ||||line of sight, LOS, vision || ||`` |||| |||| || Notes:[[br]] ¹ The meaning in code is reserved from the display text. For example, if code says `RepeatTime value × 0.5` (subtract 50%) then the speed will be twice as fast, which should be displayed as +100% (value ÷ 0.5). === Structures ||='''good''' =||='''bad''' =|| ||Structure ||Building || ||Blacksmith ||Armoury, Arsenal, Forge, Smithy || ||Civic Center ||Civic Centre, Civil Center, Civil Centre || ||Dock ||Harbour, Pier, Port, Quay, Shipyard, Wharf || ||Farmstead ||Farmhouse, Granary, Mill || ||Fortress ||Castle, Citadel, Fort, Stronghold || ||House ||Dwelling, Home, Shack || ||Storehouse ||Drop Site, Mining Camp, Storage Pit || === Units ||='''good''' =||='''bad''' =|| ||Cavalry ||Cavalry Soldier, Horse, Horseman || ||Champion || || ||Champion Cavalry ||Cavalry Champion || ||Champion Cavalry Spearman ||Cavalry Spearman Champion, Champion Spear Cavalry || ||Champion Infantry ||Infantry Champion || ||Champion Infantry Archer ||Infantry Archer Champion, Champion Archer Infantry || ||Champion Spearman (both cavalry and infantry)||Spearman Champion || ||Citizen (cavalry or infantry, female or male)||Worker, Villager, Subject, Slave, Servant, Serf, Peasant, Labourer, Gatherer, Builder || ||Citizen Cavalry ||Cavalry Citizen-Soldier, Citizen-Cavalry, Citizen-Cavalry Unit || ||Citizen Infantry ||Infantry Citizen, Infantry Citizen Soldier, Infantry Citizen-Soldier || ||Citizen Soldier (cavalry or infantry) ||Citizen-Soldier, Soldier Citizen || ||Female Citizen ||Female, Female Worker, Woman || ||Infantry ||Infantry Soldier, Footman || ||Melee Cavalry ||Cavalry Melee Soldier, Heavy Cavalry || ||Melee Infantry ||Heavy Infantry || ||Ranged Cavalry ||Cavalry Ranged Soldier, Cavalry Skirmisher, Skirmisher Cavalry || ||Ranged Infantry ||Light Infantry, Infantry Skirmisher, Skirmisher Infantry, Skirmisher || ||Ship ||Boat, Craft, Vessel || ||Siege Engine ||Siege Weapon, Siege || == Tooltips In general, start with a capital, end each statement with a full stop, and capitalize classes. === Auras Auras are JSON files located inside `simulation/data/auras/`. Auras are temporary, their effects disappear when the aura entity is lost. The shared format for the `auraDescription` is: **"[player] [class] [change] [attributes] [requirements]"**: * **[player]**: if and only if an `affectedPlayers` entry is specified; by default auras affect only their own player. Other options are ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/components/Player.js Player.js]): * `Ally`: player is our ally → Allied and Own * `ExclusiveAlly`: player is our ally excluding ourself → Allied * `MutualAlly`: player is our ally, and we are its ally → Allied and Own * `ExclusiveMutualAlly`: player is our ally, and we are its ally, excluding ourself → Allied * `Enemy`: player is our enemy → Enemy * **[class]**: the affected class(es), e.g.: * `"Citizen Infantry"` → Citizen Infantry * `"Siege", "Structure"` → Structures and Siege Engines * **[change]**: the actual modifications, e.g.: * `"replace": 0` → have 0 * `"multiply": 1.1` → +10% * `"multiply": 0.85` → −15% * `"add": 1` → +1 * `"add": -25` → −25 * **[attributes]**: the modified stats; see [[EnglishStyleGuide#Stats | above]] * **[requirements]**: if and only if a `requiredTechnology` is set; specifies the `genericName` of the required technology; e.g.: * `"pop_wonder"` → (requires the “Glorious Expansion” technology) The exact format depends on the aura `type` (see [https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/components/Auras.js Auras.js]): ||='''type''' =||='''format''' =||='''examples'''=|| ||formation ||[player] [class] in his formation [change] [attributes] [requirements] ||Soldiers in his formation +3 armor and +15% movement speed. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_iphicrates_1.json ref])|| ||garrison ||[player] [class] he is garrisoned in [change] [attributes] [requirements]||Ship he is garrisoned in −30% batch training time and +50% movement speed. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_themistocles_1.json ref])|| ||garrisonedUnits ||Garrisoned [player] [class] [change] [attributes] [requirements] ||Garrisoned Siege Engines +3 health regeneration rate. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/structures/workshop_repair.json ref])[[br]]Garrisoned Soldiers +3 armor and +20 vision range. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/structures/wall_garrisoned.json ref])|| ||global ||[player] [class] [change] [attributes] [requirements] ||Allied Structures −20% technology research time. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/teambonuses/gaul_player_teambonus.json ref])[[br]]Temples −25% stone cost and +2 garrison heal rate. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_pericles_2.json ref])[[br]]+40 maximum population limit (requires the “Glorious Expansion” technology). ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/structures/wonder_pop_2.json ref])|| ||range ||[player] [class] [change] [attributes] [requirements] ||Workers +25% grain gather rate. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/structures/rotary_mill.json ref])[[br]]Own and Allied Soldiers and Siege Engines +1 capture attack strength, +20% melee and ranged attack damage. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/units/heroes/cart_hero_hannibal.json ref])[[br]]Champions +2 capture attack strength, +20% melee and ranged attack damage, +10% movement speed. ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/auras/units/heroes/brit_hero_boudicca.json ref])|| === Technologies Technologies are JSON files located inside `simulation/data/technologies/`. All technologies are global and irreversible. Please follow the **"[player] [class] [change] [attributes]"** format (see auras [[EnglishStyleGuide#Auras | above]], without [requirements]), e.g.: * `"tooltip": "Siege Engines +2 hack armor.",` ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/data/technologies/siege_armor.json siege armor]) === Templates Entity templates are XML files located inside `simulation/templates/`. They can have a string inside the node, to summarize what makes them unique. Be brief and precise. A few examples: * Resource supplier: `Catch fish for food.` ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/templates/template_gaia_fish.xml fish]) * Structures: `Construct Siege Engines and research Siege Engine technologies.` ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_workshop.xml workshop]) * Units: `Garrison units for transport and to increase firepower.` ([https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_siege_tower.xml siege tower]) == Typography === Capitalization Use [https://en.wikipedia.org/wiki/Letter_case#Title_case title case] for: * button captions * entity classes * entity and technology names (generic and specific names) * key names * proper names Never use full capitalization. ||='''good''' =||='''bad''' =|| ||Click the Citizen Soldier icon ||Click the CITIZEN SOLDIER icon || ||Hold Shift and click ||Hold shift and click || === Punctuation and spacing * A serial comma is used when listing three or more items. E.g. “Available to Britons, Gauls, and Iberians.” or “Capture, Melee, or Ranged.” and not “Britons, Gauls and Iberians.” or “Capture, Melee or Ranged.” * Only use one space, not two, after a full stop to end a sentence. * Do not use spaces before “large” characters (e.g. ?, !, :, %). * There are three options for parenthetical remarks: * parentheses (which have spaces on the outside, but not on the inside) are preferred; * en-dashes – which have spaces both inside and outside – can also be used occassionally if it looks better; * em-dashes—which have spaces neither inside nor outside—are better avoided. * Use “English-style” quotation marks, not « French-style » or „German-style“ (nor the other »German-style«). * Please read the articles listed at https://www.lexico.com/en/grammar/punctuation === Unicode We have a somewhat complete Unicode support, do not limit yourself to ASCII and learn how to use [https://en.wikipedia.org/wiki/Unicode_input Unicode input] in your system. ||='''good''' =||='''bad''' =||='''usage''' =|| ||… (U+2026, ellipsis) ||... (three full stops) ||intentional omission || ||• (U+2022, bullet) ||- (hyphen) ||itemization || ||– (U+2013, en-dash) ||- (hyphen), -- (two hyphens) ||range of values (500–1 BC), oppositions (Greco–Persian wars) || ||— (U+2014, em-dash) ||- (hyphen), --- (three hyphens) ||attribution of a quote source || ||− (U+2212, minus) ||- (hyphen) ||subtraction, negative values (−20% training time) || ||× (U+00D7, times) ||x (X) ||multiplication || ||“ (U+201C) ||" (programmer's quote) ||start of a quotation || ||” (U+201D) ||" (programmer's quote) ||end of a quotation || ||‘ (U+2018) ||' (apostrophe) ||start of a quotation inside a quotation || ||’ (U+2019) ||' (apostrophe) ||end of a quotation inside a quotation || Use the ordinary hyphen or hyphen-minus (-) for hyphenation, compounds (Greco-Bactrian kingdom), negations (non-starter), vowel separation (de-escalate), and to distinguish between [https://en.wikipedia.org/wiki/Hyphen#Varied_meanings varied meanings]. == External links * [https://www.ox.ac.uk/sites/files/oxford/University%20of%20Oxford%20Style%20Guide%20%28updated%20Hilary%20term%202016%29.pdf University of Oxford style guide (pdf)] * [https://ec.europa.eu/info/sites/info/files/styleguide_english_dgt_en.pdf European Union English style guide (pdf)] * https://www.transifex.com/wildfire-games/0ad/