Skip to content

Instantly share code, notes, and snippets.

@camertron
Created October 30, 2014 19:36
Show Gist options
  • Select an option

  • Save camertron/23dadf02128a80b35f98 to your computer and use it in GitHub Desktop.

Select an option

Save camertron/23dadf02128a80b35f98 to your computer and use it in GitHub Desktop.
Number Transliteration
require 'twitter_cldr'
class NumberTransliterator
class << self
def to_english_str(str)
str.each_char.map do |char|
transliterate_char(char) || char
end.join
end
private
def transliterate_char(char)
numeric_numbering_systems.inject(nil) do |ret, numeric_system|
index = system_for(numeric_system).digits.find_index do |digit|
char == digit
end
break index.to_s if index
end
end
def system_for(system_name)
systems[system_name] ||=
TwitterCldr::Shared::NumberingSystem.for_name(system_name)
end
def systems
@systems ||= {}
end
def numeric_numbering_systems
resource.each_with_object([]) do |(name, system), ret|
ret << name if system[:type] == 'numeric'
end
end
def resource
TwitterCldr.get_resource(:shared, :numbering_systems)[:numbering_systems]
end
end
end
puts NumberTransliterator.to_english_str('২০১৪-০৪-০৫ ০৪:১৬:০৩০')
puts NumberTransliterator.to_english_str('٢٠١٤-١٠-٢٦ ٢٢:١٠:٠٢٦')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment