class method self.transliterate

Ruby on Rails 2.3.18

Since v2.3.18 Last seen in v2.3.18

Signature

self.transliterate(*args)

Transliterates UTF-8 characters to ASCII. By default this method will transliterate only Latin strings to an ASCII approximation:

I18n.transliterate("Ærøskøbing")
# => "AEroskobing"

I18n.transliterate("日本語")
# => "???"

It’s also possible to add support for per-locale transliterations. I18n expects transliteration rules to be stored at i18n.transliterate.rule.

Transliteration rules can either be a Hash or a Proc. Procs must accept a single string argument. Hash rules inherit the default transliteration rules, while Procs do not.

Examples

Setting a Hash in <locale>.yml:

i18n:
  transliterate:
    rule:
      ü: "ue"
      ö: "oe"

Setting a Hash using Ruby:

store_translations(:de, :i18n => {
  :transliterate => {
    :rule => {
      "ü" => "ue",
      "ö" => "oe"
    }
  }
)

Setting a Proc:

translit = lambda {|string| MyTransliterator.transliterate(string) }
store_translations(:xx, :i18n => {:transliterate => {:rule => translit})

Transliterating strings:

I18n.locale = :en
I18n.transliterate("Jürgen") # => "Jurgen"
I18n.locale = :de
I18n.transliterate("Jürgen") # => "Juergen"
I18n.transliterate("Jürgen", :locale => :en) # => "Jurgen"
I18n.transliterate("Jürgen", :locale => :de) # => "Juergen"

Parameters

args rest
Source
# File activesupport/lib/active_support/vendor/i18n-0.4.1/i18n.rb, line 215
    def transliterate(*args)
      options      = args.pop if args.last.is_a?(Hash)
      key          = args.shift
      locale       = options && options.delete(:locale) || config.locale
      raises       = options && options.delete(:raise)
      replacement  = options && options.delete(:replacement)
      config.backend.transliterate(locale, key, replacement)
    rescue I18n::ArgumentError => exception
      raise exception if raises
      handle_exception(exception, locale, key, options)
    end

Defined in activesupport/lib/active_support/vendor/i18n-0.4.1/i18n.rb line 215 · View on GitHub · Improve this page · Find usages on GitHub

Defined in I18n

Type at least 2 characters to search.

↑↓ navigate · open · esc close