translit 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +2 -2
- data/lib/translit.rb +14 -4
- metadata +1 -1
data/README.markdown
CHANGED
@@ -12,12 +12,12 @@ Or you can translit stdin now via just: <code>translit</code>. To stop stdin inp
|
|
12
12
|
|
13
13
|
## Русский ##
|
14
14
|
|
15
|
-
|
15
|
+
Эта простая и элегантная программа позволит вам проводить транслитерацию между кирилицей и латиницей. Ее легко использовать как в командной строке так и в вашем коде.
|
16
16
|
|
17
17
|
Устанавливается она просто: <code>gem install translit</code>
|
18
18
|
|
19
19
|
### Использование ###
|
20
20
|
|
21
|
-
Для использования translit в командной строке просто напишите <code>translit [your_input_here]</code> где ваш текст может быть написан
|
21
|
+
Для использования translit в командной строке просто напишите <code>translit [your_input_here]</code> где ваш текст может быть написан используя русскую клавиатуру либо латинскую
|
22
22
|
|
23
23
|
Либо вы можете просто вызвать программу и передавать текст в потоке чтения данных <code>translit</code>. Чтобы прервать поток используется стандарная система .\n (напишите . и нажмите enter на чистой строке)
|
data/lib/translit.rb
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
module Translit
|
4
4
|
def self.convert(text, enforce_language = nil)
|
5
|
-
language =
|
6
|
-
|
7
|
-
|
5
|
+
language = if enforce_language
|
6
|
+
enforce_input_language(enforce_language)
|
7
|
+
else
|
8
|
+
detect_input_language(text.split(/\s+/).first)
|
9
|
+
end
|
8
10
|
|
9
11
|
map = self.send(language.to_s).sort_by {|k,v| v.length <=> k.length}
|
10
12
|
map.each do |translit_key, translit_value|
|
@@ -29,6 +31,14 @@ private
|
|
29
31
|
text.scan(/\w+/).empty? ? :russian : :english
|
30
32
|
end
|
31
33
|
|
34
|
+
def self.enforce_input_language(language)
|
35
|
+
if language == :english
|
36
|
+
:russian
|
37
|
+
else
|
38
|
+
:english
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
32
42
|
def self.english
|
33
43
|
{ "a"=>["А","а"], "b"=>["Б","б"], "v"=>["В","в"], "g"=>["Г","г"], "d"=>["Д","д"], "e"=>["Е","е"], "jo"=>["Ё","ё"], "yo"=>["Ё","ё"], "ö"=>["Ё","ё"], "zh"=>["Ж","ж"],
|
34
44
|
"z"=>["З","з"], "i"=>["И","и"], "j"=>["Й","й"], "k"=>["К","к"], "l"=>["Л","л"], "m"=>["М","м"], "n"=>["Н","н"], "o"=>["О","о"], "p"=>["П","п"], "r"=>["Р","р"],
|
@@ -40,4 +50,4 @@ private
|
|
40
50
|
def self.russian
|
41
51
|
@russian ||= create_russian_map
|
42
52
|
end
|
43
|
-
end
|
53
|
+
end
|