我正在寻找一个Rails gem,它可以为字符串生成slug,也知道如何处理亚洲/俄语/等字符(非英语)。
这是我在Node应用程序中通常使用的内容,是否有类似Rails的内容?
https://github.com/lovell/limax
var slug = require('limax');
var latin = slug('i ♥ latin'); // i-love-latin
var cyrillic = slug('Я люблю русский'); // ya-lyublyu-russkij
var pinyin = slug('我爱官话'); // wo3-ai4-guan1-hua4
var romaji = slug('私は ひらがな が大好き'); // ha-hiragana-gaki
答案 0 :(得分:0)
Rails有parameterize方法,用ASCII近似替换字符串中的特殊字符,以便它可以用作漂亮URL的一部分。西方/拉丁字符提供默认近似值,例如“ø”,“ñ”,“é”,“ß”等。
> 'Bonjour à vous'.parameterize
=> "bonjour-a-vous"
> 'Viel Glück'.parameterize
=> "viel-gluck"
您还可以在config/locales
中进行自定义音译,例如
# config/locales/de.yml
i18n:
transliterate:
rule:
ü: "ue"
ö: "oe"
可以在https://github.com/svenfuchs/rails-i18n/tree/master/rails/transliteration
找到一些语言的列表对于非拉丁语言,据我所知,没有宝石支持所有这些语言。但是对于一种特定的语言,它可能是可能的。
例如:
答案 1 :(得分:0)
使用Stringex,您可以从许多不同的语言中获取可读的URL。
1
gem 'stringex', '~> 2.6'
现在每次更新帖子时,它都会从title属性生成slug并将其保存到slug字段。
class Post < ActiveRecord::Base
acts_as_url :title, url_attribute: :slug
end