Module: Nuggets::I18n

Defined in:
lib/nuggets/i18n.rb

Constant Summary collapse

DIACRITICS =
{
  'À' => 'A',  # LATIN CAPITAL LETTER A WITH GRAVE
  'Á' => 'A',  # LATIN CAPITAL LETTER A WITH ACUTE
  'Â' => 'A',  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
  'Ã' => 'A',  # LATIN CAPITAL LETTER A WITH TILDE
  'Ä' => 'AE', # LATIN CAPITAL LETTER A WITH DIAERESIS
  'Å' => 'A',  # LATIN CAPITAL LETTER A WITH RING ABOVE
  'Æ' => 'AE', # LATIN CAPITAL LETTER AE
  'Ç' => 'C',  # LATIN CAPITAL LETTER C WITH CEDILLA
  'È' => 'E',  # LATIN CAPITAL LETTER E WITH GRAVE
  'É' => 'E',  # LATIN CAPITAL LETTER E WITH ACUTE
  'Ê' => 'E',  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
  'Ë' => 'E',  # LATIN CAPITAL LETTER E WITH DIAERESIS
  'Ì' => 'I',  # LATIN CAPITAL LETTER I WITH GRAVE
  'Í' => 'I',  # LATIN CAPITAL LETTER I WITH ACUTE
  'Î' => 'I',  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
  'Ï' => 'I',  # LATIN CAPITAL LETTER I WITH DIAERESIS
  'Ð' => 'DH', # LATIN CAPITAL LETTER ETH
  'Ñ' => 'N',  # LATIN CAPITAL LETTER N WITH TILDE
  'Ò' => 'O',  # LATIN CAPITAL LETTER O WITH GRAVE
  'Ó' => 'O',  # LATIN CAPITAL LETTER O WITH ACUTE
  'Ô' => 'O',  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
  'Õ' => 'O',  # LATIN CAPITAL LETTER O WITH TILDE
  'Ö' => 'OE', # LATIN CAPITAL LETTER O WITH DIAERESIS
  'Ø' => 'O',  # LATIN CAPITAL LETTER O WITH STROKE
  'Ù' => 'U',  # LATIN CAPITAL LETTER U WITH GRAVE
  'Ú' => 'U',  # LATIN CAPITAL LETTER U WITH ACUTE
  'Û' => 'U',  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
  'Ü' => 'UE', # LATIN CAPITAL LETTER U WITH DIAERESIS
  'Ý' => 'Y',  # LATIN CAPITAL LETTER Y WITH ACUTE
  'Þ' => 'TH', # LATIN CAPITAL LETTER THORN
  'ß' => 'ss', # LATIN SMALL LETTER SHARP S
  'à' => 'a',  # LATIN SMALL LETTER A WITH GRAVE
  'á' => 'a',  # LATIN SMALL LETTER A WITH ACUTE
  'â' => 'a',  # LATIN SMALL LETTER A WITH CIRCUMFLEX
  'ã' => 'a',  # LATIN SMALL LETTER A WITH TILDE
  'ä' => 'ae', # LATIN SMALL LETTER A WITH DIAERESIS
  'å' => 'a',  # LATIN SMALL LETTER A WITH RING ABOVE
  'æ' => 'ae', # LATIN SMALL LETTER AE
  'ç' => 'c',  # LATIN SMALL LETTER C WITH CEDILLA
  'è' => 'e',  # LATIN SMALL LETTER E WITH GRAVE
  'é' => 'e',  # LATIN SMALL LETTER E WITH ACUTE
  'ê' => 'e',  # LATIN SMALL LETTER E WITH CIRCUMFLEX
  'ë' => 'e',  # LATIN SMALL LETTER E WITH DIAERESIS
  'ì' => 'i',  # LATIN SMALL LETTER I WITH GRAVE
  'í' => 'i',  # LATIN SMALL LETTER I WITH ACUTE
  'î' => 'i',  # LATIN SMALL LETTER I WITH CIRCUMFLEX
  'ï' => 'i',  # LATIN SMALL LETTER I WITH DIAERESIS
  'ð' => 'dh', # LATIN SMALL LETTER ETH
  'ñ' => 'n',  # LATIN SMALL LETTER N WITH TILDE
  'ò' => 'o',  # LATIN SMALL LETTER O WITH GRAVE
  'ó' => 'o',  # LATIN SMALL LETTER O WITH ACUTE
  'ô' => 'o',  # LATIN SMALL LETTER O WITH CIRCUMFLEX
  'õ' => 'o',  # LATIN SMALL LETTER O WITH TILDE
  'ö' => 'oe', # LATIN SMALL LETTER O WITH DIAERESIS
  'ø' => 'o',  # LATIN SMALL LETTER O WITH STROKE
  'ù' => 'u',  # LATIN SMALL LETTER U WITH GRAVE
  'ú' => 'u',  # LATIN SMALL LETTER U WITH ACUTE
  'û' => 'u',  # LATIN SMALL LETTER U WITH CIRCUMFLEX
  'ü' => 'ue', # LATIN SMALL LETTER U WITH DIAERESIS
  'ý' => 'y',  # LATIN SMALL LETTER Y WITH ACUTE
  'þ' => 'th', # LATIN SMALL LETTER THORN
  'ÿ' => 'y'   # LATIN SMALL LETTER Y WITH DIAERESIS
}

Class Method Summary collapse

Class Method Details

.args_for_map_diacriticsObject



97
98
99
100
101
102
103
104
105
106
# File 'lib/nuggets/i18n.rb', line 97

def self.args_for_map_diacritics
  @args_for_map_diacritics ||= begin
    map = ::Hash.new { |h, k| h[k] = [] }

    DIACRITICS.each { |a| a.each { |i| map[i].concat(a) } }
    map.each { |k, v| v.uniq!; map[k] = "(#{::Regexp.union(*v).source})" }

    [::Regexp.union(*map.keys.sort_by { |k| -k.length }), map.method(:[])]
  end
end