applocale 0.1.1 → 0.1.2

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.
@@ -27,6 +27,8 @@ module Applocale
27
27
  @in_multiline_comments = false
28
28
  keyrowno = {}
29
29
  linenum = 0
30
+ begin
31
+
30
32
  IO.foreach(strings_path, mode: 'r:bom|utf-8') {|line|
31
33
  linenum += 1
32
34
  line.strip!
@@ -64,7 +66,7 @@ module Applocale
64
66
  break
65
67
  end
66
68
 
67
- if !ValidKey.isValidKey(@platform, key)
69
+ if !ValidKey.is_validkey(@platform, key)
68
70
  error = ErrorUtil::ParseLocalizedError::InvalidKey.new(key, strings_path, lang, linenum)
69
71
  @errorlist.push(error)
70
72
  break
@@ -76,7 +78,7 @@ module Applocale
76
78
  if @strings_keys[key][lang.to_s].nil?
77
79
  @strings_keys[key][lang.to_s] = Hash.new
78
80
  @strings_keys[key][lang.to_s][:rowno] = linenum
79
- @strings_keys[key][lang.to_s][:value] = ContentUtil.removeEscape(@platform, value)
81
+ @strings_keys[key][lang.to_s][:value] = ContentUtil.remove_escape(@platform, value)
80
82
  keyrowno[key] = linenum
81
83
  else
82
84
  error = ErrorUtil::ParseLocalizedError::DuplicateKey.new(key, keyrowno[key], strings_path, lang, linenum)
@@ -87,6 +89,9 @@ module Applocale
87
89
  end
88
90
  end
89
91
  }
92
+ rescue
93
+ ErrorUtil::ParseLocalizedError::InvalidFile.new(strings_path).raise
94
+ end
90
95
  end
91
96
 
92
97
  def parse_token(linenum, line, sep, lang, file)
@@ -153,5 +158,6 @@ module Applocale
153
158
  end
154
159
  return value, line[n..-1]
155
160
  end
161
+
156
162
  end
157
163
  end
@@ -22,7 +22,6 @@ module Applocale
22
22
  end
23
23
 
24
24
  def to_parse_strings_file(lang, strings_path)
25
- xml_doc = nil
26
25
  return if !File.exist? strings_path
27
26
  puts "Start to Parse xml file: \"#{strings_path}\" ...".green
28
27
 
@@ -38,7 +37,7 @@ module Applocale
38
37
  end
39
38
  if @strings_keys[key][lang.to_s].nil?
40
39
  @strings_keys[key][lang.to_s] = Hash.new
41
- @strings_keys[key][lang.to_s][:value] = ContentUtil.removeEscape(@platform, value)
40
+ @strings_keys[key][lang.to_s][:value] = ContentUtil.remove_escape(@platform, value)
42
41
  else
43
42
  error = ErrorUtil::ParseLocalizedError::DuplicateKey.new(key, -1, strings_path, lang, -1)
44
43
  @errorlist.push(error)
@@ -46,6 +45,6 @@ module Applocale
46
45
  end
47
46
  end
48
47
  end
49
- end
50
48
 
49
+ end
51
50
  end
@@ -1,7 +1,7 @@
1
1
  require File.expand_path('../setting.rb', __FILE__)
2
2
  require File.expand_path('../../Util/platform.rb', __FILE__)
3
- require File.expand_path('../../Util/color_util.rb', __FILE__)
4
3
  require File.expand_path('../../Util/regex_util.rb', __FILE__)
4
+ require 'colorize'
5
5
 
6
6
  module Applocale
7
7
  class ConvertToStrFile
@@ -10,57 +10,51 @@ module Applocale
10
10
  setting.langlist.each do |lang, langinfo|
11
11
  puts "Start to convert to string file for [\"#{lang}\"] #{langinfo[:path]}...".green
12
12
  if setting.platform == Platform::IOS
13
- self.convertToStrings(setting.platform, lang, langinfo[:path], sheetcontent_list)
13
+ self.convert_to_localefile(setting.platform, lang, langinfo[:path], sheetcontent_list)
14
14
  elsif setting.platform == Platform::ANDROID
15
- self.convertToXML(setting.platform,lang, langinfo[:path], sheetcontent_list)
15
+ self.convert_to_xml(setting.platform, lang, langinfo[:path], sheetcontent_list)
16
16
  end
17
17
  end
18
-
19
- puts "Convert Finished !!!".green
18
+ puts 'Convert Finished !!!'.green
20
19
  end
21
20
 
22
- def self.convertToStrings(platform, lang, langfilepath, sheetcontent_list)
21
+ def self.convert_to_localefile(platform, lang, langfilepath, sheetcontent_list)
23
22
  FileUtils.mkdir_p(File.dirname(langfilepath))
24
23
  target = open(langfilepath, 'w')
25
-
26
24
  sheetcontent_list.each do |sheetcontent|
27
- target.puts("/*******************************")
25
+ contentlist = sheetcontent.get_rowInfo_sortby_key
26
+ next if contentlist.length <= 0
27
+ target.puts('/*******************************')
28
28
  target.puts(" * #{sheetcontent.comment}")
29
- target.puts(" *******************************/")
30
- target.puts("")
31
- contentlist = sheetcontent.getRowInfoSortByKey()
29
+ target.puts(' *******************************/')
30
+ target.puts('')
32
31
  contentlist.each do |rowinfo|
33
32
  content = rowinfo.content_dict[lang]
34
- value = ContentUtil.addEscape(platform,content)
33
+ value = ContentUtil.add_escape(platform, content)
35
34
  target.puts("\"#{rowinfo.key_str.downcase}\" = \"#{value}\";")
36
35
  end
37
- target.puts("")
36
+ target.puts('')
38
37
  end
39
38
  target.close
40
-
41
39
  end
42
40
 
43
- def self.convertToXML(platform, lang, langfilepath, sheetcontent_list)
41
+ def self.convert_to_xml(platform, lang, langfilepath, sheetcontent_list)
44
42
  FileUtils.mkdir_p(File.dirname(langfilepath))
45
43
  target = open(langfilepath, 'w')
46
- target.puts("<resources>")
47
-
44
+ target.puts('<resources>')
48
45
  sheetcontent_list.each do |sheetcontent|
49
46
  target.puts(" <!-- #{sheetcontent.comment} -->")
50
- contentlist = sheetcontent.getRowInfoSortByKey()
47
+ contentlist = sheetcontent.get_rowInfo_sortby_key
51
48
  contentlist.each do |rowinfo|
52
49
  content = rowinfo.content_dict[lang]
53
- value = ContentUtil.addEscape(platform,content)
50
+ value = ContentUtil.add_escape(platform, content)
54
51
  target.puts(" <string name=\"#{rowinfo.key_str.downcase}\">#{value}</string>")
55
52
  end
56
- target.puts("")
53
+ target.puts('')
57
54
  end
58
-
59
- target.puts("</resources>")
55
+ target.puts('</resources>')
60
56
  target.close
61
57
  end
62
58
 
63
59
  end
64
60
  end
65
-
66
- # attr_accessor :link, :platform, :keystr, :langlist, :langfilepathlist, :xlsxpath
@@ -1,19 +1,23 @@
1
1
  require File.expand_path('../setting.rb', __FILE__)
2
- require File.expand_path('../google_helper.rb', __FILE__)
3
- require File.expand_path('../parse_xlsx', __FILE__)
4
- require File.expand_path('../convert_to_str_file', __FILE__)
2
+ require File.expand_path('../GoogleHepler/google_helper.rb', __FILE__)
3
+ require File.expand_path('../ParseXLSX/parse_xlsx', __FILE__)
4
+ require File.expand_path('../convert_to_localefile', __FILE__)
5
5
 
6
6
  module Applocale
7
- def self.start(is_localupdate, setting)
8
- if !is_localupdate
9
- google_file_id = GoogleHelper.isGoogleLink(setting.link)
10
- if !google_file_id.nil?
11
- GoogleHelper.downloadSpreadSheet(google_file_id,setting.xlsxpath)
7
+ def self.start_update(is_localupdate, setting)
8
+ unless is_localupdate
9
+ google_file_id = GoogleHelper.is_googlelink(setting.link)
10
+ unless google_file_id.nil?
11
+ GoogleHelper.download_spreadsheet(google_file_id, setting.xlsxpath)
12
12
  end
13
13
  end
14
14
 
15
- parseXlsx = ParseXLSX.new()
16
- ConvertToStrFile.convert(parseXlsx.result)
15
+ parse_xlsx = ParseXLSX.new
16
+ ConvertToStrFile.convert(parse_xlsx.result)
17
17
  end
18
18
 
19
- end
19
+ def self.start_reverse(is_skip)
20
+ Applocale::ParseLocalizedResource.new(is_skip)
21
+ end
22
+
23
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../Util/color_util.rb', __FILE__)
1
+ require 'colorize'
2
2
 
3
3
  module Applocale
4
4
  class Setting
@@ -7,12 +7,13 @@ module Applocale
7
7
  end
8
8
 
9
9
  def self.printlog
10
- puts " In Setting"
10
+ puts ' In Setting'
11
11
  puts " link = #{self.link}"
12
12
  puts " platform = #{self.platform}"
13
13
  puts " keystr = #{self.keystr}"
14
14
  puts " langlist = #{self.langlist}"
15
15
  puts " xlsxpath = #{self.xlsxpath}"
16
16
  end
17
+
17
18
  end
18
19
  end
@@ -8,22 +8,22 @@ require 'pathname'
8
8
 
9
9
  module Applocale
10
10
  class ConfigUtil
11
- def self.createConfigFileIfNeed(platform)
12
- pathstr = FileUtil.configFilePathStr
13
- self.createConfigFile(platform, pathstr) unless File.exist?(pathstr)
11
+ def self.create_configfile_ifneed(platform)
12
+ pathstr = FileUtil.configfile_pathstr
13
+ self.create_configfile(platform, pathstr) unless File.exist?(pathstr)
14
14
  end
15
15
 
16
- def self.createConfigFile(platform, configfile_pathstr)
16
+ def self.create_configfile(platform, configfile_pathstr)
17
17
  src_pathstr = File.expand_path("../../#{FileUtil.filename_config}", __FILE__)
18
18
 
19
- File.open(src_pathstr, "r") do |form|
20
- File.open(configfile_pathstr, "w") do |to|
19
+ File.open(src_pathstr, 'r') do |form|
20
+ File.open(configfile_pathstr, 'w') do |to|
21
21
  form.each_line do |line|
22
22
  newline = line.gsub("\#{platform}", "#{platform.to_s}")
23
- newline = newline.gsub("\#{path_zh_TW}", FileUtil.defaultLocaleFileRelativePathStr(platform, Locale::ZH_TW))
24
- newline = newline.gsub("\#{path_zh_CN}", FileUtil.defaultLocaleFileRelativePathStr(platform, Locale::ZH_CN))
25
- newline = newline.gsub("\#{path_en_US}", FileUtil.defaultLocaleFileRelativePathStr(platform, Locale::EN_US))
26
- newline = newline.gsub("\#{xlsxpath}", FileUtil.defaultXlsxRelativePathStr())
23
+ newline = newline.gsub("\#{path_zh_TW}", FileUtil.get_default_localefile_relative_pathstr(platform, Locale::ZH_TW))
24
+ newline = newline.gsub("\#{path_zh_CN}", FileUtil.get_default_localefile_relative_pathstr(platform, Locale::ZH_CN))
25
+ newline = newline.gsub("\#{path_en_US}", FileUtil.get_default_localefile_relative_pathstr(platform, Locale::EN_US))
26
+ newline = newline.gsub("\#{xlsxpath}", FileUtil.get_default_xlsx_relativepath_str)
27
27
  to.puts(newline)
28
28
  end
29
29
 
@@ -31,60 +31,64 @@ module Applocale
31
31
  end
32
32
  end
33
33
 
34
- def self.loadAndValidateForXlsxToStringFile(is_local_update)
34
+ def self.load_and_validate_xlsx_to_localefile(is_local_update)
35
35
  config_yaml = self.load_config
36
- self.validateForXlsxToStringFile(config_yaml, is_local_update)
36
+ self.validate_xlsx_to_localefile(config_yaml, is_local_update)
37
37
  end
38
38
 
39
- def self.loadAndValidateForStringFileToXlsx()
39
+ def self.load_and_validate_localefile_to_xlsx()
40
40
  config_yaml = self.load_config
41
- self.validateForStringFileToXlsx(config_yaml)
41
+ self.validate_localefile_to_xlsx(config_yaml)
42
42
  end
43
43
 
44
44
  # private
45
45
  def self.load_config
46
- configfile_path = FileUtil.configFilePathStr
46
+ configfile_path = FileUtil.configfile_pathstr
47
47
  unless File.exist?(configfile_path)
48
- ErrorUtil::MissingConfigFileError.new("Missing ConfigFile").raise
48
+ ErrorUtil::MissingConfigFile.new.raise
49
+ end
50
+ begin
51
+ config_yaml = YAML.load_file configfile_path
52
+ rescue
53
+ ErrorUtil::ConfigFileInValid.new('ConfigFile format is invalid.').raise
49
54
  end
50
- config_yaml = YAML.load_file configfile_path
51
55
  return config_yaml
52
56
  end
53
57
 
54
- def self.validateForXlsxToStringFile(config_yaml, is_local_update)
55
- error_list = self.validateCommon(config_yaml)
58
+ def self.validate_xlsx_to_localefile(config_yaml, is_local_update)
59
+ error_list = self.validate_common(config_yaml)
56
60
  if is_local_update
57
- if !File.exist? Setting.xlsxpath
58
- error = ErrorUtil::ConfigFileValidError.new("#{Setting.xlsxpath} do not exist")
61
+ unless File.exist? Setting.xlsxpath
62
+ error = ErrorUtil::ConfigFileInValid.new("#{Setting.xlsxpath} do not exist")
59
63
  error_list.push(error)
60
64
  end
61
65
  else
62
- if Setting.link.nil?
63
- error = ErrorUtil::ConfigFileValidError.new("[link] should not be empty")
66
+ if config_yaml['link'].to_s.strip.nil? || config_yaml['link'].to_s.strip.length <= 0
67
+ error = ErrorUtil::ConfigFileInValid.new('[link] should not be empty')
64
68
  error_list.push(error)
65
69
  end
66
70
  end
67
- ErrorUtil::ConfigFileValidError.raiseArr(error_list)
71
+ ErrorUtil::ConfigFileInValid.raiseArr(error_list)
68
72
  end
69
73
 
70
- def self.validateForStringFileToXlsx(config_yaml)
71
- error_list = self.validateCommon(config_yaml)
72
- Setting.langlist.each do |lang, langinfo|
73
- if !File.exist? langinfo[:path]
74
- error = ErrorUtil::ConfigFileValidError.new("#{langinfo[:path]} do not exist")
74
+ def self.validate_localefile_to_xlsx(config_yaml)
75
+ error_list = self.validate_common(config_yaml)
76
+ Setting.langlist.each do |_, langinfo|
77
+ unless File.exist? langinfo[:path]
78
+ error = ErrorUtil::ConfigFileInValid.new("#{langinfo[:path]} do not exist")
75
79
  error_list.push(error)
76
80
  end
77
81
  end
78
- ErrorUtil::ConfigFileValidError.raiseArr(error_list)
82
+ ErrorUtil::ConfigFileInValid.raiseArr(error_list)
79
83
  end
80
84
 
81
- def self.validateCommon(config_yaml)
85
+ def self.validate_common(config_yaml)
82
86
  error_list = Array.new
83
- link = config_yaml["link"].to_s
84
- platform = config_yaml["platform"].to_s
85
- keystr = config_yaml["keystr"].to_s
86
- langlist = config_yaml["langlist"]
87
- xlsxpath = config_yaml["xlsxpath"].to_s
87
+ link = config_yaml['link'].to_s.strip
88
+ platform = config_yaml['platform'].to_s.strip
89
+ keystr = config_yaml['keystr'].to_s.strip
90
+ langlist = config_yaml['langlist']
91
+ xlsxpath = config_yaml['xlsxpath'].to_s.strip
88
92
 
89
93
  newlink = nil
90
94
  newplatform = nil
@@ -92,9 +96,9 @@ module Applocale
92
96
  newlanglist = Hash.new
93
97
  newxlsxpath = nil
94
98
 
95
- if !(link.nil? || link.length == 0)
99
+ unless link.nil? || link.length == 0
96
100
  if (link =~ /^https/).nil? && (link =~ /^http/).nil?
97
- error = ErrorUtil::ConfigFileValidError.new("Invalid link for [link] : #{link}")
101
+ error = ErrorUtil::ConfigFileInValid.new("Invalid link for [link] : #{link}")
98
102
  error_list.push(error)
99
103
  else
100
104
  newlink = link
@@ -103,21 +107,21 @@ module Applocale
103
107
 
104
108
  if !(xlsxpath.nil? || xlsxpath.length == 0)
105
109
  if !(Pathname.new xlsxpath).absolute?
106
- newxlsxpath = File.expand_path(xlsxpath, File.dirname(FileUtil.configFilePathStr))
110
+ newxlsxpath = File.expand_path(xlsxpath, File.dirname(FileUtil.configfile_pathstr))
107
111
  else
108
112
  newxlsxpath = xlsxpath
109
113
  end
110
114
  else
111
- error = ErrorUtil::ConfigFileValidError.new("[xlsxpath] should not be empty or missing")
115
+ error = ErrorUtil::ConfigFileInValid.new('[xlsxpath] should not be empty or missing')
112
116
  error_list.push(error)
113
117
  end
114
118
 
115
119
  if platform.nil? || platform.length == 0
116
- error = ErrorUtil::ConfigFileValidError.new("[platform] should not be empty")
120
+ error = ErrorUtil::ConfigFileInValid.new('[platform] should not be empty')
117
121
  error_list.push(error)
118
122
  else
119
123
  if Platform.init(platform).nil?
120
- error = ErrorUtil::ConfigFileValidError.new("[platform] can only be 'ios' or 'android' ")
124
+ error = ErrorUtil::ConfigFileInValid.new("[platform] can only be 'ios' or 'android' ")
121
125
  error_list.push(error)
122
126
  else
123
127
  newplatform = Platform.init(platform)
@@ -125,33 +129,44 @@ module Applocale
125
129
  end
126
130
 
127
131
  if keystr.nil? || keystr.length == 0
128
- error = ErrorUtil::ConfigFileValidError.new("[keystr] should not be empty")
132
+ error = ErrorUtil::ConfigFileInValid.new('[keystr] should not be empty')
129
133
  error_list.push(error)
130
134
  else
131
135
  newkeystr = keystr
132
136
  end
133
137
 
134
138
  if langlist.nil?
135
- error = ErrorUtil::ConfigFileValidError.new("[langlist] should not be empty or missing")
139
+ error = ErrorUtil::ConfigFileInValid.new('[langlist] should not be empty or missing')
136
140
  error_list.push(error)
137
141
  elsif !(langlist.is_a? Hash)
138
- error = ErrorUtil::ConfigFileValidError.new("[langlist] wrong format")
142
+ error = ErrorUtil::ConfigFileInValid.new('[langlist] wrong format')
139
143
  error_list.push(error)
140
144
  else
141
145
  if langlist.length <= 0
142
- error = ErrorUtil::ConfigFileValidError.new("[langlist] should not be empty ")
146
+ error = ErrorUtil::ConfigFileInValid.new('[langlist] should not be empty ')
143
147
  error_list.push(error)
144
148
  end
145
149
  langlist.each do |lang, arr|
146
150
  if arr.length != 2
147
- error = ErrorUtil::ConfigFileValidError.new("[langlist] wrong format")
151
+ error = ErrorUtil::ConfigFileInValid.new('[langlist] wrong format')
148
152
  error_list.push(error)
149
153
  else
150
154
  path = arr[1]
151
- if !(Pathname.new path).absolute?
152
- path = File.expand_path(path, File.dirname(FileUtil.configFilePathStr))
155
+ unless (Pathname.new path).absolute?
156
+ path = File.expand_path(path, File.dirname(FileUtil.configfile_pathstr))
157
+ end
158
+ if newplatform != nil
159
+ if Platform.is_valid_path(newplatform, path)
160
+ newlanglist[lang] = {:xlsheader => arr[0], :path => path}
161
+ else
162
+ if newplatform == Platform::IOS
163
+ error = ErrorUtil::ConfigFileInValid.new("wrong locale file type: IOS should be .strings : #{path}")
164
+ else
165
+ error = ErrorUtil::ConfigFileInValid.new("wrong locale file type: Android should be .xml : #{path}")
166
+ end
167
+ error_list.push(error)
168
+ end
153
169
  end
154
- newlanglist[lang] = {:xlsheader => arr[0], :path => path}
155
170
  end
156
171
  end
157
172
  end
@@ -1,12 +1,11 @@
1
- require File.expand_path('../color_util.rb', __FILE__)
2
-
1
+ require 'colorize'
3
2
 
4
3
  module Applocale
5
4
  module ErrorUtil
6
5
  class CommonError < StandardError
7
6
  def raise
8
7
  puts "** Error: #{self.message}".red
9
- abort("")
8
+ abort('')
10
9
  end
11
10
 
12
11
  def to_warn
@@ -17,10 +16,13 @@ module Applocale
17
16
  class CommandError < CommonError;
18
17
  end
19
18
 
20
- class MissingConfigFileError < CommonError;
19
+ class MissingConfigFile < CommonError
20
+ def message
21
+ "Missing ConfigFile"
22
+ end
21
23
  end
22
24
 
23
- class ConfigFileValidError < CommonError
25
+ class ConfigFileInValid < CommonError
24
26
  def self.raiseArr(list = nil)
25
27
  if !list.nil? && list.length > 0
26
28
  puts "*** ConfigError ***".red
@@ -30,29 +32,44 @@ module Applocale
30
32
  abort("")
31
33
  end
32
34
  end
33
- # attr_accessor :msg
34
- # def initialize(msg)
35
- # self.msg = msg
36
- # end
37
35
  end
38
36
 
39
- class DownloadXlsxError < CommonError
37
+ class DownloadFromGoogleFail < CommonError
38
+ def message
39
+ "Cannot download from google"
40
+ end
41
+ end
40
42
 
43
+ class CannotOpenXlsxFile < CommonError
44
+ attr_accessor :path
45
+ def initialize(path)
46
+ @path = path
47
+ end
48
+ def message
49
+ "Can't open xlsx file #{self.path}"
50
+ end
41
51
  end
52
+ end
53
+ end
42
54
 
55
+ module Applocale
56
+ module ErrorUtil
43
57
 
44
58
  module ParseXlsxError
45
59
  class ParseError < CommonError
46
60
 
47
- attr_accessor :rowinfo, :msg
61
+ attr_accessor :rowinfo
48
62
 
49
- def initialize(rowinfo = nil, msg = nil)
63
+ def initialize(rowinfo = nil)
50
64
  @rowinfo = rowinfo
51
- @msg = msg
52
65
  end
53
66
 
54
67
  def message
55
- "#{rowinfo.to_s} - #{msg}"
68
+ self.msg
69
+ end
70
+
71
+ def msg
72
+ return rowinfo.to_s
56
73
  end
57
74
 
58
75
  def self.raiseArr(list = nil)
@@ -67,13 +84,43 @@ module Applocale
67
84
 
68
85
  end
69
86
 
70
- class HeadeNotFoundError < ParseError;
87
+ class HeadeNotFound < ParseError
88
+ attr_accessor :sheetname
89
+ def initialize(sheetname)
90
+ @sheetname = sheetname
91
+ end
92
+
93
+ def message
94
+ "Header not found in sheet: #{self.sheetname}"
95
+ end
71
96
  end
72
- class ErrorDuplicateKey < ParseError;
97
+
98
+ class DuplicateKey < ParseError
99
+ attr_accessor :duplicate_sheetname, :duplicate_rowno
100
+
101
+ def initialize(rowinfo, duplicate_sheetname, duplicate_rowno)
102
+ @rowinfo = rowinfo
103
+ @duplicate_sheetname = duplicate_sheetname
104
+ @duplicate_rowno = duplicate_rowno
105
+ end
106
+
107
+ def message
108
+ "DuplicateKey [#{self.rowinfo.key_str}] - #{self.msg} : duplicateWithSheet: #{self.duplicate_sheetname} Row: #{self.duplicate_rowno+1}"
109
+ end
73
110
  end
74
- class ErrorInValidKey < ParseError;
111
+
112
+ class InValidKey < ParseError;
113
+ def message
114
+ "InvalidKey [#{self.rowinfo.key_str}] - #{self.msg}"
115
+ end
75
116
  end
76
117
  end
118
+ end
119
+ end
120
+
121
+
122
+ module Applocale
123
+ module ErrorUtil
77
124
 
78
125
  module ParseLocalizedError
79
126
  class ParseLocalizedError < CommonError
@@ -90,7 +137,7 @@ module Applocale
90
137
  end
91
138
 
92
139
  def msg
93
- return "lang: #{lang}, rowno: #{row_no}, file: #{file}"
140
+ return "lang: #{self.lang}, rowno: #{self.row_no}, file: #{self.file}"
94
141
  end
95
142
 
96
143
  def raise(is_exit = true)
@@ -110,6 +157,16 @@ module Applocale
110
157
 
111
158
  end
112
159
 
160
+ class InvalidFile < ParseLocalizedError
161
+ attr_accessor :path
162
+ def initialize(path)
163
+ @path = path
164
+ end
165
+ def message
166
+ "Can't open file #{self.path}"
167
+ end
168
+ end
169
+
113
170
  class InvalidKey < ParseLocalizedError
114
171
  attr_accessor :key
115
172
 
@@ -121,7 +178,7 @@ module Applocale
121
178
  end
122
179
 
123
180
  def message
124
- "InvalidKey [#{key}] - #{self.msg}"
181
+ "InvalidKey [#{self.key}] - #{self.msg}"
125
182
  end
126
183
  end
127
184
 
@@ -132,6 +189,7 @@ module Applocale
132
189
  end
133
190
  class DuplicateKey < ParseLocalizedError
134
191
  attr_accessor :key, :duplicate_rowno
192
+
135
193
  def initialize(key, duplicate_rowno, file, lang, row_no)
136
194
  @key = key
137
195
  @duplicate_rowno = duplicate_rowno
@@ -141,7 +199,7 @@ module Applocale
141
199
  end
142
200
 
143
201
  def message
144
- "DuplicateKey [#{key}] - #{self.msg} : duplicateWithRow: #{duplicate_rowno}"
202
+ "DuplicateKey [#{self.key}] - #{self.msg} : duplicateWithRow: #{self.duplicate_rowno}"
145
203
  end
146
204
  end
147
205
  end