konjac 0.0.2 → 0.0.3
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.
- data/README.md +35 -26
- data/lib/konjac/dictionary.rb +12 -0
- data/lib/konjac/language.rb +1 -1
- data/lib/konjac/version.rb +1 -1
- metadata +13 -13
data/README.md
CHANGED
@@ -3,6 +3,11 @@ konjac
|
|
3
3
|
|
4
4
|
A Ruby command-line utility for translating files using a YAML wordlist
|
5
5
|
|
6
|
+
**Homepage**: http://brymck.herokuapp.com
|
7
|
+
**Author**: Bryan McKelvey
|
8
|
+
**Copyright**: (c) 2012 Bryan McKelvey
|
9
|
+
**License**: MIT
|
10
|
+
|
6
11
|
Installation
|
7
12
|
------------
|
8
13
|
|
@@ -22,41 +27,41 @@ navigate in your command line to a directory of your choice, then run:
|
|
22
27
|
cd konjac
|
23
28
|
rake install
|
24
29
|
|
25
|
-
|
26
|
-
|
30
|
+
Dictionary Format
|
31
|
+
-----------------
|
27
32
|
|
28
|
-
|
29
|
-
following format:
|
33
|
+
Store terms in `~/.konjac/dict.yml`.
|
30
34
|
|
31
|
-
|
35
|
+
**Simple (two-way equivalent terms)** - English "I" is equivalent to Spanish
|
36
|
+
"yo":
|
32
37
|
|
33
|
-
|
38
|
+
-
|
39
|
+
en: I
|
40
|
+
es: yo
|
34
41
|
|
35
|
-
|
36
|
-
|
37
|
-
- english
|
38
|
-
- eng
|
39
|
-
ja:
|
40
|
-
- japanese
|
41
|
-
- jpn
|
42
|
+
**Not as simple** - Japanese lacks a plural, therefore both "dog" and "dogs"
|
43
|
+
translate as 犬:
|
42
44
|
|
43
|
-
|
45
|
+
-
|
46
|
+
en: dog
|
47
|
+
ja:
|
48
|
+
ja: 犬
|
49
|
+
en: dogs? # i.e. the regular expression /dogs?/
|
44
50
|
|
45
|
-
|
46
|
-
|
47
|
-
en: japanese
|
48
|
-
ja: nihongo
|
49
|
-
-
|
50
|
-
en: book
|
51
|
-
ja: hon
|
51
|
+
Usage
|
52
|
+
-----
|
52
53
|
|
53
|
-
|
54
|
+
Translate all text files in the current directory from Japanese into English:
|
54
55
|
|
55
56
|
konjac translate *.txt from japanese to english
|
56
57
|
|
58
|
+
Utilize a document's implied language (English) and translate into Japanese:
|
57
59
|
|
58
|
-
|
59
|
-
|
60
|
+
konjac translate test_en.txt into japanese
|
61
|
+
|
62
|
+
|
63
|
+
Extended Example
|
64
|
+
----------------
|
60
65
|
|
61
66
|
~/.konjac/dict.yml:
|
62
67
|
|
@@ -79,14 +84,18 @@ Example
|
|
79
84
|
ja: 。
|
80
85
|
ja:
|
81
86
|
ja: 。
|
82
|
-
en: !ruby/regexp '
|
87
|
+
en: !ruby/regexp '/\.(?:\s|$)/'
|
83
88
|
- # Spaces between non-ASCII characters
|
84
89
|
en:
|
85
90
|
en: " "
|
86
91
|
ja: !ruby/regexp '/\s{2,}/'
|
87
92
|
ja:
|
88
93
|
ja: "\\1\\2"
|
89
|
-
en: !ruby/regexp '/([
|
94
|
+
en: !ruby/regexp '/([^\w])\s([^\w])/'
|
95
|
+
- # Delete extraneous spaces
|
96
|
+
en:
|
97
|
+
en: ""
|
98
|
+
ja: !ruby/regexp '/\s+$/'
|
90
99
|
|
91
100
|
~/.konjac/test_en.txt
|
92
101
|
|
data/lib/konjac/dictionary.rb
CHANGED
@@ -15,6 +15,7 @@ module Konjac
|
|
15
15
|
|
16
16
|
# Build a regex template for the from language
|
17
17
|
from_template = build_regex_template(from_lang)
|
18
|
+
to_template = build_replacement_template(from_lang, to_lang)
|
18
19
|
|
19
20
|
# Get full path from name
|
20
21
|
full_path = File.expand_path("~/.konjac/#{opts[:name]}.yml")
|
@@ -56,6 +57,7 @@ module Konjac
|
|
56
57
|
unless from_term.is_a?(Regexp)
|
57
58
|
from_term = Regexp.new(from_template % from_term)
|
58
59
|
end
|
60
|
+
to_term = to_template % to_term
|
59
61
|
|
60
62
|
@pairs << [ from_term, to_term ]
|
61
63
|
end
|
@@ -92,6 +94,16 @@ module Konjac
|
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
97
|
+
# Builds a replacement template for the to language, depending on whether
|
98
|
+
# the both from and to languages allow for whitespace
|
99
|
+
def build_replacement_template(from_lang, to_lang)
|
100
|
+
if !Language.has_spaces?(from_lang) && Language.has_spaces?(to_lang)
|
101
|
+
"%s "
|
102
|
+
else
|
103
|
+
"%s"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
95
107
|
private
|
96
108
|
|
97
109
|
def parse_language(lang)
|
data/lib/konjac/language.rb
CHANGED
@@ -237,7 +237,7 @@ module Konjac
|
|
237
237
|
|
238
238
|
# Determine whether the specified language has spaces or not
|
239
239
|
def has_spaces?(two_letter_code)
|
240
|
-
!LANGUAGES_WITHOUT_SPACES.include?(two_letter_code)
|
240
|
+
!LANGUAGES_WITHOUT_SPACES.include?(two_letter_code.to_sym)
|
241
241
|
end
|
242
242
|
|
243
243
|
private
|
data/lib/konjac/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: konjac
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-01-12 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: &
|
16
|
+
requirement: &70311450970640 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70311450970640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70311450970000 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70311450970000
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sdoc
|
38
|
-
requirement: &
|
38
|
+
requirement: &70311450964120 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70311450964120
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: autotest
|
49
|
-
requirement: &
|
49
|
+
requirement: &70311450963500 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70311450963500
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: autotest-fsevent
|
60
|
-
requirement: &
|
60
|
+
requirement: &70311450962920 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70311450962920
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: autotest-growl
|
71
|
-
requirement: &
|
71
|
+
requirement: &70311450962500 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70311450962500
|
80
80
|
description: A Ruby command-line utility for translating files using a YAML wordlist
|
81
81
|
email:
|
82
82
|
- bryan.mckelvey@gmail.com
|