Плейсхолдеры¶
Термины
Если вы впервые сталкиваетесь с термином «плейсхолдер», загляните в Словарь: ../glossary.md#плейсхолдер
Плейсхолдеры — это специальные метки внутри строк, которые подставляются во время выполнения (числа, имена и т.д.). RimLoc распознаёт два семейства:
- Фигурные скобки:
{...}
- Примеры:
{0}
,{count}
,{PAWN_label}
,{weapon}
- Процентные токены:
%...
- Примеры:
%s
,%d
,%i
,%f
, позиционные%1$s
, ширина%02d
RimLoc проверяет наличие и форму плейсхолдеров, а не их семантический тип. Перевод должен сохранять те же плейсхолдеры, что и источник.
Правила и рекомендации¶
- Нельзя удалять, переименовывать или изменять плейсхолдеры между исходником и переводом.
- Скобки должны быть попарными и непустыми:
{}
— неверно;{ name }
— допустимо (пробелы разрешены). - Процентные токены должны быть валидными:
%%
считается литеральным процентом, а не плейсхолдером. - Порядок обычно допускается, но несоответствие множеств будет отмечено.
Как RimLoc валидирует¶
rimloc-cli validate --root <MOD>
- Выдаёт категорию
placeholder-check
, когда в строках есть плейсхолдеры. - Предупреждает о проблемных токенах (несбалансированные
{}
, пустые/невалидные имена, подозрительные%
). rimloc-cli validate-po --po <FILE>
- Сравнивает плейсхолдеры в
msgid
иmsgstr
. Любое различие считается несоответствием. - Флаг
--strict
делает несоответствия фатальными (код возврата 1).
См. также: ../cli/validate_po.md
Типичные ошибки¶
- Полное удаление плейсхолдера: в переводе должны остаться все токены.
- Несбалансированные скобки
{name
или пустые{}
. - Опечатки в процентных токенах:
%z
,% 2d
— невалидны. - Смешивание литеральных скобок с плейсхолдерами: в RimWorld XML это редкость; экранируйте при необходимости.
Быстрые проверки¶
# Проверка XML‑строк (читаемый вывод)
rimloc-cli --quiet validate --root ./Mods/MyMod --format text
# Строгая проверка плейсхолдеров в PO (машиночитаемый вывод)
rimloc-cli --quiet validate-po --po ./out/mymod.po --strict --format json | jq .