Документация
Docs/ru/reference/text-format/languages.md
Языки и нормализация
Сгенерированный справочник. Не редактируйте его напрямую. Обновите
BuildTools/TextFormatInterface.json, затем выполнитеpython BuildTools/docs_text_format.py --write.
| Индекс | Синтаксис | Языки | Текст прототипов | Runtime | Проверка | Канонический JSON | Руководство |
Языковой fallback материализуется baker-ами. Runtime lookup читает выбранный бинарный языковой пакет и не обращается к базовому пакету.
Значения движка по умолчанию
| Настройка | Исходное значение по умолчанию | Смысл |
|---|---|---|
Baking.BakeLanguages |
engl |
Упорядоченные выходные языки; первый служит базой нормализации. |
Client.Language |
engl |
Начальный пакет текущего языка, загружаемый клиентом. |
| Стабильный ID | Правило | Требование | Причина | Источник |
|---|---|---|---|---|
text-format.language.filename |
Имя исходного файла | Базовое имя .fotxt содержит ровно два сегмента, разделённых точкой: имя текстового пакета и идентификатор языка. | TextBaker отклоняет любую другую форму базового имени. | Source/Tools/TextBaker.cpp |
text-format.language.identifier |
Идентификатор языка | Engine рассматривает суффикс имени файла как непрозрачную настроенную строку и не накладывает фиксированного ограничения на число символов. | Допустимость определяется равенством имени языка, разобранному из Baking.BakeLanguages; валидатора длины или формы локали нет. | Source/Tools/TextBaker.cpp |
text-format.language.base |
Базовый язык | Baking.BakeLanguages не может быть пустым, а его первый bare language является базой нормализации по умолчанию. | TextPack::ParseBakeLanguages проверяет упорядоченные declarations до их использования любым text baker. | Source/Tools/TextBaker.cpp, Source/Common/TextPack.cpp |
text-format.language.fallback-declaration |
Объявление fallback | Каждая запись BakeLanguages имеет форму language или child:parent; имена уникальны, а parent обязан находиться раньше child. | Явный parent создаёт упорядоченную bake-time fallback chain, а bare language после первого использует fallback на первый язык. | Source/Common/TextPack.cpp, Source/Tests/Test_TextPack.cpp |
text-format.language.default-source-required |
Обязательный базовый исходник | Для каждого изменённого исходного текстового пакета выбранный набор файлов должен содержать исходник базового языка. | TextBaker не может нормализовать изменённый пакет без базового языка и вызывает исключение до разбора выхода. | Source/Tools/TextBaker.cpp |
text-format.language.incremental-pack-set |
Дополнение инкрементального набора | При изменении одного языкового файла текстового пакета TextBaker включает в повторное запекание все настроенные языковые файлы того же пакета. | Частичное обновление языка всё равно должно пройти нормализацию полного пакета. | Source/Tools/TextBaker.cpp, Source/Tests/Test_TextBaker.cpp |
text-format.language.unsupported |
Неподдерживаемый язык | Для исходного текстового файла с суффиксом, отсутствующим в Baking.BakeLanguages, выводится предупреждение, а файл пропускается. | Неподдерживаемые исходные языки не создают бинарных пакетов. | Source/Tools/TextBaker.cpp |
text-format.language.bake-time-fallback |
Fallback при запекании | Отсутствующие пакеты и ключи копируются из настроенного fallback каждого языка во время запекания; пакеты и ключи, отсутствующие в этом fallback, удаляются. | Runtime lookup загружает уже нормализованные бинарные пакеты и не выполняет fallback. | Source/Common/TextPack.cpp |
text-format.language.variant-cardinality |
Количество вариантов | Нормализация выравнивает наличие ключей, но не количество или порядок повторяющихся вариантов существующего ключа. | FixStr проверяет только нулевое количество ключа и сохраняет все существующие варианты, когда ключ существует. | Source/Common/TextPack.cpp |
text-format.language.binary-name |
Имя запечённого файла | Baker-ы исходного текста и текста прототипов создают <ResourcePack>.<TextPack>.<Language>.fotxt-bin. | Позднее TextPack::LoadFromResources требует ровно три таких сегмента базового имени. | Source/Tools/TextBaker.cpp, Source/Common/TextPack.cpp |