Привет, ребята.
Надеюсь, это проблема моей конфигурации — иначе пришлось бы назвать это багом…
Тема с национальными символами в заголовке получает URL с этими символами нормально, проблем там нет, но страница, опубликованная на основе такой темы, имеет URL, который ужасно искажён.
Я не могу вручную вставить правильные символы туда, так как Discourse сообщает, что слаг содержит недопустимые символы.
У меня было encoded — я считал, что это обязательно для неанглийских языков, поэтому пока не пробовал ничего другого.
Нет… это не решает проблему. Я (думаю, как и все) предпочёл бы сохранить свои национальные символы. Всё больше похоже на баг, не так ли?
Есть ли здесь @devel? Стоит ли мне перенести это в bug?
Если вы хотите создать отчёт об ошибке, а не обращаться за помощью к сообществу, вот отличное руководство по оформлению таких отчётов: Writing an effective bug report
Нам потребуются шаги для воспроизведения проблемы, а также будут полезны скриншоты.
@JammyDodger Там не так уж много шагов — разверните, смените язык (в моём случае PL), установите encode — воспроизвести должно быть очень легко.
Можно создавать заголовки (из которых, полагаю, формируются URL/ссылки) с национальными символами, но опубликовать такую страницу с этими символами не удаётся.
Я надеялся, что кто-нибудь из разработчиков сможет воспроизвести проблему, прежде чем я подам баг-репорт.
У вас есть заголовок темы, который я мог бы скопировать и вставить, чтобы попробовать?
Если не салат, то не лягушка
И второй пример:
Масло на льду в старом Або.
Я провёл тестовый запуск:
- Установил
default localeна polski (или suomi) - Установил
slug generation methodв значение ‘encoded’ - Включил
enable page publishing
- Создал тему с заголовком ‘Jeśli nie sałata to nie żaba’ (или ‘Jäällä öljyä vanhassa Åbossa’)
- Сгенерированный слаг темы:
/t/je%C5%9Bli-nie-sa%C5%82ata-to-nie-%C5%BCaba/758(или/t/j%C3%A4%C3%A4ll%C3%A4-%C3%B6ljy%C3%A4-vanhassa-%C3%A5bossa/759)
- Попытка опубликовать тему с закодированным слагом
je%C5%9Bli-nie-sa%C5%82ata-to-nie-%C5%BCabaв качестве URL - Публикация не удалась, так как URL содержит недопустимые символы
- После удаления кодировки страницу удалось опубликовать
Альтернативный вариант…
Похоже, что для публикации страниц закодированные слаги не поддерживаются.
Что здесь ожидается? Я проверил сайты правительств Польши и Финляндии, чтобы посмотреть, как выглядят их URL, и они не используют кодировку для решения этой проблемы.
Также я провёл поиск и не нашёл упоминаний об этой проблеме ранее, что может указывать на то, что это запрос на новую функцию (#feature request), а не ошибка (bug), если такая поддержка никогда не реализовывалась.
Не обращайте внимания на правительства — они крайне редко бывают самыми умными среди нас, хотя многие надеются, что это так.
Что касается остальных из нас — да, я удивлён, что об этом никто не сообщал ранее, — многие, если не большинство, являются стадными, ленивыми или и тем, и другим.
Что ожидать: я бы беспокоился и фокусировался здесь на единственном важном вопросе, который, безусловно, должен волновать серьёзных разработчиков и программистов, — это логика и согласованность. Если одна часть системы/кода делает (или не делает) что-то, то другие части, которые передают данные или зависят от первой, должны… очевидно, поступать соответственно. И так далее.
Проблема в том, что опубликованные страницы ломаются при наличии национальных символов в заголовках, хотя этого не должно происходить. Discourse должен иметь возможность публиковать страницы с национальными символами в URL/слэгах.
Это можно воспроизвести гораздо проще.
Просто попробуйте опубликовать страницу и добавить знак % в слаг. Сразу появится сообщение о недопустимом символе.
Можете ли вы привести пример URL, который вы ожидали бы увидеть?
Мне кажется, идея публикации страниц заключается в создании читаемого URL, поэтому закодированный вариант, похоже, противоречит этой цели?
Нет, не кодируют, по крайней мере в Финляндии — и, насколько мне известно, то же самое относится ко всем скандинавским странам, а также почти ко всем или даже всем странам мира.
Это связано с тем, как работает интернет из-за исторических причин и английского языка (с его очень ограниченной системой алфавита
). Однако всегда плохая идея использовать такие символы в URL и именах файлов в Linux.
Я не ожидаю ничего, кроме очистки или кодирования символов, отличных от букв a..z. Также стоит помнить, что довольно редко кто-то видит реальные URL.
Так что… моя роль здесь заключалась лишь в том, чтобы предложить дополнительные «кирпичики» Lego для игры, и у меня никогда не возникало проблем с URL. Ни у меня, ни у моих пользователей.
Я не понимаю — я отправил отчет об ошибке.
Дублирование вашего вопроса в других местах излишне. Если вы сможете предоставить дополнительные детали здесь, этого будет достаточно. ![]()
