Ho provato codificato ma in realtà l’URL può essere visto bene nell’indirizzo del browser Internet. Tuttavia, quando lo copio o lo invio, l’URL reale è una stringa di escape e non è più amichevole.
Ho controllato lib/slug.rb e suggerisco di modificare la funzione encoded_generator in questo modo:
def self.encoded_generator(string, downcase: true)
# Questo generatore sanificherà quasi tutti i caratteri speciali,
# inclusi i caratteri riservati da RFC3986.
# Vedi anche URI::REGEXP::PATTERN.
string = I18n.transliterate(string, :locale => SiteSetting.default_locale)
string = string.strip.gsub(/\s+/, "-").gsub(CHAR_FILTER_REGEXP, "")
string = string.downcase if downcase
string
#CGI.escape(string)
end
Ho provato con la localizzazione Vietnamita e ho ottenuto i risultati desiderati. Spero che funzioni anche con altre lingue.
Suppongo che questa sia una considerazione di compatibilità. Alcune APP supportano solo collegamenti di testo in latino e taglieranno direttamente i collegamenti in testo non latino.
Non sono uno sviluppatore di codice Ruby, ma ho letto il documento e ho trovato questo:
Impostazione di un Hash in <locale>.yml:
i18n:
transliterate:
rule:
ü: "ue"
ö: "oe"
Quindi questo è il modo per personalizzare la traslitterazione nelle impostazioni, alla fine della funzione, otteniamo solo testo latino (URL amichevole). Ho provato con la mia lingua madre e non è stato necessario definire impostazioni personalizzate dell’hash.