A transliterator which accepts a Hash of characters as its translation rule.
# File lib/i18n/backend/transliterator.rb, line 71 def initialize(rule = nil) @rule = rule add DEFAULT_APPROXIMATIONS add rule if rule end
# File lib/i18n/backend/transliterator.rb, line 77 def transliterate(string, replacement = nil) string.gsub(/[^\x00-\x7f]/) do |char| approximations[char] || replacement || DEFAULT_REPLACEMENT_CHAR end end
Add transliteration rules to the approximations hash.
# File lib/i18n/backend/transliterator.rb, line 90 def add(hash) hash.keys.each {|key| hash[key.to_s] = hash.delete(key).to_s} approximations.merge! hash end
# File lib/i18n/backend/transliterator.rb, line 85 def approximations @approximations ||= {} end