У нас возникла проблема с редактированием текстов, содержащих символ %.
Тексты с этим символом внутри невозможно изменить. После сохранения текст исчезает и не отображается на сайте.
Пожалуйста, помогите решить эту проблему.
Пример текста:

У нас возникла проблема с редактированием текстов, содержащих символ %.
Тексты с этим символом внутри невозможно изменить. После сохранения текст исчезает и не отображается на сайте.
Пожалуйста, помогите решить эту проблему.
Пример текста:

Символ %, используемый внутри href=, является экранирующим символом для отображения символа с помощью числового значения. Таким образом, %{ — это не %, за которым следует число.
Попробуйте заменить % на %25.
См.: Передать знак процента (%) в URL и получить его точное значение с помощью PHP
Спасибо! Но проблема таким образом не решается. В данном случае получается сохранить изменения, но, к сожалению, ссылка не работает…
Что вы пытаетесь сделать? Вы хотите изменить значение атрибута href ссылки?
@simon Нет, нам нужно отредактировать некоторые тексты на сайте, но мы не можем этого сделать. Тексты, содержащие символ %, нельзя изменить. После сохранения текст исчезает и не отображается на сайте.
Например, мы не можем изменить этот текст:

Однако, если мы удалим % из этого текста, изменения сохраняются без проблем.
@simon Вы можете посмотреть видео по ссылке Dropbox - Error - Simplify your life
Первая часть этого текста (## [Добро пожаловать в %{title}](#welcome)) — это разметка Markdown, которая создаёт элемент h2 со ссылкой. Атрибут href ссылки установлен в значение “#welcome”. Тег %{title} является заполнителем, который система Discourse использует для подстановки названия вашего сайта в текст.
Вы можете настроить этот текст, но убедитесь, что используете корректную разметку Markdown. Например, этот вариант работает:
## [Добро пожаловать в Мой Демо-Сайт](#welcome)
Требуется учётная запись. Пожалуйста, создайте учётную запись или войдите, чтобы продолжить.
Этот вариант также работает — он удаляет ссылку из элемента h2:
## Добро пожаловать в Мой Демо-Сайт
Требуется учётная запись. Пожалуйста, создайте учётную запись или войдите, чтобы продолжить.
@simon Да, я знаю об этой возможности, спасибо. Но нам нужно перевести несколько сотен текстов, и это большая проблема ![]()
Спасибо за публикацию видео. Я столкнулся с похожей проблемой на своём сайте разработки.
При нажатии кнопки редактирования для любого из пустых полей отображается пустое текстовое поле.
Нажатие кнопки «Отменить изменения» возвращает текст по умолчанию, но в текстовом поле отображается только первая строка.
После обновления страницы в полном объёме отображается весь текст по умолчанию.
Да, спасибо, я знаю, как вернуть исходный текст, но мне нужно внести в него изменения, а я не могу этого сделать…
Спасибо за ваш пост. Но проблема не в возврате исходного текста, а в внесении в него изменений. Пожалуйста, посмотрите моё видео выше.
Я перенёс эту тему в категорию bug. На моём размещённом сайте Discourse я обнаружил следующее: когда редактируется текстовое содержимое, включающее плейсхолдер, отредактированный текст сохраняется в таблице TranslationOverride. Этот текст отображается в интерфейсе сайта. Например, если я редактирую текст login_required.welcome_message, то на странице входа используется именно мой отредактированный вариант.
Проблема заключается в том, что отредактированный текст не всегда отображается в списке «Администрирование / Настройка / Текст», а на странице редактирования текста он вообще не отображается:
Если я установлю флажок «Показывать только переопределённые» или выполню поиск по конкретному ключу перевода, то отредактированный текст появится:
Если же нажать кнопку редактирования этого текста, откроется пустое текстовое поле:
Редактирование: похоже, это дубликат проблемы, на которую указал @tshenry: https://meta.discourse.org/t/changing-systems-welcome-message/128572/3. Отличие, которое я обнаружил, заключается в том, что при нажатии кнопки «Отменить» на шаге 6 текст возвращается к значению по умолчанию, а не к недавно отредактированному. Проблема, кажется, возникает только со строками, содержащими плейсхолдеры. Пока что я закрою эту тему как дубликат.