applocale 0.1.6 → 0.2.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/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,4 +1,5 @@
|
|
1
1
|
require 'colorize'
|
2
|
+
require File.expand_path('../file_util.rb', __FILE__)
|
2
3
|
|
3
4
|
module Applocale
|
4
5
|
module ErrorUtil
|
@@ -25,7 +26,7 @@ module Applocale
|
|
25
26
|
class ConfigFileInValid < CommonError
|
26
27
|
def self.raiseArr(list = nil)
|
27
28
|
if !list.nil? && list.length > 0
|
28
|
-
puts "***
|
29
|
+
puts "*** ConfigFile Error ***".red
|
29
30
|
list.each do |err|
|
30
31
|
puts "#{err.message}".red
|
31
32
|
end
|
@@ -105,7 +106,7 @@ module Applocale
|
|
105
106
|
end
|
106
107
|
|
107
108
|
def message
|
108
|
-
"DuplicateKey [#{self.rowinfo.key_str}] - #{self.msg} : duplicateWithSheet: #{self.duplicate_sheetname} Row: #{self.duplicate_rowno
|
109
|
+
"DuplicateKey [#{self.rowinfo.key_str}] - #{self.msg} : duplicateWithSheet: #{self.duplicate_sheetname} Row: #{self.duplicate_rowno}"
|
109
110
|
end
|
110
111
|
end
|
111
112
|
|
@@ -3,58 +3,57 @@ require File.expand_path('../lang.rb', __FILE__)
|
|
3
3
|
require 'pathname'
|
4
4
|
|
5
5
|
module Applocale
|
6
|
-
class
|
6
|
+
class FilePathUtil
|
7
7
|
DIRNAME_MAIN = 'AppLocale'
|
8
8
|
DIRNAME_IOS = 'IOS'
|
9
9
|
DIRNAME_ANDROID = 'Android'
|
10
|
-
FILENAME_CONFIG = 'AppLocaleFile
|
10
|
+
FILENAME_CONFIG = 'AppLocaleFile'
|
11
11
|
FILENAME_XLSX = 'string.xlsx'
|
12
|
+
GOOGLE_CREDENTIALS = 'google_credentials.yaml'
|
12
13
|
|
13
|
-
def self.
|
14
|
-
|
14
|
+
def self.get_proj_absoluat_path(proj_path)
|
15
|
+
path = proj_path
|
16
|
+
if !(Pathname.new proj_path).absolute?
|
17
|
+
path = File.expand_path(proj_path,Dir.pwd)
|
18
|
+
end
|
19
|
+
return path
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.default_google_credentials_filename
|
23
|
+
return GOOGLE_CREDENTIALS
|
15
24
|
end
|
16
25
|
|
17
|
-
def self.
|
18
|
-
|
19
|
-
Dir.mkdir pathstr unless File.exist?(pathstr)
|
20
|
-
return pathstr
|
26
|
+
def self.default_config_filename
|
27
|
+
return FILENAME_CONFIG
|
21
28
|
end
|
22
29
|
|
23
|
-
def self.
|
24
|
-
|
25
|
-
pathstr = File.join(self.mainfolder_pathstr, filename)
|
26
|
-
return pathstr
|
30
|
+
def self.default_mainfolder
|
31
|
+
return DIRNAME_MAIN
|
27
32
|
end
|
28
|
-
#
|
29
|
-
# def self.create_configfile_ifneed(platform)
|
30
|
-
# pathstr = self.configfile_pathstr
|
31
|
-
# ConfigUtil.create_configfile(platform, pathstr) unless File.exist?(pathstr)
|
32
|
-
# end
|
33
33
|
|
34
|
-
def self.
|
34
|
+
def self.default_localefile_relative_pathstr(platform, lang)
|
35
35
|
if platform == Platform::IOS
|
36
36
|
dirname = DIRNAME_IOS
|
37
37
|
elsif platform == Platform::ANDROID
|
38
38
|
dirname = DIRNAME_ANDROID
|
39
39
|
end
|
40
40
|
unless dirname.nil?
|
41
|
-
dirpathstr = File.join(self.mainfolder_pathstr, dirname)
|
42
|
-
Dir.mkdir dirpathstr unless File.exist?(dirpathstr)
|
43
41
|
filename = Locale.filename(platform, lang)
|
44
|
-
|
45
|
-
filepath = Pathname.new(filepathstr)
|
46
|
-
configfilepath = Pathname.new(File.dirname(self.configfile_pathstr))
|
47
|
-
return filepath.relative_path_from(configfilepath).to_s
|
42
|
+
return "#{dirname}/#{filename}"
|
48
43
|
end
|
49
44
|
return nil
|
50
45
|
end
|
51
46
|
|
52
|
-
def self.
|
47
|
+
def self.default_xlsx_relativepath_str
|
53
48
|
filename = FILENAME_XLSX
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
49
|
+
return filename
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.str_to_folderpathstr(str)
|
53
|
+
pathstr = Pathname.new(str.strip)
|
54
|
+
if File.directory?(pathstr)
|
55
|
+
pathstr = File.join(self.configfile_pathstr, FilePathUtil.default_config_filename).to_s
|
56
|
+
end
|
58
57
|
end
|
59
58
|
end
|
60
59
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Applocale
|
4
|
+
class Injection
|
5
|
+
def self.load(rubycode)
|
6
|
+
obj = Applocale::Injection.new()
|
7
|
+
obj.load(rubycode)
|
8
|
+
return obj
|
9
|
+
end
|
10
|
+
|
11
|
+
def load(rubycode)
|
12
|
+
if !rubycode.nil?
|
13
|
+
eval rubycode
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
public
|
18
|
+
def has_convent_to_locale
|
19
|
+
return defined?(convent_to_locale) == 'method'
|
20
|
+
end
|
21
|
+
|
22
|
+
public
|
23
|
+
def load_convent_to_locale(lang, key, value)
|
24
|
+
return convent_to_locale(lang, key, value)
|
25
|
+
end
|
26
|
+
|
27
|
+
public
|
28
|
+
def has_before_convent_to_locale
|
29
|
+
return defined?(before_convent_to_locale) == 'method'
|
30
|
+
end
|
31
|
+
|
32
|
+
public
|
33
|
+
def load_before_convent_to_locale(lang, key, value)
|
34
|
+
return before_convent_to_locale(lang, key, value)
|
35
|
+
end
|
36
|
+
|
37
|
+
public
|
38
|
+
def has_after_convent_to_locale
|
39
|
+
return defined?(after_convent_to_locale) == 'method'
|
40
|
+
end
|
41
|
+
|
42
|
+
public
|
43
|
+
def load_after_convent_to_locale(lang, key, value)
|
44
|
+
return after_convent_to_locale(lang, key, value)
|
45
|
+
end
|
46
|
+
|
47
|
+
#
|
48
|
+
public
|
49
|
+
def has_parse_from_locale
|
50
|
+
return defined?(parse_from_locale) == 'method'
|
51
|
+
end
|
52
|
+
|
53
|
+
public
|
54
|
+
def load_parse_from_locale(lang, key, value)
|
55
|
+
return parse_from_locale(lang, key, value)
|
56
|
+
end
|
57
|
+
|
58
|
+
public
|
59
|
+
def has_before_parse_from_locale
|
60
|
+
return defined?(before_parse_from_locale) == 'method'
|
61
|
+
end
|
62
|
+
|
63
|
+
public
|
64
|
+
def load_before_parse_from_locale(lang, key, value)
|
65
|
+
return before_parse_from_locale(lang, key, value)
|
66
|
+
end
|
67
|
+
|
68
|
+
public
|
69
|
+
def has_after_parse_from_locale
|
70
|
+
return defined?(after_parse_from_locale) == 'method'
|
71
|
+
end
|
72
|
+
|
73
|
+
public
|
74
|
+
def load_after_parse_from_locale(lang, key, value)
|
75
|
+
return after_parse_from_locale(lang, key, value)
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
@@ -37,33 +37,35 @@ module Applocale
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def self.add_escaped_android(content)
|
40
|
-
|
41
|
-
|
42
|
-
new_value = content.gsub(reg) {|match|
|
43
|
-
match.slice!(0)
|
44
|
-
match
|
45
|
-
}
|
40
|
+
new_value = content
|
41
|
+
new_value = new_value.gsub(/'/, "\\'")
|
46
42
|
reg = /(?<!\\)((?:\\{2})+)*(\\r)/
|
47
43
|
new_value = new_value.gsub(reg) {|match|
|
48
44
|
match.slice!(-1)
|
49
45
|
match + 'n'
|
50
46
|
}
|
47
|
+
reg = /(?<!\\)((?:\\{2})+)"|(?<!\\)"|^"/
|
48
|
+
new_value = new_value.gsub(reg) {|match|
|
49
|
+
"\\" + match
|
50
|
+
}
|
51
51
|
new_value = new_value.gsub(/&/, '&')
|
52
|
+
new_value = new_value.gsub(/%@/, '%s')
|
52
53
|
new_value = new_value.gsub(/</, '<')
|
53
|
-
|
54
|
+
new_value = new_value.gsub(/>/, '>')
|
54
55
|
return new_value
|
55
56
|
end
|
56
57
|
|
57
58
|
def self.remove_escaped_android(content)
|
58
|
-
new_value = content
|
59
|
-
new_value = new_value.gsub(
|
60
|
-
|
59
|
+
new_value = content
|
60
|
+
new_value = new_value.gsub(/%s/, '%@')
|
61
|
+
new_value = new_value.gsub(/\\'/, "'")
|
61
62
|
return new_value
|
62
63
|
end
|
63
64
|
|
64
65
|
def self.add_escaped_double_quote(content)
|
66
|
+
new_value = content
|
65
67
|
reg = /(?<!\\)((?:\\{2})+)"|(?<!\\)"|^"/
|
66
|
-
new_value =
|
68
|
+
new_value = new_value.gsub(reg) {|match|
|
67
69
|
"\\" + match
|
68
70
|
}
|
69
71
|
return new_value
|
@@ -89,32 +91,4 @@ module Applocale
|
|
89
91
|
return new_value
|
90
92
|
end
|
91
93
|
end
|
92
|
-
end
|
93
|
-
|
94
|
-
# test = "aasb\\c"
|
95
|
-
# new = test.slice(-1)
|
96
|
-
# test.slice!(-2)
|
97
|
-
# puts test
|
98
|
-
# puts new
|
99
|
-
|
100
|
-
# ex = "\\"
|
101
|
-
# qu = "&"
|
102
|
-
#
|
103
|
-
# (0..10).each do |i|
|
104
|
-
# test = ([ex]*i).join("") + qu + "abcd" + ([ex]*i).join("") + qu + "def"
|
105
|
-
# puts "#{test}"
|
106
|
-
# puts Applocale::ContentUtil.addEscapedForAndroid(test)
|
107
|
-
# puts "------------------------------------"
|
108
|
-
# end
|
109
|
-
|
110
|
-
|
111
|
-
#
|
112
|
-
# #
|
113
|
-
# #
|
114
|
-
# # test = qu
|
115
|
-
# # test1 = ex + qu
|
116
|
-
# # test2 = ex + ex + qu
|
117
|
-
# # test3 = ex + ex + ex + qu
|
118
|
-
# # test4 = ex + ex + ex + ex + qu
|
119
|
-
# #
|
120
|
-
# # Applocale::ContentUtil.removeEscapeFroXlsx(test)
|
94
|
+
end
|
data/lib/applocale/version.rb
CHANGED
metadata
CHANGED
@@ -1,121 +1,121 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: applocale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kennix
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.12'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.12'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '5.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: thor
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 0.19.4
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.19.4
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: google-api-client
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 0.9.2
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.9.2
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: colorize
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 0.8.1
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.8.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rubyXL
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '3.3'
|
104
|
-
- -
|
104
|
+
- - '>='
|
105
105
|
- !ruby/object:Gem::Version
|
106
106
|
version: 3.3.23
|
107
107
|
type: :runtime
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- -
|
111
|
+
- - ~>
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: '3.3'
|
114
|
-
- -
|
114
|
+
- - '>='
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: 3.3.23
|
117
117
|
description: It can convert file between string and xlsx, also support download xlsx
|
118
|
-
from google
|
118
|
+
from google. You can also setup conversion logic for string value of each project
|
119
119
|
email:
|
120
120
|
- kennixdev@gmail.com
|
121
121
|
executables:
|
@@ -125,9 +125,12 @@ extra_rdoc_files: []
|
|
125
125
|
files:
|
126
126
|
- exe/applocale
|
127
127
|
- lib/applocale.rb
|
128
|
-
- lib/applocale/AppLocaleFile
|
128
|
+
- lib/applocale/AppLocaleFile
|
129
129
|
- lib/applocale/Command/init.rb
|
130
130
|
- lib/applocale/Core/Compare/compare_xlsx_str.rb
|
131
|
+
- lib/applocale/Core/FindStrKey/find_str_key.rb
|
132
|
+
- lib/applocale/Core/FindStrKey/find_str_key_ios.rb
|
133
|
+
- lib/applocale/Core/FindStrKey/find_str_key_result.rb
|
131
134
|
- lib/applocale/Core/GoogleHepler/client_secret.json
|
132
135
|
- lib/applocale/Core/GoogleHepler/google_helper.rb
|
133
136
|
- lib/applocale/Core/ParseXLSX/parse_xlsx.rb
|
@@ -141,6 +144,7 @@ files:
|
|
141
144
|
- lib/applocale/Util/config_util.rb
|
142
145
|
- lib/applocale/Util/error_util.rb
|
143
146
|
- lib/applocale/Util/file_util.rb
|
147
|
+
- lib/applocale/Util/injection.rb
|
144
148
|
- lib/applocale/Util/lang.rb
|
145
149
|
- lib/applocale/Util/platform.rb
|
146
150
|
- lib/applocale/Util/regex_util.rb
|
@@ -155,17 +159,17 @@ require_paths:
|
|
155
159
|
- lib
|
156
160
|
required_ruby_version: !ruby/object:Gem::Requirement
|
157
161
|
requirements:
|
158
|
-
- -
|
162
|
+
- - '>='
|
159
163
|
- !ruby/object:Gem::Version
|
160
164
|
version: '0'
|
161
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
166
|
requirements:
|
163
|
-
- -
|
167
|
+
- - '>='
|
164
168
|
- !ruby/object:Gem::Version
|
165
169
|
version: '0'
|
166
170
|
requirements: []
|
167
171
|
rubyforge_project:
|
168
|
-
rubygems_version: 2.
|
172
|
+
rubygems_version: 2.4.8
|
169
173
|
signing_key:
|
170
174
|
specification_version: 4
|
171
175
|
summary: for mobile application to manage locale
|