Правильный способ получения удобочитаемых строк в представлениях строк редактора предикатов - использовать возможности локализации NSRuleEditor
и NSPredicateEditor
.
Если вы будете следовать инструкциям в этом блоге , у вас будет все необходимое для локализации редактора.
В качестве примера предположим, что ваш путь к ключу fileName
, вы поддерживаете 2 оператора (is
и contains
) и хотите, чтобы пользователь вводил строку. В итоге вы получите файл строк, который выглядит следующим образом:
"%[fileName]@ %[is]@ %@" = "%1$[fileName]@ %2$[is]@ %3$@";
"%[fileName]@ %[contains]@ %@" = "%1$[fileName]@ %2$[contains]@ %3$@";
Вы можете использовать этот файл, чтобы добавить удобочитаемые материалы и даже изменить порядок вещей:
"%[fileName]@ %[is]@ %@" = "%1$[original filename]@ %2$[is]@ %3$@";
"%[fileName]@ %[contains]@ %@" = "%3$@ %2$[is contained in]@ %1$[original filename]@";
Как только вы локализовали файл строк, вы передаете этот файл обратно в редактор предикатов, и он извлечет переведенные значения, выполнит свою магию, и все будет отображаться правильно.