translit 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +16 -19
- data/bin/translit +0 -0
- data/lib/translit.rb +16 -13
- metadata +25 -58
data/README.markdown
CHANGED
@@ -1,26 +1,23 @@
|
|
1
|
-
##
|
1
|
+
## English ##
|
2
2
|
|
3
|
-
It is a simple library allowing you to transliterate between cyrillic and latin.
|
4
|
-
R: Это простая и элегантная программа позволит вам проводить транслитерацию между кирилицой и латиницой.
|
3
|
+
It is a simple library allowing you to transliterate between cyrillic and latin. It is easy to use from the command line and in your code.
|
5
4
|
|
6
|
-
|
7
|
-
R: Ее легко использовать как в коммандной строке так и в вашем коде.
|
5
|
+
Install it via: <code>gem install translit</code>
|
8
6
|
|
9
|
-
|
10
|
-
R: Устанавливается она просто:
|
11
|
-
<code>gem install translit</code>
|
7
|
+
### Usage ###
|
12
8
|
|
13
|
-
|
9
|
+
To use translit from the command line you just type <code>translit [your_input_here]</code> where your input could be in cyrillic or latin.
|
14
10
|
|
15
|
-
To use
|
16
|
-
R: Для использовавания translit в командной строке просто напишите
|
17
|
-
<code>translit [your_input_here]</code>
|
18
|
-
where your input could be in cyrillic or latin
|
19
|
-
R: где ваш текст может быть написан успользуя русскую клавиатуру либо латинскую
|
11
|
+
Or you can translit stdin now via just: <code>translit</code>. To stop stdin input use .\n (press dot and then enter on the new line)
|
20
12
|
|
21
|
-
|
22
|
-
R: Либо вы можете просто вызвать программу и передавать текст в потоке чтения данных
|
23
|
-
<code>translit</code>
|
13
|
+
## Русский ##
|
24
14
|
|
25
|
-
|
26
|
-
|
15
|
+
Это простая и элегантная программа позволит вам проводить транслитерацию между кирилицой и латиницой. Ее легко использовать как в коммандной строке так и в вашем коде.
|
16
|
+
|
17
|
+
Устанавливается она просто: <code>gem install translit</code>
|
18
|
+
|
19
|
+
### Использование ###
|
20
|
+
|
21
|
+
Для использования translit в командной строке просто напишите <code>translit [your_input_here]</code> где ваш текст может быть написан успользуя русскую клавиатуру либо латинскую
|
22
|
+
|
23
|
+
Либо вы можете просто вызвать программу и передавать текст в потоке чтения данных <code>translit</code>. Чтобы прервать поток используется стандарная система .\n (напишите . и нажмите enter на чистой строке)
|
data/bin/translit
CHANGED
File without changes
|
data/lib/translit.rb
CHANGED
@@ -1,21 +1,12 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
3
|
module Translit
|
4
|
-
def self.
|
5
|
-
|
6
|
-
"z"=>["З","з"], "i"=>["И","и"], "j"=>["Й","й"], "k"=>["К","к"], "l"=>["Л","л"], "m"=>["М","м"], "n"=>["Н","н"], "o"=>["О","о"], "p"=>["П","п"], "r"=>["Р","р"],
|
7
|
-
"s"=>["С","с"], "t"=>["Т","т"], "u"=>["У","у"], "f"=>["Ф","ф"], "h"=>["Х","х"], "x"=>["Х","х"], "c"=>["Ц","ц"], "ch"=>["Ч","ч"], "sh"=>["Ш","ш"], "w"=>["Щ","щ"],
|
8
|
-
"shh"=>["Щ","щ"], "sch"=>["Щ","щ"], "#"=>["Ъ","ъ"], "y"=>["Ы","ы"], "'"=>["Ь","ь"], "je"=>["Э","э"], "ä"=>["Э","э"], "ju"=>["Ю","ю"], "yu"=>["Ю","ю"],
|
9
|
-
"ü"=>["Ю","ю"], "ya"=>["Я","я"], "ja"=>["Я","я"], "q"=>["Я","я"]}
|
10
|
-
end
|
4
|
+
def self.convert(text, enforce_language = nil)
|
5
|
+
language = detect_input_language(text.split(/\s+/).first)
|
11
6
|
|
12
|
-
|
13
|
-
@russian ||= create_russian_map
|
14
|
-
end
|
7
|
+
return text if language == enforce_language
|
15
8
|
|
16
|
-
|
17
|
-
lang = detect_input_language(text.split(/\s+/).first)
|
18
|
-
map = self.send(lang.to_s).sort_by {|k,v| v.length <=> k.length}
|
9
|
+
map = self.send(language.to_s).sort_by {|k,v| v.length <=> k.length}
|
19
10
|
map.each do |translit_key, translit_value|
|
20
11
|
text.gsub!(translit_key.capitalize, translit_value.first)
|
21
12
|
text.gsub!(translit_key, translit_value.last)
|
@@ -37,4 +28,16 @@ private
|
|
37
28
|
def self.detect_input_language(text)
|
38
29
|
text.scan(/\w+/).empty? ? :russian : :english
|
39
30
|
end
|
31
|
+
|
32
|
+
def self.english
|
33
|
+
{ "a"=>["А","а"], "b"=>["Б","б"], "v"=>["В","в"], "g"=>["Г","г"], "d"=>["Д","д"], "e"=>["Е","е"], "jo"=>["Ё","ё"], "yo"=>["Ё","ё"], "ö"=>["Ё","ё"], "zh"=>["Ж","ж"],
|
34
|
+
"z"=>["З","з"], "i"=>["И","и"], "j"=>["Й","й"], "k"=>["К","к"], "l"=>["Л","л"], "m"=>["М","м"], "n"=>["Н","н"], "o"=>["О","о"], "p"=>["П","п"], "r"=>["Р","р"],
|
35
|
+
"s"=>["С","с"], "t"=>["Т","т"], "u"=>["У","у"], "f"=>["Ф","ф"], "h"=>["Х","х"], "x"=>["Х","х"], "c"=>["Ц","ц"], "ch"=>["Ч","ч"], "sh"=>["Ш","ш"], "w"=>["Щ","щ"],
|
36
|
+
"shh"=>["Щ","щ"], "sch"=>["Щ","щ"], "#"=>["Ъ","ъ"], "y"=>["Ы","ы"], "'"=>["Ь","ь"], "je"=>["Э","э"], "ä"=>["Э","э"], "ju"=>["Ю","ю"], "yu"=>["Ю","ю"],
|
37
|
+
"ü"=>["Ю","ю"], "ya"=>["Я","я"], "ja"=>["Я","я"], "q"=>["Я","я"]}
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.russian
|
41
|
+
@russian ||= create_russian_map
|
42
|
+
end
|
40
43
|
end
|
metadata
CHANGED
@@ -1,83 +1,50 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: translit
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- tjbladez
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2010-09-28 00:00:00 -05:00
|
19
|
-
default_executable: bin/translit
|
12
|
+
date: 2010-09-28 00:00:00.000000000Z
|
20
13
|
dependencies: []
|
21
|
-
|
22
|
-
|
23
|
-
VHJhbnNsaXRlcmF0aW9uIGJldHdlZW4gY3lyaWxsaWMgPC0+IGxhdGluIHwg
|
24
|
-
0KLRgNCw0L3RgdC70LjRgtC10YDQsNGG0LjRjyDQvNC10LbQtNGDINC60LjR
|
25
|
-
gNC40LvQuNGG0L7QuSDQuCDQu9Cw0YLQuNC90LjRhtC+0Lkg
|
26
|
-
|
14
|
+
description: ! 'Transliteration between cyrillic <-> latin | Транслитерация между
|
15
|
+
кирилицой и латиницой '
|
27
16
|
email: tjbladez@gmail.com
|
28
|
-
executables:
|
17
|
+
executables:
|
29
18
|
- translit
|
30
19
|
extensions: []
|
31
|
-
|
32
20
|
extra_rdoc_files: []
|
33
|
-
|
34
|
-
files:
|
21
|
+
files:
|
35
22
|
- bin/translit
|
36
23
|
- lib/translit.rb
|
37
24
|
- README.markdown
|
38
|
-
has_rdoc: false
|
39
25
|
homepage: http://github.com/tjbladez/translit
|
40
26
|
licenses: []
|
41
|
-
|
42
|
-
post_install_message: !binary |
|
43
|
-
WW91IGFyZSByZWFkeSB0byB0cmFuc2xpdGVyYXRlIHwg0JLRiyDQs9C+0YLQ
|
44
|
-
vtCy0Ysg0Log0YLRgNCw0L3RgdC70LjRgtC10YDQsNGG0LjQuA==
|
45
|
-
|
27
|
+
post_install_message: You are ready to transliterate | Вы готовы к транслитерации
|
46
28
|
rdoc_options: []
|
47
|
-
|
48
|
-
require_paths:
|
29
|
+
require_paths:
|
49
30
|
- lib
|
50
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
32
|
none: false
|
52
|
-
requirements:
|
53
|
-
- -
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
|
56
|
-
|
57
|
-
- 0
|
58
|
-
version: "0"
|
59
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ! '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
38
|
none: false
|
61
|
-
requirements:
|
62
|
-
- -
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
|
65
|
-
segments:
|
66
|
-
- 0
|
67
|
-
version: "0"
|
39
|
+
requirements:
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
68
43
|
requirements: []
|
69
|
-
|
70
44
|
rubyforge_project:
|
71
|
-
rubygems_version: 1.
|
45
|
+
rubygems_version: 1.8.10
|
72
46
|
signing_key:
|
73
47
|
specification_version: 3
|
74
|
-
summary:
|
75
|
-
|
76
|
-
b20gY29tbWFuZC1saW5lIG9yIHlvdXIgcHJvZ3JhbSB8INCi0YDQsNC90YHQ
|
77
|
-
u9C40YLQtdGA0LDRhtC40Y8g0LzQtdC20LTRgyDQutC40YDQuNC70LjRhtC+
|
78
|
-
0Lkg0Lgg0LvQsNGC0LjQvdC40YbQvtC5INGBINC60L7QvNC80LDQvdC00L3Q
|
79
|
-
vtC5INGB0YLRgNC+0LrQuCDQuNC70Lgg0LIg0YLQstC+0LXQuSDQv9GA0L7Q
|
80
|
-
s9GA0LDQvNC80LU=
|
81
|
-
|
48
|
+
summary: Transliteration between cyrillic <-> latin from command-line or your program
|
49
|
+
| Транслитерация между кирилицой и латиницой с коммандной строки или в твоей программе
|
82
50
|
test_files: []
|
83
|
-
|