applocale 0.1.6 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/applocale.rb +3 -1
- data/lib/applocale/AppLocaleFile +50 -0
- data/lib/applocale/Command/init.rb +21 -29
- data/lib/applocale/Core/FindStrKey/find_str_key.rb +40 -0
- data/lib/applocale/Core/FindStrKey/find_str_key_ios.rb +210 -0
- data/lib/applocale/Core/FindStrKey/find_str_key_result.rb +72 -0
- data/lib/applocale/Core/GoogleHepler/google_helper.rb +74 -33
- data/lib/applocale/Core/ParseXLSX/parse_xlsx.rb +56 -28
- data/lib/applocale/Core/ParseXLSX/parse_xlsx_module.rb +39 -4
- data/lib/applocale/Core/ParserStringFile/parse_localized_resource.rb +54 -27
- data/lib/applocale/Core/ParserStringFile/parse_strings_file.rb +38 -19
- data/lib/applocale/Core/ParserStringFile/parse_xml_file.rb +25 -8
- data/lib/applocale/Core/convert_to_localefile.rb +40 -18
- data/lib/applocale/Core/init.rb +76 -14
- data/lib/applocale/Core/setting.rb +111 -10
- data/lib/applocale/Util/config_util.rb +348 -139
- data/lib/applocale/Util/error_util.rb +3 -2
- data/lib/applocale/Util/file_util.rb +28 -29
- data/lib/applocale/Util/injection.rb +79 -0
- data/lib/applocale/Util/regex_util.rb +14 -40
- data/lib/applocale/version.rb +1 -1
- metadata +27 -23
- data/lib/applocale/AppLocaleFile.yaml +0 -8
@@ -1,35 +1,37 @@
|
|
1
1
|
require File.expand_path('../../setting.rb', __FILE__)
|
2
2
|
require File.expand_path('../../../Util/error_util.rb', __FILE__)
|
3
3
|
require File.expand_path('../../../Util/regex_util.rb', __FILE__)
|
4
|
+
require File.expand_path('../../../Util/injection.rb', __FILE__)
|
4
5
|
|
5
6
|
module Applocale
|
6
7
|
class ParseStringsFile
|
7
8
|
|
8
|
-
attr_reader :strings_keys, :errorlist, :in_multiline_comments, :keys_list, :platform
|
9
|
+
attr_reader :strings_keys, :errorlist, :in_multiline_comments, :keys_list, :platform, :injectobj
|
9
10
|
|
10
|
-
def initialize()
|
11
|
+
def initialize(platform, langpathobj_list, injectobj)
|
11
12
|
@strings_keys = {}
|
12
13
|
@keys_list = Array.new
|
13
14
|
@errorlist = Array.new()
|
14
|
-
@platform =
|
15
|
-
|
15
|
+
@platform = platform
|
16
|
+
@injectobj = injectobj
|
17
|
+
self.to_parse_files(langpathobj_list)
|
16
18
|
end
|
17
19
|
|
18
|
-
def to_parse_files(
|
19
|
-
|
20
|
-
self.to_parse_strings_file(
|
20
|
+
def to_parse_files(langpathobj_list)
|
21
|
+
langpathobj_list.each do |langpathobj|
|
22
|
+
self.to_parse_strings_file(langpathobj.lang, langpathobj.filepath)
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
24
|
-
def to_parse_strings_file(lang,
|
25
|
-
puts "Start to Parse strings file: \"#{
|
26
|
+
def to_parse_strings_file(lang, strings_filepath)
|
27
|
+
puts "Start to Parse strings file: \"#{strings_filepath}\" ...".green
|
26
28
|
|
27
29
|
@in_multiline_comments = false
|
28
30
|
keyrowno = {}
|
29
31
|
linenum = 0
|
30
32
|
begin
|
31
33
|
|
32
|
-
IO.foreach(
|
34
|
+
IO.foreach(strings_filepath, mode: 'r:bom|utf-8') {|line|
|
33
35
|
linenum += 1
|
34
36
|
line.strip!
|
35
37
|
if !@in_multiline_comments
|
@@ -41,25 +43,25 @@ module Applocale
|
|
41
43
|
end
|
42
44
|
while true
|
43
45
|
|
44
|
-
key, line = parse_token(linenum, line, "=", lang,
|
46
|
+
key, line = parse_token(linenum, line, "=", lang, strings_filepath)
|
45
47
|
line.strip!
|
46
48
|
|
47
49
|
if not line.start_with?("=")
|
48
50
|
if !@in_multiline_comments && line.length > 0
|
49
|
-
error = ErrorUtil::ParseLocalizedError::WrongFormat.new(
|
51
|
+
error = ErrorUtil::ParseLocalizedError::WrongFormat.new(strings_filepath, lang, linenum)
|
50
52
|
@errorlist.push(error)
|
51
53
|
end
|
52
54
|
break
|
53
55
|
end
|
54
56
|
line.slice!(0)
|
55
57
|
|
56
|
-
value, line = parse_token(linenum, line, ";", lang,
|
58
|
+
value, line = parse_token(linenum, line, ";", lang, strings_filepath)
|
57
59
|
line.strip!
|
58
60
|
|
59
61
|
if line.start_with?(";")
|
60
62
|
line.slice!(0)
|
61
63
|
else
|
62
|
-
error = ErrorUtil::ParseLocalizedError::WrongFormat.new(
|
64
|
+
error = ErrorUtil::ParseLocalizedError::WrongFormat.new(strings_filepath, lang, linenum)
|
63
65
|
@errorlist.push(error)
|
64
66
|
key = nil
|
65
67
|
value = nil
|
@@ -67,7 +69,7 @@ module Applocale
|
|
67
69
|
end
|
68
70
|
|
69
71
|
if !ValidKey.is_validkey(@platform, key)
|
70
|
-
error = ErrorUtil::ParseLocalizedError::InvalidKey.new(key,
|
72
|
+
error = ErrorUtil::ParseLocalizedError::InvalidKey.new(key, strings_filepath, lang, linenum)
|
71
73
|
@errorlist.push(error)
|
72
74
|
break
|
73
75
|
end
|
@@ -78,10 +80,10 @@ module Applocale
|
|
78
80
|
if @strings_keys[key][lang.to_s].nil?
|
79
81
|
@strings_keys[key][lang.to_s] = Hash.new
|
80
82
|
@strings_keys[key][lang.to_s][:rowno] = linenum
|
81
|
-
@strings_keys[key][lang.to_s][:value] =
|
83
|
+
@strings_keys[key][lang.to_s][:value] = self.remove_escape(lang, key, value)
|
82
84
|
keyrowno[key] = linenum
|
83
85
|
else
|
84
|
-
error = ErrorUtil::ParseLocalizedError::DuplicateKey.new(key, keyrowno[key],
|
86
|
+
error = ErrorUtil::ParseLocalizedError::DuplicateKey.new(key, keyrowno[key], strings_filepath, lang, linenum)
|
85
87
|
@errorlist.push(error)
|
86
88
|
end
|
87
89
|
if line.length <= 0
|
@@ -89,8 +91,9 @@ module Applocale
|
|
89
91
|
end
|
90
92
|
end
|
91
93
|
}
|
92
|
-
rescue
|
93
|
-
|
94
|
+
rescue Exception => e
|
95
|
+
puts e.message
|
96
|
+
ErrorUtil::ParseLocalizedError::InvalidFile.new(strings_filepath).raise
|
94
97
|
end
|
95
98
|
end
|
96
99
|
|
@@ -159,5 +162,21 @@ module Applocale
|
|
159
162
|
return value, line[n..-1]
|
160
163
|
end
|
161
164
|
|
165
|
+
def remove_escape(lang, key, content)
|
166
|
+
value = content
|
167
|
+
if @injectobj.has_before_parse_from_locale
|
168
|
+
value = @injectobj.load_before_parse_from_locale(lang.to_s, key, value)
|
169
|
+
end
|
170
|
+
if @injectobj.has_parse_from_locale
|
171
|
+
value = @injectobj.load_parse_from_locale(lang.to_s, key, value)
|
172
|
+
else
|
173
|
+
value = ContentUtil.remove_escape(@platform, value)
|
174
|
+
end
|
175
|
+
if @injectobj.has_after_parse_from_locale
|
176
|
+
value = @injectobj.load_after_parse_from_locale(lang.to_s, key, value)
|
177
|
+
end
|
178
|
+
return value
|
179
|
+
end
|
180
|
+
|
162
181
|
end
|
163
182
|
end
|
@@ -5,19 +5,20 @@ require File.expand_path('../../../Util/regex_util.rb', __FILE__)
|
|
5
5
|
module Applocale
|
6
6
|
|
7
7
|
class ParseXMLFile
|
8
|
-
attr_reader :strings_keys, :errorlist, :in_multiline_comments, :keys_list, :platform
|
8
|
+
attr_reader :strings_keys, :errorlist, :in_multiline_comments, :keys_list, :platform, :injectobj
|
9
9
|
|
10
|
-
def initialize()
|
10
|
+
def initialize(platform, langpathobj_list, injectobj)
|
11
11
|
@strings_keys = {}
|
12
12
|
@keys_list = Array.new
|
13
13
|
@errorlist = Array.new()
|
14
|
-
@platform =
|
15
|
-
|
14
|
+
@platform = platform
|
15
|
+
@injectobj = injectobj
|
16
|
+
self.to_parse_files(langpathobj_list)
|
16
17
|
end
|
17
18
|
|
18
|
-
def to_parse_files(
|
19
|
-
|
20
|
-
self.to_parse_strings_file(
|
19
|
+
def to_parse_files(langpathobj_list)
|
20
|
+
langpathobj_list.each do |langpathobj|
|
21
|
+
self.to_parse_strings_file(langpathobj.lang, langpathobj.filepath)
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
@@ -37,7 +38,7 @@ module Applocale
|
|
37
38
|
end
|
38
39
|
if @strings_keys[key][lang.to_s].nil?
|
39
40
|
@strings_keys[key][lang.to_s] = Hash.new
|
40
|
-
@strings_keys[key][lang.to_s][:value] =
|
41
|
+
@strings_keys[key][lang.to_s][:value] = self.remove_escape(lang, key, value)
|
41
42
|
else
|
42
43
|
error = ErrorUtil::ParseLocalizedError::DuplicateKey.new(key, -1, strings_path, lang, -1)
|
43
44
|
@errorlist.push(error)
|
@@ -46,5 +47,21 @@ module Applocale
|
|
46
47
|
end
|
47
48
|
end
|
48
49
|
|
50
|
+
def remove_escape(lang, key, content)
|
51
|
+
value = content
|
52
|
+
if @injectobj.has_before_parse_from_locale
|
53
|
+
value = @injectobj.load_before_parse_from_locale(lang.to_s, key, value)
|
54
|
+
end
|
55
|
+
if @injectobj.has_parse_from_locale
|
56
|
+
value = @injectobj.load_parse_from_locale(lang.to_s, key, value)
|
57
|
+
else
|
58
|
+
value = ContentUtil.remove_escape(@platform, value)
|
59
|
+
end
|
60
|
+
if @injectobj.has_after_parse_from_locale
|
61
|
+
value = @injectobj.load_after_parse_from_locale(lang.to_s, key, value)
|
62
|
+
end
|
63
|
+
return value
|
64
|
+
end
|
65
|
+
|
49
66
|
end
|
50
67
|
end
|
@@ -1,26 +1,32 @@
|
|
1
1
|
require File.expand_path('../setting.rb', __FILE__)
|
2
2
|
require File.expand_path('../../Util/platform.rb', __FILE__)
|
3
3
|
require File.expand_path('../../Util/regex_util.rb', __FILE__)
|
4
|
+
require File.expand_path('../../Util/injection.rb', __FILE__)
|
5
|
+
|
4
6
|
require 'colorize'
|
5
7
|
|
8
|
+
|
6
9
|
module Applocale
|
7
10
|
class ConvertToStrFile
|
8
11
|
|
9
|
-
def self.convert(
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
def self.convert(platform, lang_path_list, sheetcontent_list, rubycode)
|
13
|
+
|
14
|
+
injectObj = Applocale::Injection.load(rubycode)
|
15
|
+
|
16
|
+
lang_path_list.each do |langpath_obj|
|
17
|
+
puts "Start to convert to string file for [\"#{langpath_obj.lang}\"] #{langpath_obj.filepath}...".green
|
18
|
+
if platform == Platform::IOS
|
19
|
+
self.convert_to_stringfile(platform, langpath_obj, sheetcontent_list, injectObj)
|
20
|
+
elsif platform == Platform::ANDROID
|
21
|
+
self.convert_to_xml(platform, langpath_obj, sheetcontent_list, injectObj)
|
16
22
|
end
|
17
23
|
end
|
18
24
|
puts 'Convert Finished !!!'.green
|
19
25
|
end
|
20
26
|
|
21
|
-
def self.
|
22
|
-
FileUtils.mkdir_p(File.dirname(
|
23
|
-
target = open(
|
27
|
+
def self.convert_to_stringfile(platform, langpath_obj, sheetcontent_list, injectObj)
|
28
|
+
FileUtils.mkdir_p(File.dirname(langpath_obj.filepath))
|
29
|
+
target = open(langpath_obj.filepath, 'w')
|
24
30
|
sheetcontent_list.each do |sheetcontent|
|
25
31
|
contentlist = sheetcontent.get_rowInfo_sortby_key
|
26
32
|
next if contentlist.length <= 0
|
@@ -29,8 +35,8 @@ module Applocale
|
|
29
35
|
target.puts(' *******************************/')
|
30
36
|
target.puts('')
|
31
37
|
contentlist.each do |rowinfo|
|
32
|
-
content = rowinfo.content_dict[lang]
|
33
|
-
value =
|
38
|
+
content = rowinfo.content_dict[langpath_obj.lang]
|
39
|
+
value = self.add_escape(platform, langpath_obj.lang, rowinfo.key_str, content, injectObj)
|
34
40
|
target.puts("\"#{rowinfo.key_str}\" = \"#{value}\";")
|
35
41
|
end
|
36
42
|
target.puts('')
|
@@ -38,17 +44,17 @@ module Applocale
|
|
38
44
|
target.close
|
39
45
|
end
|
40
46
|
|
41
|
-
def self.convert_to_xml(platform,
|
42
|
-
FileUtils.mkdir_p(File.dirname(
|
43
|
-
target = open(
|
47
|
+
def self.convert_to_xml(platform, langpath_obj, sheetcontent_list, injectObj)
|
48
|
+
FileUtils.mkdir_p(File.dirname(langpath_obj.filepath))
|
49
|
+
target = open(langpath_obj.filepath, 'w')
|
44
50
|
target.puts('<resources>')
|
45
51
|
sheetcontent_list.each do |sheetcontent|
|
46
52
|
target.puts(" <!-- #{sheetcontent.comment} -->")
|
47
53
|
contentlist = sheetcontent.get_rowInfo_sortby_key
|
48
54
|
contentlist.each do |rowinfo|
|
49
|
-
content = rowinfo.content_dict[lang]
|
50
|
-
value =
|
51
|
-
target.puts(" <string name=\"#{rowinfo.key_str
|
55
|
+
content = rowinfo.content_dict[langpath_obj.lang]
|
56
|
+
value = self.add_escape(platform, langpath_obj.lang, rowinfo.key_str, content, injectObj)
|
57
|
+
target.puts(" <string name=\"#{rowinfo.key_str}\">#{value}</string>")
|
52
58
|
end
|
53
59
|
target.puts('')
|
54
60
|
end
|
@@ -56,5 +62,21 @@ module Applocale
|
|
56
62
|
target.close
|
57
63
|
end
|
58
64
|
|
65
|
+
def self.add_escape(platform, lang, key, content, injectObj)
|
66
|
+
value = content
|
67
|
+
if injectObj.has_before_convent_to_locale
|
68
|
+
value = injectObj.load_before_convent_to_locale(lang.to_s, key, value)
|
69
|
+
end
|
70
|
+
if injectObj.has_convent_to_locale
|
71
|
+
value = injectObj.load_convent_to_locale(lang.to_s, key, value)
|
72
|
+
else
|
73
|
+
value = ContentUtil.add_escape(platform, value)
|
74
|
+
end
|
75
|
+
if injectObj.has_after_convent_to_locale
|
76
|
+
value = injectObj.load_after_convent_to_locale(lang.to_s, key, value)
|
77
|
+
end
|
78
|
+
return value
|
79
|
+
end
|
80
|
+
|
59
81
|
end
|
60
82
|
end
|
data/lib/applocale/Core/init.rb
CHANGED
@@ -1,28 +1,90 @@
|
|
1
1
|
require File.expand_path('../setting.rb', __FILE__)
|
2
|
+
require File.expand_path('../../Util/file_util.rb', __FILE__)
|
3
|
+
require File.expand_path('../../Util/error_util.rb', __FILE__)
|
4
|
+
require File.expand_path('../../Util/config_util.rb', __FILE__)
|
2
5
|
require File.expand_path('../GoogleHepler/google_helper.rb', __FILE__)
|
3
6
|
require File.expand_path('../ParseXLSX/parse_xlsx', __FILE__)
|
7
|
+
require File.expand_path('../ParserStringFile/parse_localized_resource.rb', __FILE__)
|
4
8
|
require File.expand_path('../convert_to_localefile', __FILE__)
|
9
|
+
require File.expand_path('../FindStrKey/find_str_key', __FILE__)
|
10
|
+
|
11
|
+
require 'open-uri'
|
5
12
|
|
6
13
|
module Applocale
|
7
14
|
|
8
|
-
def self.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
def self.create_config_file( platformStr = nil, projpath = Dir.pwd)
|
16
|
+
proj_path = projpath
|
17
|
+
proj_path = Dir.pwd if projpath.nil?
|
18
|
+
proj_apath = Applocale::FilePathUtil.get_proj_absoluat_path(proj_path)
|
19
|
+
if platformStr.nil?
|
20
|
+
if Dir.glob("#{proj_apath}/**/*.xcodeproj").length > 0 || Dir.glob("#{proj_apath}/*.xcworkspace").length > 0
|
21
|
+
platformsybom = Platform::IOS
|
22
|
+
elsif Dir.glob("#{proj_apath}/**/*.gradle").length > 0
|
23
|
+
platformsybom = Platform::ANDROID
|
24
|
+
else
|
25
|
+
Applocale::ErrorUtil::CommandError.new("Mssing [platform] : ios | android ").raise
|
26
|
+
end
|
27
|
+
else
|
28
|
+
platformsybom = Platform.init(platform.strip)
|
29
|
+
end
|
30
|
+
if platformsybom.nil?
|
31
|
+
ErrorUtil::CommandError.new("Invalid [platform] : ios | android ").raise
|
32
|
+
else
|
33
|
+
Applocale::Config::ConfigUtil.create_configfile_ifneed(platformsybom,proj_apath.to_s )
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.start_update(projpath = Dir.pwd)
|
38
|
+
proj_path = projpath
|
39
|
+
proj_path = Dir.pwd if projpath.nil?
|
40
|
+
proj_apath = Applocale::FilePathUtil.get_proj_absoluat_path(proj_path)
|
41
|
+
obj = Applocale::Config::ConfigUtil.new(proj_apath)
|
42
|
+
setting = obj.load_configfile_to_setting
|
43
|
+
if setting.link.to_s.length <= 0
|
44
|
+
ErrorUtil::ConfigFileInValid.new('[link] is missing in config file ').raise
|
45
|
+
end
|
46
|
+
if Applocale::GoogleHelper.is_googlelink(setting.link)
|
47
|
+
if setting.google_credentials_path.to_s.length <= 0
|
48
|
+
setting.google_credentials_path = File.expand_path(FilePathUtil.default_google_credentials_filename, File.dirname(setting.configfile_pathstr))
|
17
49
|
end
|
50
|
+
googleobj = Applocale::GoogleHelper.new(setting.link, setting.google_credentials_path, setting.xlsxpath)
|
51
|
+
googleobj.download
|
52
|
+
else
|
53
|
+
download = open(setting.link)
|
54
|
+
IO.copy_stream(download, setting.xlsxpath)
|
18
55
|
end
|
56
|
+
Applocale.start_local_update( setting, proj_path)
|
57
|
+
end
|
19
58
|
|
20
|
-
|
21
|
-
|
59
|
+
def self.start_local_update(asetting = nil, projpath = Dir.pwd)
|
60
|
+
proj_path = projpath
|
61
|
+
proj_path = Dir.pwd if projpath.nil?
|
62
|
+
proj_apath = Applocale::FilePathUtil.get_proj_absoluat_path(proj_path)
|
63
|
+
setting = asetting
|
64
|
+
if setting.nil?
|
65
|
+
obj = Applocale::Config::ConfigUtil.new(proj_apath)
|
66
|
+
setting = obj.load_configfile_to_setting
|
67
|
+
end
|
68
|
+
parse_xlsx = Applocale::ParseXLSX.new(setting.platform, setting.xlsxpath, setting.lang_path_list, setting.sheet_obj_list)
|
69
|
+
ConvertToStrFile.convert(setting.platform, setting.lang_path_list,parse_xlsx.result, setting.rubycode)
|
22
70
|
end
|
23
71
|
|
24
|
-
def self.start_reverse(is_skip)
|
25
|
-
|
72
|
+
def self.start_reverse( is_skip, projpath = Dir.pwd)
|
73
|
+
proj_path = projpath
|
74
|
+
proj_path = Dir.pwd if projpath.nil?
|
75
|
+
proj_apath = Applocale::FilePathUtil.get_proj_absoluat_path(proj_path)
|
76
|
+
obj = Applocale::Config::ConfigUtil.new(proj_apath)
|
77
|
+
setting = obj.load_configfile_to_setting
|
78
|
+
Applocale::ParseLocalizedResource.new(is_skip,setting.platform,setting.xlsxpath, setting.lang_path_list, setting.sheet_obj_list, setting.rubycode )
|
26
79
|
end
|
27
80
|
|
28
|
-
|
81
|
+
def self.findkey( key, projpath = Dir.pwd)
|
82
|
+
proj_path = projpath
|
83
|
+
proj_path = Dir.pwd if projpath.nil?
|
84
|
+
proj_apath = Applocale::FilePathUtil.get_proj_absoluat_path(proj_path)
|
85
|
+
obj = Applocale::Config::ConfigUtil.new(proj_apath)
|
86
|
+
report_folder = File.dirname(obj.configfile_pathstr)
|
87
|
+
findobj = FindStrKey::FindValue.new(Applocale::Platform::IOS, proj_apath, report_folder, key)
|
88
|
+
findobj.find
|
89
|
+
end
|
90
|
+
end
|
@@ -1,18 +1,119 @@
|
|
1
1
|
require 'colorize'
|
2
|
+
# module Applocale
|
3
|
+
# class Setting
|
4
|
+
# class <<self
|
5
|
+
# attr_accessor :link, :platform, :keystr, :langlist, :xlsxpath
|
6
|
+
# end
|
7
|
+
#
|
8
|
+
# def self.printlog
|
9
|
+
# puts ' In Setting'
|
10
|
+
# puts " link = #{self.link}"
|
11
|
+
# puts " platform = #{self.platform}"
|
12
|
+
# puts " keystr = #{self.keystr}"
|
13
|
+
# puts " langlist = #{self.langlist}"
|
14
|
+
# puts " xlsxpath = #{self.xlsxpath}"
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
#
|
2
20
|
|
3
21
|
module Applocale
|
4
|
-
|
5
|
-
class
|
6
|
-
attr_accessor :link, :platform, :
|
22
|
+
module Config
|
23
|
+
class Setting
|
24
|
+
attr_accessor :configfile_pathstr, :link, :platform, :xlsxpath, :google_credentials_path, :lang_path_list, :sheet_obj_list, :rubycode
|
25
|
+
def initialize(configfile_pathstr)
|
26
|
+
self.configfile_pathstr = configfile_pathstr
|
27
|
+
self.lang_path_list = Array.new
|
28
|
+
self.sheet_obj_list = Array.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def printlog
|
32
|
+
puts ' In Setting'
|
33
|
+
puts " link = #{self.link}"
|
34
|
+
puts " platform = #{self.platform}"
|
35
|
+
puts " xlsxpath = #{self.xlsxpath}"
|
36
|
+
puts " google_credentials_path = #{self.google_credentials_path} "
|
37
|
+
|
38
|
+
puts " lang_path_list = "
|
39
|
+
self.lang_path_list.each do |langpath_obj|
|
40
|
+
puts " #{langpath_obj.to_s}"
|
41
|
+
end
|
42
|
+
puts " sheet_obj_list = "
|
43
|
+
self.sheet_obj_list.each do |sheet_obj|
|
44
|
+
puts " #{sheet_obj.to_s}"
|
45
|
+
end
|
46
|
+
|
47
|
+
# puts self.rubycode
|
48
|
+
|
49
|
+
end
|
7
50
|
end
|
8
51
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
52
|
+
class LangPath
|
53
|
+
attr_accessor :lang, :filepath
|
54
|
+
|
55
|
+
def initialize(lang, filepath)
|
56
|
+
self.lang = lang
|
57
|
+
self.filepath = filepath
|
58
|
+
end
|
59
|
+
|
60
|
+
def to_s
|
61
|
+
return "#{self.lang}: #{self.filepath}"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
class Sheet
|
66
|
+
attr_accessor :sheetname, :obj
|
67
|
+
|
68
|
+
def initialize(sheetname, obj)
|
69
|
+
self.sheetname = sheetname
|
70
|
+
self.obj = obj
|
71
|
+
end
|
72
|
+
|
73
|
+
def to_s
|
74
|
+
return "#{self.sheetname} #{self.obj.to_s}"
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
def self.get_sheetlist(sheet_obj_list)
|
79
|
+
return sheet_obj_list.map{ |sheet_obj| sheet_obj.sheetname }
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.get_sheetobj_by_sheetname(sheet_obj_list, sheetname)
|
83
|
+
sheet_obj_list.each do |sheet_obj|
|
84
|
+
if sheet_obj.sheetname == sheetname
|
85
|
+
return sheet_obj.obj
|
86
|
+
end
|
87
|
+
end
|
88
|
+
return nil
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
class SheetInfoByHeader
|
93
|
+
attr_accessor :key_header, :lang_headers
|
94
|
+
|
95
|
+
def initialize(key_header, lang_headers)
|
96
|
+
self.key_header = key_header
|
97
|
+
self.lang_headers = lang_headers
|
98
|
+
end
|
99
|
+
|
100
|
+
def to_s
|
101
|
+
return "key_header: #{self.key_header} | headers: #{self.lang_headers.to_s}"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
class SheetInfoByRow
|
106
|
+
attr_accessor :row, :key_col, :lang_cols
|
107
|
+
|
108
|
+
def initialize(row, key_col, lang_cols)
|
109
|
+
self.row = row
|
110
|
+
self.key_col = key_col
|
111
|
+
self.lang_cols = lang_cols
|
112
|
+
end
|
113
|
+
|
114
|
+
def to_s
|
115
|
+
return "row: #{self.row} | key_col: #{self.key_col} | lang_cols: #{self.lang_cols.to_s}"
|
116
|
+
end
|
16
117
|
end
|
17
118
|
|
18
119
|
end
|