excel2local 0.1.2 → 0.1.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.
- checksums.yaml +4 -4
- data/README.md +117 -103
- data/example/Your_Rails_App/.DS_Store +0 -0
- data/example/Your_Rails_App/config/.DS_Store +0 -0
- data/example/Your_Rails_App/config/locales/.DS_Store +0 -0
- data/example/Your_Rails_App/example.rb +11 -11
- data/excel2local-0.1.2.gem +0 -0
- data/lib/excel2local.rb +53 -43
- data/lib/excel2local/version.rb +3 -3
- metadata +7 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bbe5ef4d13e102175023bfc553066627b68860c61fe27c70efcea83c73007243
|
|
4
|
+
data.tar.gz: 98c3ed0a27538be8129c664adbb17836eed0585cab36e9a39986ff9b8f0bc494
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e2f8fcd5099e65ac9be893756e1ace9dd9451f3dd53679d6b15381be1ebf0795e5a210960b95359ebfa2e803a4f63a109945e0c6b48307c9c4a5d779196c40bf
|
|
7
|
+
data.tar.gz: 2af551413539260f0668055f8645e3ed8adf1b0486e079e9fe64de08fa2334b2e75015739af6af923dd6f186b5b04772cbc583eb5b6687ebf20897d240e0e5ce
|
data/README.md
CHANGED
|
@@ -1,103 +1,117 @@
|
|
|
1
|
-
# Excel2local
|
|
2
|
-
Hey! You want to EASY manage your localise?
|
|
3
|
-
Correct and change the location in Excel. Send it for transfer to outsourcing. Save time, spend it on yourself.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
Add this line to your application's Gemfile:
|
|
8
|
-
```ruby
|
|
9
|
-
gem 'excel2local'
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
And then execute:
|
|
13
|
-
|
|
14
|
-
$ bundle
|
|
15
|
-
|
|
16
|
-
Or install it yourself as:
|
|
17
|
-
|
|
18
|
-
$ gem install excel2local
|
|
19
|
-
|
|
20
|
-
## Usage if rails
|
|
21
|
-
Correct file localises.xlsx and place it to yiur your_rails_app/config/locales/
|
|
22
|
-
and type command in config.ru (for make localises file befoure every start rails) or there where you want to make locales
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
1
|
+
# Excel2local
|
|
2
|
+
Hey! You want to EASY manage your localise?
|
|
3
|
+
Correct and change the location in Excel. Send it for transfer to outsourcing. Save time, spend it on yourself.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Add this line to your application's Gemfile:
|
|
8
|
+
```ruby
|
|
9
|
+
gem 'excel2local'
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
And then execute:
|
|
13
|
+
|
|
14
|
+
$ bundle
|
|
15
|
+
|
|
16
|
+
Or install it yourself as:
|
|
17
|
+
|
|
18
|
+
$ gem install excel2local
|
|
19
|
+
|
|
20
|
+
## Usage if rails
|
|
21
|
+
Correct file localises.xlsx and place it to yiur your_rails_app/config/locales/
|
|
22
|
+
and type command in config.ru (for make localises file befoure every start rails) or there where you want to make locales
|
|
23
|
+
|
|
24
|
+
for one excel file
|
|
25
|
+
```ruby
|
|
26
|
+
Excel2local::localize! './config/locales/locales.xlsx','./config/locales'
|
|
27
|
+
```
|
|
28
|
+
or for all files in folder
|
|
29
|
+
```ruby
|
|
30
|
+
Excel2local::localize_all! './config/locales'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
notice: old locales files will be deleted!!!
|
|
34
|
+
|
|
35
|
+
## Usage if not rails
|
|
36
|
+
require gem if not rails
|
|
37
|
+
```ruby
|
|
38
|
+
require 'excel2local'
|
|
39
|
+
```
|
|
40
|
+
for one file
|
|
41
|
+
```ruby
|
|
42
|
+
Excel2local::localize! '****.xlsx','locales path'
|
|
43
|
+
```
|
|
44
|
+
for all files
|
|
45
|
+
```ruby
|
|
46
|
+
Excel2local::localize_all! 'locales path'
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## Correct localises.xlsx or other *.xlsx
|
|
51
|
+
Such Excel configuration = 3 files of locales: en.yml, ru.yml,ru_fan.yml
|
|
52
|
+
|
|
53
|
+
--- | en | ru | ru_fun |
|
|
54
|
+
--- | --- | --- | --- |
|
|
55
|
+
hello | hello | привет | приувет |
|
|
56
|
+
hello.world | hello world | привет мир | YO! |
|
|
57
|
+
head.info.true | true | правда | тру |
|
|
58
|
+
head.info.connect | connect to server | соединение | контакт |
|
|
59
|
+
head.true.test | test | тест | эй бро |
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
#{filename}_en.yml
|
|
63
|
+
```ruby
|
|
64
|
+
en:
|
|
65
|
+
hello: 'hello'
|
|
66
|
+
world: 'hello world'
|
|
67
|
+
head:
|
|
68
|
+
info:
|
|
69
|
+
'true': 'true'
|
|
70
|
+
connect: 'connect to server'
|
|
71
|
+
'true':
|
|
72
|
+
test: 'test'
|
|
73
|
+
```
|
|
74
|
+
#{filename}_ru.yml
|
|
75
|
+
```ruby
|
|
76
|
+
ru:
|
|
77
|
+
hello: 'привет'
|
|
78
|
+
world: 'привет мир'
|
|
79
|
+
head:
|
|
80
|
+
info:
|
|
81
|
+
'true': 'правда'
|
|
82
|
+
connect: 'соединение'
|
|
83
|
+
'true':
|
|
84
|
+
test: 'тест'
|
|
85
|
+
```
|
|
86
|
+
#{filename}_ru_fun
|
|
87
|
+
```ruby
|
|
88
|
+
ru_fun:
|
|
89
|
+
hello: 'приувет'
|
|
90
|
+
world: 'YO!'
|
|
91
|
+
head:
|
|
92
|
+
info:
|
|
93
|
+
'true': 'тру'
|
|
94
|
+
connect: 'контакт '
|
|
95
|
+
'true':
|
|
96
|
+
test: 'эй бро'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
You see, that the specific is correctly processed (true = 'true')
|
|
100
|
+
and for example
|
|
101
|
+
x1.y1.n1 =
|
|
102
|
+
```ruby
|
|
103
|
+
x1:
|
|
104
|
+
y1:
|
|
105
|
+
n1:
|
|
106
|
+
```
|
|
107
|
+
## Development
|
|
108
|
+
gem uses beautiful gem - "roo" --> https://github.com/roo-rb/roo
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## Contributing
|
|
112
|
+
|
|
113
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/eliseevTech/excel2local or eliseevmail@ya.ru
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#add locales.xlsx to Your_Rails_App/config/locales/
|
|
2
|
-
|
|
3
|
-
# add gem to the gemfile
|
|
4
|
-
# gem "excel2local", '~> 0.1.3' to
|
|
5
|
-
require "
|
|
6
|
-
|
|
7
|
-
# add next for localize only one file './config/locales/locales.xlsx' to './config/locales'
|
|
8
|
-
#Excel2local::localize! './config/locales/locales.xlsx','./config/locales'
|
|
9
|
-
|
|
10
|
-
#add next to config.ru for localize all files from './config/locales'
|
|
11
|
-
Excel2local::localize_all! './config/locales'
|
|
1
|
+
#add locales.xlsx to Your_Rails_App/config/locales/
|
|
2
|
+
|
|
3
|
+
# add gem to the gemfile
|
|
4
|
+
# gem "excel2local", '~> 0.1.3' to
|
|
5
|
+
require "excel2local"
|
|
6
|
+
|
|
7
|
+
# add next for localize only one file './config/locales/locales.xlsx' to './config/locales'
|
|
8
|
+
#Excel2local::localize! './config/locales/locales.xlsx','./config/locales'
|
|
9
|
+
|
|
10
|
+
#add next to config.ru for localize all files from './config/locales'
|
|
11
|
+
Excel2local::localize_all! './config/locales'
|
|
Binary file
|
data/lib/excel2local.rb
CHANGED
|
@@ -1,44 +1,54 @@
|
|
|
1
|
-
require "excel2local/version"
|
|
2
|
-
require "roo"
|
|
3
|
-
|
|
4
|
-
module Excel2local
|
|
5
|
-
|
|
6
|
-
def self.localize_all! (locate)
|
|
7
|
-
Dir["#{locate}/*.xlsx"].each { |file|
|
|
8
|
-
localize! "#{file}","#{locate}"
|
|
9
|
-
}
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self.localize! (excel_file, save_place) #excel_file - фаил с переводом
|
|
13
|
-
puts "Excel2local::localize! from #{excel_file} ---> to #{save_place}/"
|
|
14
|
-
workbook = Roo::Excelx.new(excel_file) #подсовываем фаил в библиотеку
|
|
15
|
-
yml_file = [] # создаем массив для имен файлов
|
|
16
|
-
simbol_memory = []
|
|
17
|
-
workbook.each_with_index {|row, row_index| #начинаем перебор строк
|
|
18
|
-
if (row_index == 0) then #если первая строка то начинаем создавать файлы локализаций
|
|
19
|
-
row.each_with_index { |col, col_index| # перебираем колонки
|
|
20
|
-
File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{col}.yml", "w") { |file| file.puts "#{col}:" } if col_index != 0 && col != "#" #если не 1 колонка то создаем фаил локали
|
|
21
|
-
yml_file[col_index] = col #кладем имя файла в массив в соответствующий индекс
|
|
22
|
-
simbol_memory[col_index] = []
|
|
23
|
-
}
|
|
24
|
-
else
|
|
25
|
-
row.each_with_index { |col, col_index| #если не первая строка
|
|
26
|
-
@simbol = col if col_index == 0 #если
|
|
27
|
-
#break if #
|
|
28
|
-
if (col_index != 0) and (@simbol != nil ) and (col != nil)
|
|
29
|
-
@simbol.to_s.split(".").each_with_index { | simbol, index |
|
|
30
|
-
simbol = "\'" + simbol + "\'" if [ "true", "false", "on", "off", "yes", "no" ].member?(simbol)
|
|
31
|
-
if simbol != simbol_memory[col_index][index] then
|
|
32
|
-
File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.print " "*(index+1) + "#{simbol}:" } if @simbol.to_s.split(".").length - 1 == index
|
|
33
|
-
File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.puts " "*(index+1) + "#{simbol}:" } if @simbol.to_s.split(".").length - 1 != index
|
|
34
|
-
index.upto(@simbol.to_s.split(".").length ) { |n| simbol_memory[col_index].delete_at(n)}
|
|
35
|
-
end
|
|
36
|
-
simbol_memory[col_index][index] = simbol
|
|
37
|
-
}
|
|
38
|
-
File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.puts " \'#{col}\'" } # пишем сам символ
|
|
39
|
-
end
|
|
40
|
-
}
|
|
41
|
-
end
|
|
42
|
-
}
|
|
43
|
-
end
|
|
1
|
+
require "excel2local/version"
|
|
2
|
+
require "roo"
|
|
3
|
+
|
|
4
|
+
module Excel2local
|
|
5
|
+
|
|
6
|
+
def self.localize_all! (locate)
|
|
7
|
+
Dir["#{locate}/*.xlsx"].each { |file|
|
|
8
|
+
localize! "#{file}","#{locate}"
|
|
9
|
+
}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.localize! (excel_file, save_place) #excel_file - фаил с переводом
|
|
13
|
+
puts "Excel2local::localize! from #{excel_file} ---> to #{save_place}/"
|
|
14
|
+
workbook = Roo::Excelx.new(excel_file) #подсовываем фаил в библиотеку
|
|
15
|
+
yml_file = [] # создаем массив для имен файлов
|
|
16
|
+
simbol_memory = []
|
|
17
|
+
workbook.each_with_index {|row, row_index| #начинаем перебор строк
|
|
18
|
+
if (row_index == 0) then #если первая строка то начинаем создавать файлы локализаций
|
|
19
|
+
row.each_with_index { |col, col_index| # перебираем колонки
|
|
20
|
+
File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{col}.yml", "w") { |file| file.puts "#{col}:" } if col_index != 0 && col != "#" #если не 1 колонка то создаем фаил локали
|
|
21
|
+
yml_file[col_index] = col #кладем имя файла в массив в соответствующий индекс
|
|
22
|
+
simbol_memory[col_index] = []
|
|
23
|
+
}
|
|
24
|
+
else
|
|
25
|
+
row.each_with_index { |col, col_index| #если не первая строка
|
|
26
|
+
@simbol = col if col_index == 0 #если
|
|
27
|
+
#break if #
|
|
28
|
+
if (col_index != 0) and (@simbol != nil ) and (col != nil)
|
|
29
|
+
@simbol.to_s.split(".").each_with_index { | simbol, index |
|
|
30
|
+
simbol = "\'" + simbol + "\'" if [ "true", "false", "on", "off", "yes", "no" ].member?(simbol)
|
|
31
|
+
if simbol != simbol_memory[col_index][index] then
|
|
32
|
+
File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.print " "*(index+1) + "#{simbol}:" } if @simbol.to_s.split(".").length - 1 == index
|
|
33
|
+
File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.puts " "*(index+1) + "#{simbol}:" } if @simbol.to_s.split(".").length - 1 != index
|
|
34
|
+
index.upto(@simbol.to_s.split(".").length ) { |n| simbol_memory[col_index].delete_at(n)}
|
|
35
|
+
end
|
|
36
|
+
simbol_memory[col_index][index] = simbol
|
|
37
|
+
}
|
|
38
|
+
File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.puts " \'#{col}\'" } # пишем сам символ
|
|
39
|
+
end
|
|
40
|
+
}
|
|
41
|
+
end
|
|
42
|
+
}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def self.backup_all! (locate)
|
|
46
|
+
print "Excel2local::backup_all! to #{locate}/backups .. "
|
|
47
|
+
Dir.mkdir("#{locate}/backups") if File.directory?("#{locate}/backups") == false
|
|
48
|
+
Dir.mkdir(dir_name = "#{locate}/backups/#{Time.now.to_i}")
|
|
49
|
+
Dir["#{locate}/*.yml"].each { |file|
|
|
50
|
+
FileUtils.cp(file, dir_name)
|
|
51
|
+
}
|
|
52
|
+
puts "Done!"
|
|
53
|
+
end
|
|
44
54
|
end
|
data/lib/excel2local/version.rb
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module Excel2local
|
|
2
|
-
VERSION = "0.1.
|
|
3
|
-
end
|
|
1
|
+
module Excel2local
|
|
2
|
+
VERSION = "0.1.3"
|
|
3
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: excel2local
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Eliseev_EV
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-09-
|
|
11
|
+
date: 2018-09-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -73,10 +73,14 @@ files:
|
|
|
73
73
|
- Rakefile
|
|
74
74
|
- bin/console
|
|
75
75
|
- bin/setup
|
|
76
|
+
- example/Your_Rails_App/.DS_Store
|
|
77
|
+
- example/Your_Rails_App/config/.DS_Store
|
|
78
|
+
- example/Your_Rails_App/config/locales/.DS_Store
|
|
76
79
|
- example/Your_Rails_App/config/locales/locales.xlsx
|
|
77
80
|
- example/Your_Rails_App/example.rb
|
|
78
81
|
- example/locales.xlsx
|
|
79
82
|
- excel2local-0.1.1.gem
|
|
83
|
+
- excel2local-0.1.2.gem
|
|
80
84
|
- excel2local.gemspec
|
|
81
85
|
- lib/excel2local.rb
|
|
82
86
|
- lib/excel2local/version.rb
|
|
@@ -100,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
100
104
|
version: '0'
|
|
101
105
|
requirements: []
|
|
102
106
|
rubyforge_project:
|
|
103
|
-
rubygems_version: 2.7.
|
|
107
|
+
rubygems_version: 2.7.6
|
|
104
108
|
signing_key:
|
|
105
109
|
specification_version: 4
|
|
106
110
|
summary: From excel to locales. Simply and easily!
|