ultra-clean-kit 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/babosa-2.1.0/Changelog.md +119 -0
- data/babosa-2.1.0/MIT-LICENSE +19 -0
- data/babosa-2.1.0/README.md +243 -0
- data/babosa-2.1.0/Rakefile +36 -0
- data/babosa-2.1.0/lib/babosa/identifier.rb +268 -0
- data/babosa-2.1.0/lib/babosa/transliterator/base.rb +94 -0
- data/babosa-2.1.0/lib/babosa/transliterator/bulgarian.rb +30 -0
- data/babosa-2.1.0/lib/babosa/transliterator/cyrillic.rb +108 -0
- data/babosa-2.1.0/lib/babosa/transliterator/danish.rb +17 -0
- data/babosa-2.1.0/lib/babosa/transliterator/german.rb +18 -0
- data/babosa-2.1.0/lib/babosa/transliterator/greek.rb +78 -0
- data/babosa-2.1.0/lib/babosa/transliterator/hindi.rb +138 -0
- data/babosa-2.1.0/lib/babosa/transliterator/latin.rb +199 -0
- data/babosa-2.1.0/lib/babosa/transliterator/macedonian.rb +32 -0
- data/babosa-2.1.0/lib/babosa/transliterator/norwegian.rb +16 -0
- data/babosa-2.1.0/lib/babosa/transliterator/romanian.rb +16 -0
- data/babosa-2.1.0/lib/babosa/transliterator/russian.rb +25 -0
- data/babosa-2.1.0/lib/babosa/transliterator/serbian.rb +38 -0
- data/babosa-2.1.0/lib/babosa/transliterator/spanish.rb +11 -0
- data/babosa-2.1.0/lib/babosa/transliterator/swedish.rb +18 -0
- data/babosa-2.1.0/lib/babosa/transliterator/turkish.rb +10 -0
- data/babosa-2.1.0/lib/babosa/transliterator/ukrainian.rb +33 -0
- data/babosa-2.1.0/lib/babosa/transliterator/vietnamese.rb +146 -0
- data/babosa-2.1.0/lib/babosa/version.rb +7 -0
- data/babosa-2.1.0/lib/babosa.rb +14 -0
- data/babosa-2.1.0/spec/identifier_spec.rb +161 -0
- data/babosa-2.1.0/spec/spec_helper.rb +45 -0
- data/babosa-2.1.0/spec/transliterators/base_spec.rb +15 -0
- data/babosa-2.1.0/spec/transliterators/bulgarian_spec.rb +19 -0
- data/babosa-2.1.0/spec/transliterators/danish_spec.rb +16 -0
- data/babosa-2.1.0/spec/transliterators/german_spec.rb +16 -0
- data/babosa-2.1.0/spec/transliterators/greek_spec.rb +17 -0
- data/babosa-2.1.0/spec/transliterators/hindi_spec.rb +17 -0
- data/babosa-2.1.0/spec/transliterators/latin_spec.rb +8 -0
- data/babosa-2.1.0/spec/transliterators/macedonian_spec.rb +8 -0
- data/babosa-2.1.0/spec/transliterators/norwegian_spec.rb +18 -0
- data/babosa-2.1.0/spec/transliterators/polish_spec.rb +12 -0
- data/babosa-2.1.0/spec/transliterators/romanian_spec.rb +18 -0
- data/babosa-2.1.0/spec/transliterators/russian_spec.rb +8 -0
- data/babosa-2.1.0/spec/transliterators/serbian_spec.rb +24 -0
- data/babosa-2.1.0/spec/transliterators/spanish_spec.rb +12 -0
- data/babosa-2.1.0/spec/transliterators/swedish_spec.rb +18 -0
- data/babosa-2.1.0/spec/transliterators/turkish_spec.rb +24 -0
- data/babosa-2.1.0/spec/transliterators/ukrainian_spec.rb +87 -0
- data/babosa-2.1.0/spec/transliterators/vietnamese_spec.rb +18 -0
- data/ultra-clean-kit.gemspec +12 -0
- metadata +87 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "singleton"
|
|
4
|
+
|
|
5
|
+
module Babosa
|
|
6
|
+
module Transliterator
|
|
7
|
+
def self.get(symbol)
|
|
8
|
+
class_name = symbol.to_s.split("_").map { |a| a.gsub(/\b('?[a-z])/) { Regexp.last_match(1).upcase } }.join
|
|
9
|
+
const_get(class_name)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class Base
|
|
13
|
+
include Singleton
|
|
14
|
+
|
|
15
|
+
APPROXIMATIONS = {
|
|
16
|
+
"×" => "x",
|
|
17
|
+
"÷" => "/",
|
|
18
|
+
"‐" => "-",
|
|
19
|
+
"‑" => "-",
|
|
20
|
+
"‒" => "-",
|
|
21
|
+
"–" => "-",
|
|
22
|
+
"—" => "-",
|
|
23
|
+
"―" => "-",
|
|
24
|
+
"‘" => "'",
|
|
25
|
+
"‛" => "'",
|
|
26
|
+
"“" => '"',
|
|
27
|
+
"”" => '"',
|
|
28
|
+
"„" => '"',
|
|
29
|
+
"‟" => '"',
|
|
30
|
+
"’" => "'",
|
|
31
|
+
"," => ",",
|
|
32
|
+
"。" => ".",
|
|
33
|
+
"!" => "!",
|
|
34
|
+
"?" => "?",
|
|
35
|
+
"、" => ",",
|
|
36
|
+
"(" => "(",
|
|
37
|
+
")" => ")",
|
|
38
|
+
"【" => "[",
|
|
39
|
+
"】" => "]",
|
|
40
|
+
";" => ";",
|
|
41
|
+
":" => ":",
|
|
42
|
+
"《" => "<",
|
|
43
|
+
"》" => ">",
|
|
44
|
+
# various kinds of space characters
|
|
45
|
+
"\xc2\xa0" => " ",
|
|
46
|
+
"\xe2\x80\x80" => " ",
|
|
47
|
+
"\xe2\x80\x81" => " ",
|
|
48
|
+
"\xe2\x80\x82" => " ",
|
|
49
|
+
"\xe2\x80\x83" => " ",
|
|
50
|
+
"\xe2\x80\x84" => " ",
|
|
51
|
+
"\xe2\x80\x85" => " ",
|
|
52
|
+
"\xe2\x80\x86" => " ",
|
|
53
|
+
"\xe2\x80\x87" => " ",
|
|
54
|
+
"\xe2\x80\x88" => " ",
|
|
55
|
+
"\xe2\x80\x89" => " ",
|
|
56
|
+
"\xe2\x80\x8a" => " ",
|
|
57
|
+
"\xe2\x81\x9f" => " ",
|
|
58
|
+
"\xe3\x80\x80" => " "
|
|
59
|
+
}.freeze
|
|
60
|
+
|
|
61
|
+
attr_reader :approximations
|
|
62
|
+
|
|
63
|
+
def initialize
|
|
64
|
+
@approximations = if self.class < Base
|
|
65
|
+
self.class.superclass.instance.approximations.dup
|
|
66
|
+
else
|
|
67
|
+
{}
|
|
68
|
+
end
|
|
69
|
+
self.class.const_get(:APPROXIMATIONS).each_with_object(@approximations) do |object, memo|
|
|
70
|
+
index = object[0].codepoints.shift
|
|
71
|
+
value = object[1].codepoints
|
|
72
|
+
memo[index] = value.length == 1 ? value[0] : value
|
|
73
|
+
end
|
|
74
|
+
@approximations.freeze
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Accepts a single UTF-8 codepoint and returns the ASCII character code
|
|
78
|
+
# used as the transliteration value.
|
|
79
|
+
def [](codepoint)
|
|
80
|
+
@approximations[codepoint]
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Transliterates a string.
|
|
84
|
+
def transliterate(string)
|
|
85
|
+
string.codepoints.map { |char| self[char] || char }.flatten.pack("U*")
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
Dir[File.expand_path("*.rb", __dir__)]
|
|
92
|
+
.reject { |f| f.end_with?("base.rb") }
|
|
93
|
+
.sort
|
|
94
|
+
.each(&method(:require))
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "cyrillic"
|
|
4
|
+
|
|
5
|
+
module Babosa
|
|
6
|
+
module Transliterator
|
|
7
|
+
class Bulgarian < Cyrillic
|
|
8
|
+
APPROXIMATIONS = {
|
|
9
|
+
"Ж" => "J",
|
|
10
|
+
"Й" => "I",
|
|
11
|
+
"Х" => "H",
|
|
12
|
+
"Ц" => "C",
|
|
13
|
+
"Щ" => "Sht",
|
|
14
|
+
"Ъ" => "U",
|
|
15
|
+
"Ь" => "I",
|
|
16
|
+
"Ю" => "Iu",
|
|
17
|
+
"Я" => "Ia",
|
|
18
|
+
"ж" => "j",
|
|
19
|
+
"й" => "i",
|
|
20
|
+
"х" => "h",
|
|
21
|
+
"ц" => "c",
|
|
22
|
+
"щ" => "sht",
|
|
23
|
+
"ъ" => "u",
|
|
24
|
+
"ь" => "i",
|
|
25
|
+
"ю" => "iu",
|
|
26
|
+
"я" => "ia"
|
|
27
|
+
}.freeze
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Babosa
|
|
4
|
+
module Transliterator
|
|
5
|
+
# Approximations are based on GOST 7.79, System B:
|
|
6
|
+
# http://en.wikipedia.org/wiki/ISO_9#GOST_7.79
|
|
7
|
+
class Cyrillic < Base
|
|
8
|
+
APPROXIMATIONS = {
|
|
9
|
+
"Ё" => "Yo",
|
|
10
|
+
"Ѓ" => "G",
|
|
11
|
+
"Є" => "Ye",
|
|
12
|
+
"Ї" => "Yi",
|
|
13
|
+
"Љ" => "L",
|
|
14
|
+
"Њ" => "N",
|
|
15
|
+
"Ќ" => "K",
|
|
16
|
+
"Ў" => "U",
|
|
17
|
+
"Џ" => "Dh",
|
|
18
|
+
"А" => "A",
|
|
19
|
+
"Б" => "B",
|
|
20
|
+
"В" => "V",
|
|
21
|
+
"Г" => "G",
|
|
22
|
+
"Д" => "D",
|
|
23
|
+
"Е" => "E",
|
|
24
|
+
"Ж" => "Zh",
|
|
25
|
+
"З" => "Z",
|
|
26
|
+
"И" => "I",
|
|
27
|
+
"Й" => "J",
|
|
28
|
+
"К" => "K",
|
|
29
|
+
"Л" => "L",
|
|
30
|
+
"М" => "M",
|
|
31
|
+
"Н" => "N",
|
|
32
|
+
"О" => "O",
|
|
33
|
+
"П" => "P",
|
|
34
|
+
"Р" => "R",
|
|
35
|
+
"С" => "S",
|
|
36
|
+
"Т" => "T",
|
|
37
|
+
"У" => "U",
|
|
38
|
+
"Ф" => "F",
|
|
39
|
+
"Х" => "X",
|
|
40
|
+
"Ц" => "Cz",
|
|
41
|
+
"Ч" => "Ch",
|
|
42
|
+
"Ш" => "Sh",
|
|
43
|
+
"Щ" => "Shh",
|
|
44
|
+
"Ъ" => "",
|
|
45
|
+
"Ы" => "Y",
|
|
46
|
+
"Ь" => "",
|
|
47
|
+
"Э" => "E",
|
|
48
|
+
"Ю" => "Yu",
|
|
49
|
+
"Я" => "Ya",
|
|
50
|
+
"а" => "a",
|
|
51
|
+
"б" => "b",
|
|
52
|
+
"в" => "v",
|
|
53
|
+
"г" => "g",
|
|
54
|
+
"д" => "d",
|
|
55
|
+
"е" => "e",
|
|
56
|
+
"ж" => "zh",
|
|
57
|
+
"з" => "z",
|
|
58
|
+
"и" => "i",
|
|
59
|
+
"й" => "j",
|
|
60
|
+
"к" => "k",
|
|
61
|
+
"л" => "l",
|
|
62
|
+
"м" => "m",
|
|
63
|
+
"н" => "n",
|
|
64
|
+
"о" => "o",
|
|
65
|
+
"п" => "p",
|
|
66
|
+
"р" => "r",
|
|
67
|
+
"с" => "s",
|
|
68
|
+
"т" => "t",
|
|
69
|
+
"у" => "u",
|
|
70
|
+
"ф" => "f",
|
|
71
|
+
"х" => "x",
|
|
72
|
+
"ц" => "cz",
|
|
73
|
+
"ч" => "ch",
|
|
74
|
+
"ш" => "sh",
|
|
75
|
+
"щ" => "shh",
|
|
76
|
+
"ъ" => "",
|
|
77
|
+
"ы" => "y",
|
|
78
|
+
"ь" => "",
|
|
79
|
+
"э" => "e",
|
|
80
|
+
"ю" => "yu",
|
|
81
|
+
"я" => "ya",
|
|
82
|
+
"ё" => "yo",
|
|
83
|
+
"ѓ" => "g",
|
|
84
|
+
"є" => "ye",
|
|
85
|
+
"ї" => "yi",
|
|
86
|
+
"љ" => "l",
|
|
87
|
+
"њ" => "n",
|
|
88
|
+
"ќ" => "k",
|
|
89
|
+
"ў" => "u",
|
|
90
|
+
"џ" => "dh",
|
|
91
|
+
"Ѣ" => "Ye",
|
|
92
|
+
"ѣ" => "ye",
|
|
93
|
+
"Ѫ" => "O",
|
|
94
|
+
"ѫ" => "o",
|
|
95
|
+
"Ѳ" => "Fh",
|
|
96
|
+
"ѳ" => "fh",
|
|
97
|
+
"Ѵ" => "Yh",
|
|
98
|
+
"ѵ" => "yh",
|
|
99
|
+
"Ґ" => "G",
|
|
100
|
+
"ґ" => "g"
|
|
101
|
+
}.freeze
|
|
102
|
+
|
|
103
|
+
def transliterate(string)
|
|
104
|
+
super.gsub(/(c)z([ieyj])/) { "#{Regexp.last_match(1)}#{Regexp.last_match(2)}" }
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "latin"
|
|
4
|
+
|
|
5
|
+
module Babosa
|
|
6
|
+
module Transliterator
|
|
7
|
+
class Danish < Latin
|
|
8
|
+
APPROXIMATIONS = {
|
|
9
|
+
"æ" => "ae",
|
|
10
|
+
"ø" => "oe",
|
|
11
|
+
"å" => "aa",
|
|
12
|
+
"Ø" => "Oe",
|
|
13
|
+
"Å" => "Aa"
|
|
14
|
+
}.freeze
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "latin"
|
|
4
|
+
|
|
5
|
+
module Babosa
|
|
6
|
+
module Transliterator
|
|
7
|
+
class German < Latin
|
|
8
|
+
APPROXIMATIONS = {
|
|
9
|
+
"ä" => "ae",
|
|
10
|
+
"ö" => "oe",
|
|
11
|
+
"ü" => "ue",
|
|
12
|
+
"Ä" => "Ae",
|
|
13
|
+
"Ö" => "Oe",
|
|
14
|
+
"Ü" => "Ue"
|
|
15
|
+
}.freeze
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Babosa
|
|
4
|
+
module Transliterator
|
|
5
|
+
class Greek < Base
|
|
6
|
+
APPROXIMATIONS = {
|
|
7
|
+
"Α" => "A",
|
|
8
|
+
"Ά" => "A",
|
|
9
|
+
"α" => "a",
|
|
10
|
+
"ά" => "a",
|
|
11
|
+
"Β" => "V",
|
|
12
|
+
"β" => "v",
|
|
13
|
+
"Γ" => "G",
|
|
14
|
+
"γ" => "g",
|
|
15
|
+
"Δ" => "D",
|
|
16
|
+
"δ" => "d",
|
|
17
|
+
"Ε" => "E",
|
|
18
|
+
"Έ" => "E",
|
|
19
|
+
"ε" => "e",
|
|
20
|
+
"έ" => "e",
|
|
21
|
+
"Ζ" => "Z",
|
|
22
|
+
"ζ" => "z",
|
|
23
|
+
"Η" => "I",
|
|
24
|
+
"Ή" => "i",
|
|
25
|
+
"η" => "i",
|
|
26
|
+
"ή" => "i",
|
|
27
|
+
"Θ" => "TH",
|
|
28
|
+
"θ" => "th",
|
|
29
|
+
"Ι" => "I",
|
|
30
|
+
"Ί" => "Ι",
|
|
31
|
+
"Î" => "I",
|
|
32
|
+
"ι" => "i",
|
|
33
|
+
"ί" => "i",
|
|
34
|
+
"ϊ" => "i",
|
|
35
|
+
"ΐ" => "i",
|
|
36
|
+
"Κ" => "K",
|
|
37
|
+
"κ" => "k",
|
|
38
|
+
"Λ" => "L",
|
|
39
|
+
"λ" => "l",
|
|
40
|
+
"Μ" => "M",
|
|
41
|
+
"μ" => "m",
|
|
42
|
+
"Ν" => "N",
|
|
43
|
+
"ν" => "n",
|
|
44
|
+
"Ξ" => "KS",
|
|
45
|
+
"ξ" => "ks",
|
|
46
|
+
"Ο" => "O",
|
|
47
|
+
"Ό" => "O",
|
|
48
|
+
"ο" => "o",
|
|
49
|
+
"ό" => "o",
|
|
50
|
+
"Π" => "P",
|
|
51
|
+
"π" => "p",
|
|
52
|
+
"Ρ" => "R",
|
|
53
|
+
"ρ" => "r",
|
|
54
|
+
"Σ" => "S",
|
|
55
|
+
"σ" => "s",
|
|
56
|
+
"ς" => "s",
|
|
57
|
+
"Τ" => "T",
|
|
58
|
+
"τ" => "t",
|
|
59
|
+
"Υ" => "Y",
|
|
60
|
+
"Ύ" => "Y",
|
|
61
|
+
"υ" => "y",
|
|
62
|
+
"ύ" => "y",
|
|
63
|
+
"ϋ" => "y",
|
|
64
|
+
"ΰ" => "y",
|
|
65
|
+
"Φ" => "F",
|
|
66
|
+
"φ" => "f",
|
|
67
|
+
"Χ" => "X",
|
|
68
|
+
"χ" => "x",
|
|
69
|
+
"Ψ" => "PS",
|
|
70
|
+
"ψ" => "ps",
|
|
71
|
+
"Ω" => "O",
|
|
72
|
+
"Ώ" => "O",
|
|
73
|
+
"ω" => "o",
|
|
74
|
+
"ώ" => "o"
|
|
75
|
+
}.freeze
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Babosa
|
|
4
|
+
module Transliterator
|
|
5
|
+
class Hindi < Base
|
|
6
|
+
APPROXIMATIONS = {
|
|
7
|
+
"ऀ" => "n",
|
|
8
|
+
"ँ" => "n",
|
|
9
|
+
"ं" => "n",
|
|
10
|
+
"ः" => "h",
|
|
11
|
+
"ऄ" => "a",
|
|
12
|
+
"अ" => "a",
|
|
13
|
+
"आ" => "aa",
|
|
14
|
+
"इ" => "i",
|
|
15
|
+
"ई" => "ii",
|
|
16
|
+
"उ" => "u",
|
|
17
|
+
"ऊ" => "uu",
|
|
18
|
+
"ऋ" => "ri",
|
|
19
|
+
"ऌ" => "lri",
|
|
20
|
+
"ऍ" => "e",
|
|
21
|
+
"ऎ" => "e",
|
|
22
|
+
"ए" => "e",
|
|
23
|
+
"ऐ" => "ei",
|
|
24
|
+
"ऑ" => "o",
|
|
25
|
+
"ऒ" => "o",
|
|
26
|
+
"ओ" => "o",
|
|
27
|
+
"औ" => "ou",
|
|
28
|
+
"क" => "k",
|
|
29
|
+
"ख" => "kh",
|
|
30
|
+
"ग" => "g",
|
|
31
|
+
"घ" => "gh",
|
|
32
|
+
"ङ" => "d",
|
|
33
|
+
"च" => "ch",
|
|
34
|
+
"छ" => "chh",
|
|
35
|
+
"ज" => "j",
|
|
36
|
+
"झ" => "jh",
|
|
37
|
+
"ञ" => "ny",
|
|
38
|
+
"ट" => "tt",
|
|
39
|
+
"ठ" => "tth",
|
|
40
|
+
"ड" => "dd",
|
|
41
|
+
"ढ" => "ddh",
|
|
42
|
+
"ण" => "nn",
|
|
43
|
+
"त" => "t",
|
|
44
|
+
"थ" => "th",
|
|
45
|
+
"द" => "d",
|
|
46
|
+
"ध" => "dh",
|
|
47
|
+
"न" => "n",
|
|
48
|
+
"ऩ" => "nnn",
|
|
49
|
+
"प" => "p",
|
|
50
|
+
"फ" => "ph",
|
|
51
|
+
"ब" => "b",
|
|
52
|
+
"भ" => "bh",
|
|
53
|
+
"म" => "m",
|
|
54
|
+
"य" => "y",
|
|
55
|
+
"र" => "r",
|
|
56
|
+
"ऱ" => "rr",
|
|
57
|
+
"ल" => "l",
|
|
58
|
+
"ळ" => "ll",
|
|
59
|
+
"ऴ" => "ll",
|
|
60
|
+
"व" => "v",
|
|
61
|
+
"श" => "sh",
|
|
62
|
+
"ष" => "ss",
|
|
63
|
+
"स" => "s",
|
|
64
|
+
"ह" => "h",
|
|
65
|
+
"ऺ" => "oe",
|
|
66
|
+
"ऻ" => "ooe",
|
|
67
|
+
"़" => "",
|
|
68
|
+
"ऽ" => "-",
|
|
69
|
+
"ा" => "aa",
|
|
70
|
+
"ि" => "i",
|
|
71
|
+
"ी" => "ii",
|
|
72
|
+
"ु" => "u",
|
|
73
|
+
"ू" => "uu",
|
|
74
|
+
"ृ" => "r",
|
|
75
|
+
"ॄ" => "rr",
|
|
76
|
+
"ॅ" => "e",
|
|
77
|
+
"ॆ" => "e",
|
|
78
|
+
"े" => "e",
|
|
79
|
+
"ै" => "ai",
|
|
80
|
+
"ॉ" => "o",
|
|
81
|
+
"ॊ" => "o",
|
|
82
|
+
"ो" => "o",
|
|
83
|
+
"ौ" => "au",
|
|
84
|
+
"्" => "",
|
|
85
|
+
"ॎ" => "e",
|
|
86
|
+
"ॏ" => "aw",
|
|
87
|
+
"ॐ" => "om",
|
|
88
|
+
"॑" => "",
|
|
89
|
+
"॒" => "_",
|
|
90
|
+
"॓" => "",
|
|
91
|
+
"॔" => "",
|
|
92
|
+
"ॕ" => "ee",
|
|
93
|
+
"ॖ" => "ue",
|
|
94
|
+
"ॗ" => "uue",
|
|
95
|
+
"क़" => "q",
|
|
96
|
+
"ख़" => "khh",
|
|
97
|
+
"ग़" => "ghh",
|
|
98
|
+
"ज़" => "za",
|
|
99
|
+
"ड़" => "dddh",
|
|
100
|
+
"ढ़" => "rh",
|
|
101
|
+
"फ़" => "f",
|
|
102
|
+
"य़" => "yy",
|
|
103
|
+
"ॠ" => "rri",
|
|
104
|
+
"ॡ" => "lr",
|
|
105
|
+
"ॢ" => "l",
|
|
106
|
+
"ॣ" => "l",
|
|
107
|
+
"।" => ".",
|
|
108
|
+
"॥" => "..",
|
|
109
|
+
"०" => "0",
|
|
110
|
+
"१" => "1",
|
|
111
|
+
"२" => "2",
|
|
112
|
+
"३" => "3",
|
|
113
|
+
"४" => "4",
|
|
114
|
+
"५" => "5",
|
|
115
|
+
"६" => "6",
|
|
116
|
+
"७" => "7",
|
|
117
|
+
"८" => "8",
|
|
118
|
+
"९" => "9",
|
|
119
|
+
"॰" => ".",
|
|
120
|
+
"ॱ" => ".",
|
|
121
|
+
"ॲ" => "a",
|
|
122
|
+
"ॳ" => "oe",
|
|
123
|
+
"ॴ" => "ooe",
|
|
124
|
+
"ॵ" => "aw",
|
|
125
|
+
"ॶ" => "ue",
|
|
126
|
+
"ॷ" => "uue",
|
|
127
|
+
"ॸ" => "dd",
|
|
128
|
+
"ॹ" => "zh",
|
|
129
|
+
"ॺ" => "y",
|
|
130
|
+
"ॻ" => "gg",
|
|
131
|
+
"ॼ" => "jj",
|
|
132
|
+
"ॽ" => "?",
|
|
133
|
+
"ॾ" => "ddd",
|
|
134
|
+
"ॿ" => "bb"
|
|
135
|
+
}.freeze
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
end
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Babosa
|
|
4
|
+
module Transliterator
|
|
5
|
+
class Latin < Base
|
|
6
|
+
APPROXIMATIONS = {
|
|
7
|
+
"À" => "A",
|
|
8
|
+
"Á" => "A",
|
|
9
|
+
"Â" => "A",
|
|
10
|
+
"Ã" => "A",
|
|
11
|
+
"Ä" => "A",
|
|
12
|
+
"Å" => "A",
|
|
13
|
+
"Æ" => "Ae",
|
|
14
|
+
"Ç" => "C",
|
|
15
|
+
"È" => "E",
|
|
16
|
+
"É" => "E",
|
|
17
|
+
"Ê" => "E",
|
|
18
|
+
"Ë" => "E",
|
|
19
|
+
"Ì" => "I",
|
|
20
|
+
"Í" => "I",
|
|
21
|
+
"Î" => "I",
|
|
22
|
+
"Ï" => "I",
|
|
23
|
+
"Ð" => "D",
|
|
24
|
+
"Ñ" => "N",
|
|
25
|
+
"Ò" => "O",
|
|
26
|
+
"Ó" => "O",
|
|
27
|
+
"Ô" => "O",
|
|
28
|
+
"Õ" => "O",
|
|
29
|
+
"Ö" => "O",
|
|
30
|
+
"Ø" => "O",
|
|
31
|
+
"Ù" => "U",
|
|
32
|
+
"Ú" => "U",
|
|
33
|
+
"Û" => "U",
|
|
34
|
+
"Ü" => "U",
|
|
35
|
+
"Ý" => "Y",
|
|
36
|
+
"Þ" => "Th",
|
|
37
|
+
"ß" => "ss",
|
|
38
|
+
"à" => "a",
|
|
39
|
+
"á" => "a",
|
|
40
|
+
"â" => "a",
|
|
41
|
+
"ã" => "a",
|
|
42
|
+
"ä" => "a",
|
|
43
|
+
"å" => "a",
|
|
44
|
+
"æ" => "ae",
|
|
45
|
+
"ç" => "c",
|
|
46
|
+
"è" => "e",
|
|
47
|
+
"é" => "e",
|
|
48
|
+
"ê" => "e",
|
|
49
|
+
"ë" => "e",
|
|
50
|
+
"ì" => "i",
|
|
51
|
+
"í" => "i",
|
|
52
|
+
"î" => "i",
|
|
53
|
+
"ï" => "i",
|
|
54
|
+
"ð" => "d",
|
|
55
|
+
"ñ" => "n",
|
|
56
|
+
"ò" => "o",
|
|
57
|
+
"ó" => "o",
|
|
58
|
+
"ô" => "o",
|
|
59
|
+
"õ" => "o",
|
|
60
|
+
"ö" => "o",
|
|
61
|
+
"ø" => "o",
|
|
62
|
+
"ù" => "u",
|
|
63
|
+
"ú" => "u",
|
|
64
|
+
"û" => "u",
|
|
65
|
+
"ü" => "u",
|
|
66
|
+
"ý" => "y",
|
|
67
|
+
"þ" => "th",
|
|
68
|
+
"ÿ" => "y",
|
|
69
|
+
"Ā" => "A",
|
|
70
|
+
"Ă" => "A",
|
|
71
|
+
"Ą" => "A",
|
|
72
|
+
"Ć" => "C",
|
|
73
|
+
"Ĉ" => "C",
|
|
74
|
+
"Ċ" => "C",
|
|
75
|
+
"Č" => "C",
|
|
76
|
+
"Ď" => "D",
|
|
77
|
+
"Đ" => "D",
|
|
78
|
+
"Ē" => "E",
|
|
79
|
+
"Ĕ" => "E",
|
|
80
|
+
"Ė" => "E",
|
|
81
|
+
"Ę" => "E",
|
|
82
|
+
"Ě" => "E",
|
|
83
|
+
"Ĝ" => "G",
|
|
84
|
+
"Ğ" => "G",
|
|
85
|
+
"Ġ" => "G",
|
|
86
|
+
"Ģ" => "G",
|
|
87
|
+
"Ĥ" => "H",
|
|
88
|
+
"Ħ" => "H",
|
|
89
|
+
"Ĩ" => "I",
|
|
90
|
+
"Ī" => "I",
|
|
91
|
+
"Ĭ" => "I",
|
|
92
|
+
"Į" => "I",
|
|
93
|
+
"İ" => "I",
|
|
94
|
+
"IJ" => "Ij",
|
|
95
|
+
"Ĵ" => "J",
|
|
96
|
+
"Ķ" => "K",
|
|
97
|
+
"Ĺ" => "L",
|
|
98
|
+
"Ļ" => "L",
|
|
99
|
+
"Ľ" => "L",
|
|
100
|
+
"Ŀ" => "L",
|
|
101
|
+
"Ł" => "L",
|
|
102
|
+
"Ń" => "N",
|
|
103
|
+
"Ņ" => "N",
|
|
104
|
+
"Ň" => "N",
|
|
105
|
+
"Ŋ" => "Ng",
|
|
106
|
+
"Ō" => "O",
|
|
107
|
+
"Ŏ" => "O",
|
|
108
|
+
"Ő" => "O",
|
|
109
|
+
"Œ" => "OE",
|
|
110
|
+
"Ŕ" => "R",
|
|
111
|
+
"Ŗ" => "R",
|
|
112
|
+
"Ř" => "R",
|
|
113
|
+
"Ś" => "S",
|
|
114
|
+
"Ŝ" => "S",
|
|
115
|
+
"Ş" => "S",
|
|
116
|
+
"Š" => "S",
|
|
117
|
+
"Ţ" => "T",
|
|
118
|
+
"Ť" => "T",
|
|
119
|
+
"Ŧ" => "T",
|
|
120
|
+
"Ũ" => "U",
|
|
121
|
+
"Ū" => "U",
|
|
122
|
+
"Ŭ" => "U",
|
|
123
|
+
"Ů" => "U",
|
|
124
|
+
"Ű" => "U",
|
|
125
|
+
"Ų" => "U",
|
|
126
|
+
"Ŵ" => "W",
|
|
127
|
+
"Ŷ" => "Y",
|
|
128
|
+
"Ÿ" => "Y",
|
|
129
|
+
"Ź" => "Z",
|
|
130
|
+
"Ż" => "Z",
|
|
131
|
+
"Ž" => "Z",
|
|
132
|
+
"ā" => "a",
|
|
133
|
+
"ă" => "a",
|
|
134
|
+
"ą" => "a",
|
|
135
|
+
"ć" => "c",
|
|
136
|
+
"ĉ" => "c",
|
|
137
|
+
"ċ" => "c",
|
|
138
|
+
"č" => "c",
|
|
139
|
+
"ď" => "d",
|
|
140
|
+
"đ" => "d",
|
|
141
|
+
"ē" => "e",
|
|
142
|
+
"ĕ" => "e",
|
|
143
|
+
"ė" => "e",
|
|
144
|
+
"ę" => "e",
|
|
145
|
+
"ě" => "e",
|
|
146
|
+
"ĝ" => "g",
|
|
147
|
+
"ğ" => "g",
|
|
148
|
+
"ġ" => "g",
|
|
149
|
+
"ģ" => "g",
|
|
150
|
+
"ĥ" => "h",
|
|
151
|
+
"ħ" => "h",
|
|
152
|
+
"ĩ" => "i",
|
|
153
|
+
"ī" => "i",
|
|
154
|
+
"ĭ" => "i",
|
|
155
|
+
"į" => "i",
|
|
156
|
+
"ı" => "i",
|
|
157
|
+
"ij" => "ij",
|
|
158
|
+
"ĵ" => "j",
|
|
159
|
+
"ķ" => "k",
|
|
160
|
+
"ĸ" => "k",
|
|
161
|
+
"ĺ" => "l",
|
|
162
|
+
"ļ" => "l",
|
|
163
|
+
"ľ" => "l",
|
|
164
|
+
"ŀ" => "l",
|
|
165
|
+
"ł" => "l",
|
|
166
|
+
"ń" => "n",
|
|
167
|
+
"ņ" => "n",
|
|
168
|
+
"ň" => "n",
|
|
169
|
+
"ʼn" => "n",
|
|
170
|
+
"ŋ" => "ng",
|
|
171
|
+
"ō" => "o",
|
|
172
|
+
"ŏ" => "o",
|
|
173
|
+
"ő" => "o",
|
|
174
|
+
"œ" => "oe",
|
|
175
|
+
"ŕ" => "r",
|
|
176
|
+
"ŗ" => "r",
|
|
177
|
+
"ř" => "r",
|
|
178
|
+
"ś" => "s",
|
|
179
|
+
"ŝ" => "s",
|
|
180
|
+
"ş" => "s",
|
|
181
|
+
"š" => "s",
|
|
182
|
+
"ţ" => "t",
|
|
183
|
+
"ť" => "t",
|
|
184
|
+
"ŧ" => "t",
|
|
185
|
+
"ũ" => "u",
|
|
186
|
+
"ū" => "u",
|
|
187
|
+
"ŭ" => "u",
|
|
188
|
+
"ů" => "u",
|
|
189
|
+
"ű" => "u",
|
|
190
|
+
"ų" => "u",
|
|
191
|
+
"ŵ" => "w",
|
|
192
|
+
"ŷ" => "y",
|
|
193
|
+
"ž" => "z",
|
|
194
|
+
"ź" => "z",
|
|
195
|
+
"ż" => "z"
|
|
196
|
+
}.freeze
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|