Перейти к содержанию

Плейсхолдеры

Термины

Если вы впервые сталкиваетесь с термином «плейсхолдер», загляните в Словарь: ../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 .