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 个赞

Slug 的 ASCII 转换对 SEO 并不友好。

例如,“Nos Œuvres Cachées”可能会生成 nos-oeuvres-cachees(ASCII),但实际上生成的是 nos-uvres-cachees,这会破坏单词。

UTF-8 字符会自动替换为 -,这在非英语语言中经常会出问题(例如,在法语、德语和其他有很多重音符号的语言中)。在德语中,变音符号(例如 ü)在 URL 中传统上替换为 ue

(欢迎将此帖移至新主题。)

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 :))

1 个赞