27: def self.translify(str, allow_slashes = true)
28: slash = allow_slashes ? '/' : '';
29:
30: s = str.clone.gsub(/[^\- _0-9a-zA-ZА-ёЁ#{slash}]/, '')
31: lang_fr = s.scan(/[А-ёЁ ]+/)
32: lang_fr.each do |fr|
33: TABLE_TO.each do | translation |
34: fr.gsub!(/#{translation[0]}/, translation[1])
35: end
36: end
37:
38: lang_sr = s.scan(/[0-9A-Za-z\_\-\.\/\']+/)
39:
40: string = ""
41: if s =~ /\A[А-ёЁ ]/
42: lang_fr, lang_sr = lang_sr, lang_fr
43: string = "+"
44: end
45:
46: 0.upto([lang_fr.length, lang_sr.length].min-1) do |x|
47: string += lang_sr[x] + "+" + lang_fr[x] + "+";
48: end
49:
50: if (lang_fr.length < lang_sr.length)
51: string += lang_sr[lang_sr.length-1]
52: else
53: string[0, string.length-1]
54: end
55: end