-
Notifications
You must be signed in to change notification settings - Fork 116
Форматирование строк
Andrey Lemin edited this page Nov 1, 2022
·
4 revisions
В игре часто встречаются форматные строки вида
<MessageRaidersBeginningAssault>{0} из фракции {1} идут на штурм.</MessageRaidersBeginningAssault>
<MessagePrisonerIsEscaping>{1_gender ? Пленник : Пленница} {1_labelShort} устраивает побег!</MessagePrisonerIsEscaping>
<MessageOutOfNearbyShellsFor>{PAWN_labelShort} не может найти снарядов для {lookup: {GUN_label}; Case; 1}.</MessageOutOfNearbyShellsFor>
Их игра использует, чтобы вместо скобок и подставлять конкретные значения своих переменных, передаваемых функции форматирования в виде набора аргументов.
Аргументы бывают следующих видов:
Помимо форматных строк с нумерованными аргументами в игре встречаются строки с именованными аргументами.
Работает такое не везде, а только в тех текстах, куда в коде передаётся символ (то есть объект с полями).
Кроме того, не все подсимволы можно применить ко всем символам. Например, тот же gender применим к символам типа Pawn и Thing (и, возможно, ещё в каких-то). Но неприменим к Hediff
-
nameDef
- имя персонажа -
pronoun
- местоимение "он"/"она", в зависимости от пола персонажа -
possessive
- местоимение "его"/"её"; для получения форм "него/неё" пользуйтесь трюкомн{PAWN_possessive}
-
objective
- местоимение "ему"/"ей" -
gender ? фразаМ : фразаЖ : фразаСр
- тернарный оператор, как в C. В зависимости от рода переданного символа игра вставит "фразаМ", "фразаЖ" или "фразаСр"
- Символ имени: {PAWN_nameDef} — краткое имя (Jonathan), {PAWN_nameFull} — полное имя (Jonathan Rigby)
- Символы местоимений: {PAWN_pronoun} — он/она, {PAWN_possessive} — его/её, н{PAWN_possessive} — него/неё, {PAWN_objective} — ему/ей.
- Gender-подсимвол: {PAWN_gender ? работал массажистом : работала массажисткой}