i18n_generator 0.0.1 → 1.0.0
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 +4 -4
- data/Gemfile +7 -2
- data/{README.rdoc → README.md} +3 -4
- data/Rakefile +0 -1
- data/VERSION +1 -1
- data/bin/i18n_generate +6 -0
- data/i18n_generator.gemspec +19 -14
- data/lib/i18n_generator.rb +6 -6
- data/lib/i18n_generator/cli.rb +14 -0
- data/lib/i18n_generator/label_writer.rb +6 -5
- data/test/label_writer_test.rb +1 -1
- metadata +39 -12
- data/Gemfile.lock +0 -64
- data/bin/i18n_generator +0 -10
- data/i18n_generator.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e1f43dfbb751e181d7cdc029673c0e47c24eb56
|
4
|
+
data.tar.gz: cc8744af56779e20f83675b97abd4160d23a8bbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 950c38f5637280eea7c833971a253411fa42fbea7fe1feeb8c12f991309607d09dda680afdeeb80ca908c6d64b8cbf8ed2db2886e89f9ba530f7a0421aec21e3
|
7
|
+
data.tar.gz: 6987ae860d1cedf5d2f5d49d3bb0c921a4196ef73f49bbf52ae5b1686eed18366639ff79cd228bff1386a4c6f0b3d78c2f5cbc89319e016252e49b848bd543da
|
data/Gemfile
CHANGED
@@ -1,10 +1,15 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem "roo", "~>1.
|
3
|
+
gem "roo", "~>1.12.1" # Excel Parsing
|
4
|
+
gem "thor", "~>0.18.1" # Snazzy CLI
|
5
|
+
|
6
|
+
# Temporary fix for roo's compatibility with rubyzup
|
7
|
+
# See https://github.com/Empact/roo/pull/65
|
8
|
+
gem "rubyzip", '< 1.0.0'
|
4
9
|
|
5
10
|
group :development do
|
6
11
|
gem "minitest", "~> 5.0.6"
|
7
|
-
gem "rdoc", "~>
|
12
|
+
gem "rdoc", "~> 4.0.1"
|
8
13
|
gem "bundler", "~> 1.3.5"
|
9
14
|
gem "jeweler", "~> 1.8.4"
|
10
15
|
end
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,12 +1,11 @@
|
|
1
1
|
### i18n_generator
|
2
2
|
|
3
3
|
Generates locale-specific resource bundles (.properties) from an Excel spreadsheet containing translations.
|
4
|
-
`ruby i18n_generator.rb </path/to/spreadsheet> </output_directory>`
|
5
4
|
|
6
5
|
#### How to run
|
7
6
|
|
8
|
-
1. `
|
9
|
-
1. `
|
7
|
+
1. `gem install i18n_generator`
|
8
|
+
1. `i18n_generate process </path/to/spreadsheet> </output_directory>`
|
10
9
|
|
11
10
|
### Spreadsheet format
|
12
11
|
|
@@ -31,4 +30,4 @@ Tested on:
|
|
31
30
|
### Copyright
|
32
31
|
|
33
32
|
Copyright (c) 2013 Rule Financial. See LICENSE.txt for
|
34
|
-
further details.
|
33
|
+
further details.
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
1.0.0
|
data/bin/i18n_generate
ADDED
data/i18n_generator.gemspec
CHANGED
@@ -5,30 +5,29 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "i18n_generator"
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "1.0.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Rob Young"]
|
12
|
-
s.date = "2013-08
|
12
|
+
s.date = "2013-09-08"
|
13
13
|
s.description = "Generates locale-specific resource bundles (.properties files) from translations held in an Excel spreadsheet"
|
14
14
|
s.email = "robyoung26@gmail.com"
|
15
|
-
s.executables = ["
|
15
|
+
s.executables = ["i18n_generate"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
18
|
-
"README.
|
18
|
+
"README.md"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
"Gemfile",
|
22
|
-
"Gemfile.lock",
|
23
22
|
"LICENSE.txt",
|
24
|
-
"README.
|
23
|
+
"README.md",
|
25
24
|
"Rakefile",
|
26
25
|
"VERSION",
|
27
|
-
"bin/
|
26
|
+
"bin/i18n_generate",
|
28
27
|
"examples/example_labels.xlsx",
|
29
28
|
"i18n_generator.gemspec",
|
30
|
-
"i18n_generator.rb",
|
31
29
|
"lib/i18n_generator.rb",
|
30
|
+
"lib/i18n_generator/cli.rb",
|
32
31
|
"lib/i18n_generator/excel_parser.rb",
|
33
32
|
"lib/i18n_generator/label.rb",
|
34
33
|
"lib/i18n_generator/label_writer.rb",
|
@@ -47,22 +46,28 @@ Gem::Specification.new do |s|
|
|
47
46
|
s.specification_version = 4
|
48
47
|
|
49
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
50
|
-
s.add_runtime_dependency(%q<roo>, ["~> 1.
|
49
|
+
s.add_runtime_dependency(%q<roo>, ["~> 1.12.1"])
|
50
|
+
s.add_runtime_dependency(%q<thor>, ["~> 0.18.1"])
|
51
|
+
s.add_runtime_dependency(%q<rubyzip>, ["< 1.0.0"])
|
51
52
|
s.add_development_dependency(%q<minitest>, ["~> 5.0.6"])
|
52
|
-
s.add_development_dependency(%q<rdoc>, ["~>
|
53
|
+
s.add_development_dependency(%q<rdoc>, ["~> 4.0.1"])
|
53
54
|
s.add_development_dependency(%q<bundler>, ["~> 1.3.5"])
|
54
55
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
55
56
|
else
|
56
|
-
s.add_dependency(%q<roo>, ["~> 1.
|
57
|
+
s.add_dependency(%q<roo>, ["~> 1.12.1"])
|
58
|
+
s.add_dependency(%q<thor>, ["~> 0.18.1"])
|
59
|
+
s.add_dependency(%q<rubyzip>, ["< 1.0.0"])
|
57
60
|
s.add_dependency(%q<minitest>, ["~> 5.0.6"])
|
58
|
-
s.add_dependency(%q<rdoc>, ["~>
|
61
|
+
s.add_dependency(%q<rdoc>, ["~> 4.0.1"])
|
59
62
|
s.add_dependency(%q<bundler>, ["~> 1.3.5"])
|
60
63
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
61
64
|
end
|
62
65
|
else
|
63
|
-
s.add_dependency(%q<roo>, ["~> 1.
|
66
|
+
s.add_dependency(%q<roo>, ["~> 1.12.1"])
|
67
|
+
s.add_dependency(%q<thor>, ["~> 0.18.1"])
|
68
|
+
s.add_dependency(%q<rubyzip>, ["< 1.0.0"])
|
64
69
|
s.add_dependency(%q<minitest>, ["~> 5.0.6"])
|
65
|
-
s.add_dependency(%q<rdoc>, ["~>
|
70
|
+
s.add_dependency(%q<rdoc>, ["~> 4.0.1"])
|
66
71
|
s.add_dependency(%q<bundler>, ["~> 1.3.5"])
|
67
72
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
68
73
|
end
|
data/lib/i18n_generator.rb
CHANGED
@@ -3,13 +3,13 @@ require 'i18n_generator/label'
|
|
3
3
|
require 'i18n_generator/label_writer'
|
4
4
|
|
5
5
|
module I18nGenerator
|
6
|
-
|
7
|
-
|
8
|
-
excel_parser = I18nGenerator::ExcelParser.new(
|
9
|
-
label_writer = I18nGenerator::LabelWriter.new(
|
6
|
+
class << self
|
7
|
+
def process(source_spreadsheet, output_directory, bundle_prefix)
|
8
|
+
excel_parser = I18nGenerator::ExcelParser.new(source_spreadsheet)
|
9
|
+
label_writer = I18nGenerator::LabelWriter.new(output_directory, bundle_prefix)
|
10
10
|
|
11
11
|
labels = excel_parser.parse
|
12
12
|
label_writer.write_labels(labels, excel_parser.translation_languages)
|
13
13
|
end
|
14
|
-
|
15
|
-
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module I18nGenerator
|
4
|
+
class CLI < Thor
|
5
|
+
desc "process INPUT, OUTPUT_DIR", "convert INPUT xlsx to resource bundles in OUTPUT_DIR"
|
6
|
+
method_option :prefix,
|
7
|
+
:default => "labels_",
|
8
|
+
:aliases => "-p",
|
9
|
+
:desc => "Specify the file prefix for generated bundle filenames (format <prefix><lang>.properties)"
|
10
|
+
def process(input_file, output_directory)
|
11
|
+
I18nGenerator.process(input_file, output_directory, options[:prefix])
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -8,15 +8,16 @@ module I18nGenerator
|
|
8
8
|
# and writing them to output files
|
9
9
|
class LabelWriter
|
10
10
|
|
11
|
-
FILENAME_PREFIX = "labels_"
|
12
|
-
|
13
11
|
FILE_HEADER_TEXT = <<-HEADER
|
14
|
-
|
12
|
+
# THIS FILE IS GENERATED - PLEASE DO NOT EDIT (https://github.com/rulefinancial/i18n_generator)
|
15
13
|
HEADER
|
16
14
|
|
17
|
-
def initialize(output_directory)
|
15
|
+
def initialize(output_directory, bundle_prefix)
|
18
16
|
raise 'LabelWriter requires an output path' unless output_directory
|
17
|
+
raise 'LabelWriter requires a filename prefix' unless bundle_prefix
|
18
|
+
|
19
19
|
@output_path = output_directory
|
20
|
+
@bundle_prefix = bundle_prefix
|
20
21
|
end
|
21
22
|
|
22
23
|
##
|
@@ -72,7 +73,7 @@ module I18nGenerator
|
|
72
73
|
##
|
73
74
|
# Produces the filename for a resource bundle
|
74
75
|
def label_filename(language)
|
75
|
-
|
76
|
+
@bundle_prefix + language.to_s + ".properties"
|
76
77
|
end
|
77
78
|
end
|
78
79
|
end
|
data/test/label_writer_test.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Young
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08
|
11
|
+
date: 2013-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: roo
|
@@ -16,14 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.12.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.12.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: thor
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.18.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.18.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubyzip
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - <
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.0.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - <
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.0.0
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: minitest
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +72,14 @@ dependencies:
|
|
44
72
|
requirements:
|
45
73
|
- - ~>
|
46
74
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
75
|
+
version: 4.0.1
|
48
76
|
type: :development
|
49
77
|
prerelease: false
|
50
78
|
version_requirements: !ruby/object:Gem::Requirement
|
51
79
|
requirements:
|
52
80
|
- - ~>
|
53
81
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
82
|
+
version: 4.0.1
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: bundler
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,23 +112,22 @@ description: Generates locale-specific resource bundles (.properties files) from
|
|
84
112
|
held in an Excel spreadsheet
|
85
113
|
email: robyoung26@gmail.com
|
86
114
|
executables:
|
87
|
-
-
|
115
|
+
- i18n_generate
|
88
116
|
extensions: []
|
89
117
|
extra_rdoc_files:
|
90
118
|
- LICENSE.txt
|
91
|
-
- README.
|
119
|
+
- README.md
|
92
120
|
files:
|
93
121
|
- Gemfile
|
94
|
-
- Gemfile.lock
|
95
122
|
- LICENSE.txt
|
96
|
-
- README.
|
123
|
+
- README.md
|
97
124
|
- Rakefile
|
98
125
|
- VERSION
|
99
|
-
- bin/
|
126
|
+
- bin/i18n_generate
|
100
127
|
- examples/example_labels.xlsx
|
101
128
|
- i18n_generator.gemspec
|
102
|
-
- i18n_generator.rb
|
103
129
|
- lib/i18n_generator.rb
|
130
|
+
- lib/i18n_generator/cli.rb
|
104
131
|
- lib/i18n_generator/excel_parser.rb
|
105
132
|
- lib/i18n_generator/label.rb
|
106
133
|
- lib/i18n_generator/label_writer.rb
|
data/Gemfile.lock
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
addressable (2.3.5)
|
5
|
-
builder (3.2.2)
|
6
|
-
faraday (0.8.8)
|
7
|
-
multipart-post (~> 1.2.0)
|
8
|
-
git (1.2.5)
|
9
|
-
github_api (0.10.1)
|
10
|
-
addressable
|
11
|
-
faraday (~> 0.8.1)
|
12
|
-
hashie (>= 1.2)
|
13
|
-
multi_json (~> 1.4)
|
14
|
-
nokogiri (~> 1.5.2)
|
15
|
-
oauth2
|
16
|
-
hashie (2.0.5)
|
17
|
-
highline (1.6.19)
|
18
|
-
httpauth (0.2.0)
|
19
|
-
jeweler (1.8.6)
|
20
|
-
builder
|
21
|
-
bundler (~> 1.0)
|
22
|
-
git (>= 1.2.5)
|
23
|
-
github_api (= 0.10.1)
|
24
|
-
highline (>= 1.6.15)
|
25
|
-
nokogiri (= 1.5.10)
|
26
|
-
rake
|
27
|
-
rdoc
|
28
|
-
json (1.8.0)
|
29
|
-
jwt (0.1.8)
|
30
|
-
multi_json (>= 1.5)
|
31
|
-
minitest (5.0.6)
|
32
|
-
multi_json (1.7.8)
|
33
|
-
multi_xml (0.5.5)
|
34
|
-
multipart-post (1.2.0)
|
35
|
-
nokogiri (1.5.10)
|
36
|
-
oauth2 (0.9.2)
|
37
|
-
faraday (~> 0.8)
|
38
|
-
httpauth (~> 0.2)
|
39
|
-
jwt (~> 0.1.4)
|
40
|
-
multi_json (~> 1.0)
|
41
|
-
multi_xml (~> 0.5)
|
42
|
-
rack (~> 1.2)
|
43
|
-
rack (1.5.2)
|
44
|
-
rake (10.1.0)
|
45
|
-
rdoc (3.12.2)
|
46
|
-
json (~> 1.4)
|
47
|
-
roo (1.11.2)
|
48
|
-
nokogiri
|
49
|
-
rubyzip
|
50
|
-
spreadsheet (> 0.6.4)
|
51
|
-
ruby-ole (1.2.11.7)
|
52
|
-
rubyzip (0.9.9)
|
53
|
-
spreadsheet (0.8.8)
|
54
|
-
ruby-ole (>= 1.0)
|
55
|
-
|
56
|
-
PLATFORMS
|
57
|
-
ruby
|
58
|
-
|
59
|
-
DEPENDENCIES
|
60
|
-
bundler (~> 1.3.5)
|
61
|
-
jeweler (~> 1.8.4)
|
62
|
-
minitest (~> 5.0.6)
|
63
|
-
rdoc (~> 3.12)
|
64
|
-
roo (~> 1.11.2)
|
data/bin/i18n_generator
DELETED
data/i18n_generator.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#!/usr/bin/env ruby
|
3
|
-
|
4
|
-
require_relative 'lib/label'
|
5
|
-
require_relative 'lib/excel_parser'
|
6
|
-
require_relative 'lib/label_writer'
|
7
|
-
|
8
|
-
unless ARGV.size == 2
|
9
|
-
puts "Usage : label_generator.rb <input.xlsx> </path/to/output/dir>"
|
10
|
-
exit
|
11
|
-
end
|
12
|
-
|
13
|
-
excel_parser = ExcelParser.new(ARGV[0])
|
14
|
-
label_writer = LabelWriter.new(ARGV[1])
|
15
|
-
|
16
|
-
labels = excel_parser.parse
|
17
|
-
label_writer.write_labels(labels, excel_parser.translation_languages)
|