wwwjdic 13.0.1 → 16.1.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.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +60 -1
  3. data/Gemfile +7 -1
  4. data/README.md +500 -225
  5. data/Rakefile +10 -3
  6. data/copyright.md +17 -29
  7. data/examples/basics.rb +53 -45
  8. data/examples/translate.rb +159 -86
  9. data/examples/uri.rb +46 -78
  10. data/html/CHANGELOG.html +90 -35
  11. data/html/COPYING_md.html +26 -38
  12. data/html/Gemfile.html +25 -35
  13. data/html/Object.html +838 -74
  14. data/html/README_md.html +322 -175
  15. data/html/Rakefile.html +28 -38
  16. data/html/WWWJDic.html +63 -104
  17. data/html/WWWJDic/ParsableDuckType.html +38 -58
  18. data/html/WWWJDic/Parser.html +52 -92
  19. data/html/WWWJDic/Parsers.html +29 -35
  20. data/html/WWWJDic/Parsers/Dict.html +50 -76
  21. data/html/WWWJDic/Parsers/Display.html +45 -69
  22. data/html/WWWJDic/Parsers/Key.html +46 -70
  23. data/html/WWWJDic/Parsers/Search.html +41 -61
  24. data/html/WWWJDic/Parsers/Server.html +45 -69
  25. data/html/WWWJDic/Splitter.html +81 -175
  26. data/html/WWWJDic/Utils.html +30 -36
  27. data/html/WWWJDic/Utils/Downloader.html +41 -41
  28. data/html/WWWJDic/Utils/Downloader/Downloader.html +65 -92
  29. data/html/WWWJDic/Utils/Raisers.html +46 -98
  30. data/html/WWWJDic/WWWJDic.html +166 -348
  31. data/html/copyright_md.html +219 -239
  32. data/html/created.rid +33 -58
  33. data/html/css/rdoc.css +638 -590
  34. data/html/index.html +313 -182
  35. data/html/js/darkfish.js +84 -161
  36. data/html/js/navigation.js +4 -40
  37. data/html/js/navigation.js.gz +0 -0
  38. data/html/js/search.js +109 -109
  39. data/html/js/search_index.js +1 -1
  40. data/html/js/search_index.js.gz +0 -0
  41. data/html/js/searcher.js +228 -229
  42. data/html/js/searcher.js.gz +0 -0
  43. data/html/table_of_contents.html +161 -200
  44. data/lib/wwwjdic.rb +14 -15
  45. data/lib/wwwjdic/application.rb +68 -36
  46. data/lib/wwwjdic/constants.rb +56 -12
  47. data/lib/wwwjdic/locales/de.yml +9 -4
  48. data/lib/wwwjdic/locales/en.yml +9 -4
  49. data/lib/wwwjdic/locales/es.yml +9 -4
  50. data/lib/wwwjdic/locales/fr.yml +9 -4
  51. data/lib/wwwjdic/locales/hu.yml +9 -4
  52. data/lib/wwwjdic/locales/it.yml +9 -4
  53. data/lib/wwwjdic/locales/ja.yml +11 -5
  54. data/lib/wwwjdic/locales/nl.yml +9 -4
  55. data/lib/wwwjdic/locales/ru.yml +9 -4
  56. data/lib/wwwjdic/locales/sl.yml +9 -4
  57. data/lib/wwwjdic/locales/sv.yml +9 -4
  58. data/lib/wwwjdic/parser.rb +13 -8
  59. data/lib/wwwjdic/parsers/dict.rb +11 -8
  60. data/lib/wwwjdic/parsers/display.rb +8 -3
  61. data/lib/wwwjdic/parsers/key.rb +9 -3
  62. data/lib/wwwjdic/parsers/search.rb +10 -3
  63. data/lib/wwwjdic/parsers/server.rb +8 -3
  64. data/lib/wwwjdic/utils/downloader.rb +37 -34
  65. data/lib/wwwjdic/utils/raisers.rb +12 -15
  66. data/lib/wwwjdic/utils/splitter.rb +32 -18
  67. data/lib/wwwjdic/version.rb +22 -8
  68. data/test/test_helper.rb +10 -1
  69. data/test/test_wwwjdic.rb +10 -4
  70. data/test/wwwjdic/locales/de.yml +9 -1
  71. data/test/wwwjdic/locales/en.yml +9 -1
  72. data/test/wwwjdic/locales/es.yml +9 -1
  73. data/test/wwwjdic/locales/fr.yml +9 -1
  74. data/test/wwwjdic/locales/hu.yml +9 -1
  75. data/test/wwwjdic/locales/it.yml +10 -1
  76. data/test/wwwjdic/locales/ja.yml +11 -2
  77. data/test/wwwjdic/locales/nl.yml +9 -1
  78. data/test/wwwjdic/locales/ru.yml +9 -1
  79. data/test/wwwjdic/locales/sl.yml +9 -1
  80. data/test/wwwjdic/locales/sv.yml +9 -1
  81. data/test/wwwjdic/locales/test_locales.rb +41 -24
  82. data/test/wwwjdic/parsers/test_dict.rb +65 -37
  83. data/test/wwwjdic/parsers/test_display.rb +11 -5
  84. data/test/wwwjdic/parsers/test_key.rb +10 -4
  85. data/test/wwwjdic/parsers/test_server.rb +11 -5
  86. data/test/wwwjdic/test_application.rb +199 -149
  87. data/test/wwwjdic/test_parsable_duck_type.rb +9 -5
  88. data/test/wwwjdic/utils/test_downloader.rb +7 -1
  89. data/test/wwwjdic/utils/test_raisers.rb +46 -29
  90. data/wwwjdic.gemspec +44 -26
  91. metadata +55 -43
  92. data/acknowledgements.md +0 -55
  93. data/authors.md +0 -67
  94. data/html/acknowledgements_md.html +0 -149
  95. data/html/authors_md.html +0 -181
  96. data/html/js/jquery.js +0 -4
  97. data/html/wwwjdic_gemspec.html +0 -161
data/lib/wwwjdic.rb CHANGED
@@ -1,5 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ #--
1
4
  # wwwjdic
2
- # Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
5
+ # © 2014-2021 Marco Bresciani
3
6
  #
4
7
  # This file is part of wwwjdic.
5
8
  #
@@ -15,10 +18,11 @@
15
18
  #
16
19
  # You should have received a copy of the GNU General Public License
17
20
  # along with wwwjdic. If not, see <http://www.gnu.org/licenses/>.
18
-
19
- require 'digest/md5'
20
- require 'i18n'
21
- require 'uri'
21
+ #
22
+ # SPDX-FileCopyrightText: 2014-2021 Marco Bresciani
23
+ #
24
+ # SPDX-License-Identifier: GPL-3.0-or-later
25
+ #++
22
26
 
23
27
  require_relative 'wwwjdic/application'
24
28
  require_relative 'wwwjdic/parser'
@@ -29,10 +33,9 @@ require_relative 'wwwjdic/parsers/search'
29
33
  require_relative 'wwwjdic/parsers/server'
30
34
 
31
35
  # Author:: {Marco Bresciani}[mailto:marcobresciani_1974@libero.it]
32
- # Copyright:: Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
36
+ # Copyright:: © 2014-2021 Marco Bresciani
33
37
  # License:: GNU General Public License version 3
34
38
  module WWWJDic
35
-
36
39
  # Creates a new WWWJDic object (from the verb 'to Breen'... :) ).
37
40
  #
38
41
  # Usage::
@@ -42,15 +45,11 @@ module WWWJDic
42
45
  WWWJDic.new(parser)
43
46
  end
44
47
 
45
- # ------------------------------ here starts the list of private methods
46
-
47
- private
48
-
49
- # Provides the parameters' parsers object.
48
+ # Provides the parameters' parsers object.
50
49
  def self.parser
51
- parsers = {dict: Parsers::Dict.new, display: Parsers::Display.new,
52
- key: Parsers::Key.new, search: Parsers::Search.new,
53
- server: Parsers::Server.new}
50
+ parsers = { dict: Parsers::Dict.new, display: Parsers::Display.new,
51
+ key: Parsers::Key.new, search: Parsers::Search.new,
52
+ server: Parsers::Server.new }
54
53
 
55
54
  Parser.new parsers
56
55
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #--
2
4
  # wwwjdic
3
- # Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
5
+ # © 2014-2021 Marco Bresciani
4
6
  #
5
7
  # This file is part of wwwjdic.
6
8
  #
@@ -16,6 +18,10 @@
16
18
  #
17
19
  # You should have received a copy of the GNU General Public License
18
20
  # along with wwwjdic. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+ # SPDX-FileCopyrightText: 2014-2021 Marco Bresciani
23
+ #
24
+ # SPDX-License-Identifier: GPL-3.0-or-later
19
25
  #++
20
26
 
21
27
  require 'i18n'
@@ -28,11 +34,11 @@ require_relative 'utils/splitter'
28
34
  module WWWJDic
29
35
  # This class is a simple API to interact with WWWJDic Backboor
30
36
  # Entry/API.
37
+ #
31
38
  # Author:: {Marco Bresciani}[mailto:marcobresciani_1974@libero.it]
32
- # Copyright:: Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
39
+ # Copyright:: © 2014-2021 Marco Bresciani
33
40
  # License:: GNU General Public License version 3
34
41
  class WWWJDic
35
-
36
42
  # Creates a +WWWJDic+ object. This constructor should be used
37
43
  # through the WWWJDic::breener method only.
38
44
  #
@@ -53,20 +59,15 @@ module WWWJDic
53
59
  def uri(word = nil, args = {})
54
60
  raise ArgumentError, I18n.t('error.nil') if word.nil?
55
61
  raise ArgumentError, I18n.t('error.param', value: word) if word.empty?
56
- raise ArgumentError, I18n.t('error.param', value: args) unless args.keys.to_set.proper_subset? Set.new(ALLOWED_PARAMS)
57
62
 
58
- params = Hash.new
59
- params[:search] = word
60
- @defaults[:search] = word
61
-
62
- unless args.nil?
63
- ALL_PARAMS.each do |param_name|
64
- params[param_name] = @parser.parse(param_name.to_s, args.fetch(param_name, @defaults[param_name]))
65
- end
63
+ unless args.keys.to_set.proper_subset? Set.new(ALLOWED_PARAMS)
64
+ raise ArgumentError,
65
+ I18n.t('error.param', value: args)
66
66
  end
67
67
 
68
- a_wwwjdic = URIS[params[:server]] + params[:dict] + DISPLAY[params[:display]] + params[:search] + KEYS[params[:key]]
69
- a_wwwjdic + CGI::escape(word).to_s
68
+ params = parse_params(args, word)
69
+
70
+ build_uri(params, word)
70
71
  end
71
72
 
72
73
  # Create the reference uri for a +word+ translation, according to
@@ -74,7 +75,7 @@ module WWWJDic
74
75
  #
75
76
  # Usage:: <tt>new_wwwjdic.raw_uri word
76
77
  def raw_uri(word = nil, args = {})
77
- args = Hash.new if args.nil?
78
+ args = {} if args.nil?
78
79
  args[:display] = :raw
79
80
  uri(word, args)
80
81
  end
@@ -86,7 +87,7 @@ module WWWJDic
86
87
  def json_uri(word = nil, args = {})
87
88
  an_uri = uri(word, args)
88
89
 
89
- result = Hash.new
90
+ result = {}
90
91
  result[word] = an_uri
91
92
 
92
93
  result.to_json
@@ -106,34 +107,24 @@ module WWWJDic
106
107
  end
107
108
 
108
109
  # Save a file, with specified +filename+, that contains the current
109
- # wwwjdic configuration, in JSON format. Uses the internal state to
110
- # retrieve data from the URI. Defaults to 'wwwjdic' with no specific
111
- # extension.
110
+ # wwwjdic configuration, in JSON format.
111
+ # Uses the internal state to retrieve data from the URI.
112
+ # Defaults to 'wwwjdic' with no specific extension.
112
113
  #
113
114
  # Usage::
114
115
  # - <tt>a_string = new_wwwjdic.json_translate filename</tt>
115
- # Params::
116
- # - +filename+: [String] is the filename to be saved.
116
+ # @param word [String] the word to translate
117
+ # @param args [Hash] the customization arguments
118
+ # @param filename [String] the name of the file where to save JSON
119
+ # @return [Object]
117
120
  def json_translate(word = nil, args = {}, filename = nil)
118
121
  translation = translate(word, args)
119
122
 
120
- a_hash = Hash.new
121
- a_hash[word.to_sym] = raw_uri(word, args)
122
-
123
- the_splitter = Splitter.new translation
124
-
125
- a_hash[:title] = the_splitter.title
126
- a_hash[:translation] = the_splitter.translation
127
- a_hash[:message] = the_splitter.message
128
-
129
- unless a_hash[:translation].nil?
130
- a_hash[:lines] = the_splitter.lines
131
- a_hash[:content] = the_splitter.content
132
- end
123
+ a_hash = build_hash(args, translation, word)
133
124
 
134
125
  result = a_hash.to_json
135
126
 
136
- File.open(filename, 'w+') {|f| f << JSON.pretty_generate(a_hash)} unless filename.nil?
127
+ File.open(filename, 'w+') { |f| f << JSON.pretty_generate(a_hash) } unless filename.nil?
137
128
 
138
129
  result
139
130
  end
@@ -180,7 +171,7 @@ module WWWJDic
180
171
  # Restores the original status cleaning up the (possibly) previously
181
172
  # saved URIs restoring the default +to_s+.
182
173
  def reset
183
- @defaults = Hash.new
174
+ @defaults = {}
184
175
  @defaults[:dict] = '1'
185
176
  @defaults[:display] = :regular
186
177
 
@@ -201,7 +192,9 @@ module WWWJDic
201
192
  # romaji conversion if the key is not in Japanese coding (UTF-8,
202
193
  # EUC or Shift_JIS.) If you want to look up using "sensei" it has
203
194
  # to be a J. For anything else the value of J doesn't matter much.
195
+ # rubocop:disable Style/AsciiComments
204
196
  # 1MUJ齧歯 and 1MUE齧歯 will both find 齧歯. 1MUJgesshi does too,
197
+ # rubocop:enable Style/AsciiComments
205
198
  # but 1MUEgesshi won't.
206
199
  #
207
200
  # I think you have missed a key point I made in my previous email:
@@ -229,5 +222,44 @@ module WWWJDic
229
222
  def to_s
230
223
  @wwwjdic.to_s
231
224
  end
225
+
226
+ private
227
+
228
+ def build_hash(args, translation, word)
229
+ the_splitter = Splitter.new translation
230
+
231
+ a_hash = { word.to_sym => raw_uri(word, args),
232
+ title: the_splitter.title,
233
+ translation: the_splitter.translation,
234
+ message: the_splitter.message }
235
+
236
+ unless a_hash[:translation].nil?
237
+ a_hash[:lines] = the_splitter.lines
238
+ a_hash[:content] = the_splitter.content
239
+ end
240
+ a_hash
241
+ end
242
+
243
+ def build_uri(params, word)
244
+ a_wwwjdic = URIS[params[:server]] +
245
+ params[:dict] +
246
+ DISPLAY[params[:display]] +
247
+ params[:search] +
248
+ KEYS[params[:key]]
249
+ a_wwwjdic + CGI.escape(word).to_s
250
+ end
251
+
252
+ def parse_params(args, word)
253
+ params = {}
254
+ params[:search] = word
255
+ @defaults[:search] = word
256
+
257
+ unless args.nil?
258
+ ALL_PARAMS.each do |param_name|
259
+ params[param_name] = @parser.parse(param_name.to_s, args.fetch(param_name, @defaults[param_name]))
260
+ end
261
+ end
262
+ params
263
+ end
232
264
  end
233
265
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #--
2
4
  # wwwjdic
3
- # Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
5
+ # © 2014-2021 Marco Bresciani
4
6
  #
5
7
  # This file is part of wwwjdic.
6
8
  #
@@ -16,32 +18,66 @@
16
18
  #
17
19
  # You should have received a copy of the GNU General Public License
18
20
  # along with wwwjdic. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+ # SPDX-FileCopyrightText: 2014-2021 Marco Bresciani
23
+ #
24
+ # SPDX-License-Identifier: GPL-3.0-or-later
19
25
  #++
20
26
 
21
27
  module WWWJDic
28
+ # Author:: {Marco Bresciani}[mailto:marcobresciani_1974@libero.it]
29
+ # Copyright:: © 2014-2021 Marco Bresciani
30
+ # License:: GNU General Public License version 3
31
+
22
32
  # Allowed parameters for configuration
23
- ALLOWED_PARAMS = [:dict, :display, :key, :server].freeze
33
+ ALLOWED_PARAMS = %i[dict display key server].freeze
24
34
 
25
35
  # All parameters for configuration
26
36
  ALL_PARAMS = ALLOWED_PARAMS + [:search]
27
37
 
28
38
  # Numeric codes for language-specific dictionaries
29
- AVAIL_LANGS = {en: '1', de: 'G', fr: 'H', ru: 'I', sv: 'J', hu: 'K', es: 'L', nl: 'M', sl: 'N', it: 'O'}.freeze
39
+ AVAIL_LANGS = { en: '1', de: 'G', fr: 'H', ru: 'I', sv: 'J', hu: 'K', es: 'L', nl: 'M', sl: 'N', it: 'O' }.freeze
30
40
 
31
41
  # Numeric codes for dictionaries usage
32
42
  DICTIONARY_CODES = [('1'..'9').to_a, ('A'..'R').to_a].flatten
33
43
 
34
44
  # Naming for all supported dictionaries
35
- DICTIONARY_NAMES = ['Jpn-Eng General (EDICT)', 'Japanese Names (ENAMDICT)', 'Computing/Telecomms', 'Life Sciences/Bio-Med', 'Legal Terms', 'Finance/Marketing', 'Buddhism', 'Miscellaneous', 'Special Text-glossing', 'Engineering/Science', 'Linguistics', 'River & Water Systems', 'Automobile Industry', 'Japanese Wordnet', 'Work-in-progress File', 'Japanese-German (WaDoku)', 'Japanese-French', 'Japanese-Russian', 'Japanese-Swedish', 'Japanese-Hungarian', 'Japanese-Spanish', 'Japanese-Dutch', 'Japanese-Slovenian', 'Japanese-Italian', 'Untranslated', 'Combined Jpn-Eng', 'Expanded Text-glossing'].freeze
45
+ DICTIONARY_NAMES = ['Jpn-Eng General (EDICT)',
46
+ 'Japanese Names (ENAMDICT)',
47
+ 'Computing/Telecomms',
48
+ 'Life Sciences/Bio-Med',
49
+ 'Legal Terms',
50
+ 'Finance/Marketing',
51
+ 'Buddhism',
52
+ 'Miscellaneous',
53
+ 'Special Text-glossing',
54
+ 'Engineering/Science',
55
+ 'Linguistics',
56
+ 'River & Water Systems',
57
+ 'Automobile Industry',
58
+ 'Japanese Wordnet',
59
+ 'Work-in-progress File',
60
+ 'Japanese-German (WaDoku)',
61
+ 'Japanese-French',
62
+ 'Japanese-Russian',
63
+ 'Japanese-Swedish',
64
+ 'Japanese-Hungarian',
65
+ 'Japanese-Spanish',
66
+ 'Japanese-Dutch',
67
+ 'Japanese-Slovenian',
68
+ 'Japanese-Italian',
69
+ 'Untranslated',
70
+ 'Combined Jpn-Eng',
71
+ 'Expanded Text-glossing'].freeze
36
72
 
37
73
  # Mapping between dictionaries names with codes
38
- DICTS_BY_CODES = Hash[DICTIONARY_CODES.zip(DICTIONARY_NAMES)]
74
+ DICTS_BY_CODES = DICTIONARY_CODES.zip(DICTIONARY_NAMES).to_h
39
75
 
40
76
  # Mapping between dictionaries codes with names
41
- DICTS_BY_NAMES = Hash[DICTIONARY_NAMES.zip(DICTIONARY_CODES)]
77
+ DICTS_BY_NAMES = DICTIONARY_NAMES.zip(DICTIONARY_CODES).to_h
42
78
 
43
79
  # Display modes
44
- DISPLAY = {regular: 'M', raw: 'Z'}.freeze
80
+ DISPLAY = { regular: 'M', raw: 'Z' }.freeze
45
81
 
46
82
  # k is the key type:
47
83
  #
@@ -72,7 +108,10 @@ module WWWJDic
72
108
  # for EUC, ISO-2022-JP or UCS, S for Shift_JIS and U for UTF-8,
73
109
  # followed by the search string. Up to 99 example sentences may be
74
110
  # displayed.
75
- KEYS = {english: 'E', common: 'P', exact: 'Q', both: 'R', japanese: 'J', start_kanji: 'K', any_kanji: 'L', kanji: 'M', glossing: 'G', no_repeated: 'H', jis_kanji: 'H', multi_radical: 'X'}.freeze
111
+ KEYS = { english: 'E', common: 'P', exact: 'Q', both: 'R',
112
+ japanese: 'J', start_kanji: 'K', any_kanji: 'L', kanji: 'M',
113
+ glossing: 'G', no_repeated: 'H', jis_kanji: 'H',
114
+ multi_radical: 'X' }.freeze
76
115
 
77
116
  # KANJIDIC letter codes (see
78
117
  # http://www.edrdg.org/kanjidic/kanjidic.html)
@@ -100,14 +139,19 @@ module WWWJDic
100
139
  # [E] the index in Henshall (A Guide To Remembering Japanese
101
140
  # Characters);
102
141
  # [Y] the PinYin (Chinese) pronunciation(s) of the kanji;
103
- KANJIDIC_CODES = {unicode: 'U', nelson: 'N', radical: 'B', classical: 'C', stroke: 'S', grade: 'G', halpern: 'H', frequency: 'F', skip: 'P', gakken: 'K', heisig: 'L', spahn: 'I', corner: 'Q', morohashi_index: 'MN', morohashi_page: 'MP', henshall: 'E', pinyin: 'Y'}.freeze
142
+ KANJIDIC_CODES = { unicode: 'U', nelson: 'N', radical: 'B',
143
+ classical: 'C', stroke: 'S', grade: 'G',
144
+ halpern: 'H', frequency: 'F', skip: 'P',
145
+ gakken: 'K', heisig: 'L', spahn: 'I', corner: 'Q',
146
+ morohashi_index: 'MN', morohashi_page: 'MP',
147
+ henshall: 'E', pinyin: 'Y' }.freeze
104
148
 
105
149
  # Reference URI for Backdoor Entry/API
106
- URI_DEFAULT = 'http://www.edrdg.org/cgi-bin/wwwjdic/wwwjdic.cgi?'.freeze
150
+ URI_DEFAULT = 'http://www.edrdg.org/cgi-bin/wwwjdic/wwwjdic.cgi?'
107
151
 
108
152
  # Monash URI for Backdoor Entry/API
109
- URI_OLD = 'http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?'.freeze
153
+ URI_OLD = 'http://nihongo.monash.edu/cgi-bin/wwwjdic?'
110
154
 
111
155
  # URIs for Backdoor Entry/API
112
- URIS = {edrdg: URI_DEFAULT, monash: URI_OLD}.freeze
156
+ URIS = { edrdg: URI_DEFAULT, monash: URI_OLD }.freeze
113
157
  end
@@ -1,5 +1,8 @@
1
+ #--
1
2
  # wwwjdic
2
- # Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
3
+ # rubocop:disable Style/AsciiComments
4
+ # © 2014-2021 Marco Bresciani
5
+ # rubocop:enable Style/AsciiComments
3
6
  #
4
7
  # This file is part of wwwjdic.
5
8
  #
@@ -15,6 +18,11 @@
15
18
  #
16
19
  # You should have received a copy of the GNU General Public License
17
20
  # along with wwwjdic. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+ # SPDX-FileCopyrightText: 2014-2021 Marco Bresciani
23
+ #
24
+ # SPDX-License-Identifier: GPL-3.0-or-later
25
+ #++
18
26
 
19
27
  de:
20
28
  error:
@@ -24,6 +32,3 @@ de:
24
32
  value: "Der Wert %{value} ist nicht im zulässigen Bereich."
25
33
  warn:
26
34
  deprecated: Diese Methode ist veraltet.
27
- test:
28
- kotoba: Sprache
29
- test: test data
@@ -1,5 +1,8 @@
1
+ #--
1
2
  # wwwjdic
2
- # Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
3
+ # rubocop:disable Style/AsciiComments
4
+ # © 2014-2021 Marco Bresciani
5
+ # rubocop:enable Style/AsciiComments
3
6
  #
4
7
  # This file is part of wwwjdic.
5
8
  #
@@ -15,6 +18,11 @@
15
18
  #
16
19
  # You should have received a copy of the GNU General Public License
17
20
  # along with wwwjdic. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+ # SPDX-FileCopyrightText: 2014-2021 Marco Bresciani
23
+ #
24
+ # SPDX-License-Identifier: GPL-3.0-or-later
25
+ #++
18
26
 
19
27
  en:
20
28
  error:
@@ -24,6 +32,3 @@ en:
24
32
  value: "Value %{value} is not in allowed range."
25
33
  warn:
26
34
  deprecated: This method has been deprecated.
27
- test:
28
- kotoba: word
29
- test: test data
@@ -1,5 +1,8 @@
1
+ #--
1
2
  # wwwjdic
2
- # Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
3
+ # rubocop:disable Style/AsciiComments
4
+ # © 2014-2021 Marco Bresciani
5
+ # rubocop:enable Style/AsciiComments
3
6
  #
4
7
  # This file is part of wwwjdic.
5
8
  #
@@ -15,6 +18,11 @@
15
18
  #
16
19
  # You should have received a copy of the GNU General Public License
17
20
  # along with wwwjdic. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+ # SPDX-FileCopyrightText: 2014-2021 Marco Bresciani
23
+ #
24
+ # SPDX-License-Identifier: GPL-3.0-or-later
25
+ #++
18
26
 
19
27
  es:
20
28
  error:
@@ -24,6 +32,3 @@ es:
24
32
  value: "Valor %{value} no está dentro del rango permitido."
25
33
  warn:
26
34
  deprecated: Este método ha quedado obsoleto.
27
- test:
28
- kotoba: palabra
29
- test: test data
@@ -1,5 +1,8 @@
1
+ #--
1
2
  # wwwjdic
2
- # Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Marco Bresciani
3
+ # rubocop:disable Style/AsciiComments
4
+ # © 2014-2021 Marco Bresciani
5
+ # rubocop:enable Style/AsciiComments
3
6
  #
4
7
  # This file is part of wwwjdic.
5
8
  #
@@ -15,6 +18,11 @@
15
18
  #
16
19
  # You should have received a copy of the GNU General Public License
17
20
  # along with wwwjdic. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+ # SPDX-FileCopyrightText: 2014-2021 Marco Bresciani
23
+ #
24
+ # SPDX-License-Identifier: GPL-3.0-or-later
25
+ #++
18
26
 
19
27
  fr:
20
28
  error:
@@ -24,6 +32,3 @@ fr:
24
32
  value: "Valeur %{value} n'est pas dans la plage autorisée."
25
33
  warn:
26
34
  deprecated: Cette méthode a été déconseillée.
27
- test:
28
- kotoba: mot
29
- test: test data