Почему `NO` могло превратиться в `false`
В старых версиях YAML слово `NO` не всегда считалось обычным текстом. Некоторые парсеры следовали правилам YAML 1.1, где к логическим значениям относились не только `true` и `false`, но и варианты `yes` и `no` — в том числе написанные заглавными буквами. Поэтому при разборе файла `NO` могло превратиться в булево значение `false`.
YAML — формат, в котором данные записывают в читаемом виде: например, пары «название — значение» для настроек или переводов. Парсер читает такой файл и преобразует записи в данные, понятные программе. Если он распознаёт слово как логическое значение, оно уже не остаётся строкой с исходным написанием.
Как это ломало локализации
Представим файл переводов, где `NO` — текст на кнопке или подпись, а не ответ «нет». Если парсер превращал его в `false`, приложение получало не строку, которую можно показать пользователю, а значение другого типа. В зависимости от программы надпись могла исчезнуть, отобразиться неправильно или вызвать ошибку при обработке.
Проблема особенно заметна в локализации кодов стран: `NO` — код Норвегии, но для старого правила это ещё и вариант записи слова «нет». Одно и то же сочетание букв поэтому могло означать либо буквальный текст, либо логическое значение — в зависимости от парсера.
Почему кавычки имеют значение
Кавычки подсказывают парсеру, что содержимое нужно сохранить как строку: например, `






