class method
self.transliterate
Ruby on Rails 2.3.18
Since v2.3.18 Last seen in v2.3.18Signature
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
-
argsrest
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