UTF-8 slugs for categories

Is it possible to add? When I create category with russian name, links to it converts to SEO-friendly latin letters. And that’s awesome! I bet it’s possible to do same with nicknames. If name on russan / japanese / hindi, it can be converted to latin version and you can use it for links to user profiles, but show localized UTF-8 one on pages.

1 лайк

Planned at some point see:

2 лайка

Конвертация славянских слов в ASCII не так SEO-дружелюбна, как могла бы быть.

Например, «Nos Œuvres Cachées» могло бы генерировать nos-oeuvres-cachees (ASCII), но на самом деле получается nos-uvres-cachees, что разрывает слова.

Символ UTF-8 автоматически заменяется на -, что часто приводит к проблемам в неанглийских языках (например, во французском, немецком и других языках с большим количеством диакритических знаков). В немецком языке умлаут (например, ü) традиционно заменяется на ue в URL-адресах.

(Не стесняйтесь переместить этот пост в новую тему.)

2 лайка

Discourse использует правила транслитерации для замены символов Unicode на ASCII-символы. Правила зависят от параметра default_locale сайта.

Это отлично работает для немецкого языка (transliterate.de.yml). Для французского это не работает, поскольку правила транслитерации для него ещё отсутствуют.

РЕДАКТИРОВАНИЕ: О, глядя на вывод ниже, оказывается, что он совпадает с вашим предпочтительным вариантом «nos-oeuvres-cachees». Не совсем понимаю почему… Возможно, Rails начал включать правила транслитерации по умолчанию? :thinking:

[1] pry(main)> SiteSetting.default_locale = :de
=> :de
[2] pry(main)> Slug.for("Küche", "")
=> "kueche"
[3] pry(main)> SiteSetting.default_locale = :fr
=> :fr
[4] pry(main)> Slug.for("Nos Œuvres Cachées", "")
=> "nos-oeuvres-cachees"

Не могли бы вы создать PR с правилами транслитерации для французского языка?

1 лайк

Я привёл пример, возможно, это был неудачный. Но спасибо за советы по консоли, я обязательно посмотрю и проверю, могу ли я поиграть с файлами транслитерации. Если есть способ настроить некоторые случаи транслитерации для переопределения значений по умолчанию, это было бы здорово.

Я с радостью бы это сделал, но у меня уже переполненный график. Возможно, кто-то из группы @translators (особенно люди из темы Quality of French Translations) справится быстрее, чем я.

Я беспокоился о нескольких крайних случаях, которые лучше решить путём переопределения правил (например, иногда вы хотите, чтобы нижний индекс числа заменялся на обычное число или вообще удалялся, а не на -. Например, запись CO₂ скорее должна превратиться в co2, чем в co :slight_smile: )

1 лайк