gettext 3.0.2 → 3.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/doc/text/news.md +30 -0
- data/lib/gettext/class_info.rb +0 -6
- data/lib/gettext/locale_path.rb +0 -7
- data/lib/gettext/po_entry.rb +21 -7
- data/lib/gettext/text_domain_manager.rb +2 -2
- data/lib/gettext/tools/msgmerge.rb +123 -107
- data/lib/gettext/tools/task.rb +11 -0
- data/lib/gettext/tools/xgettext.rb +31 -24
- data/lib/gettext/version.rb +1 -1
- data/po/gettext.pot +50 -38
- data/test/test_locale_path.rb +0 -4
- data/test/test_po_entry.rb +101 -15
- data/test/tools/test_msgmerge.rb +133 -30
- data/test/tools/test_xgettext.rb +11 -2
- metadata +27 -50
data/lib/gettext/tools/task.rb
CHANGED
@@ -103,7 +103,18 @@ module GetText
|
|
103
103
|
#
|
104
104
|
# @return [String] Text domain
|
105
105
|
attr_accessor :domain
|
106
|
+
|
107
|
+
# It is useful when you have multiple domains. You can define tasks
|
108
|
+
# for each domains by using different namespace prefix.
|
109
|
+
#
|
110
|
+
# It is `nil` by default. It means that tasks are defined at top
|
111
|
+
# level.
|
112
|
+
#
|
113
|
+
# TODO: example
|
114
|
+
#
|
115
|
+
# @return [String] Namespace prefix for tasks defined by this class.
|
106
116
|
attr_accessor :namespace_prefix
|
117
|
+
|
107
118
|
# @return [Array<String>] Command line options for extracting messages
|
108
119
|
# from sources.
|
109
120
|
# @see GetText::Tools::XGetText
|
@@ -24,6 +24,7 @@ require "pathname"
|
|
24
24
|
require "optparse"
|
25
25
|
require "locale"
|
26
26
|
require "gettext"
|
27
|
+
require "gettext/po"
|
27
28
|
|
28
29
|
module GetText
|
29
30
|
module Tools
|
@@ -78,11 +79,12 @@ module GetText
|
|
78
79
|
@input_files = nil
|
79
80
|
@output = nil
|
80
81
|
|
81
|
-
@package_name =
|
82
|
-
@package_version =
|
83
|
-
@msgid_bugs_address =
|
84
|
-
@copyright_holder =
|
85
|
-
@
|
82
|
+
@package_name = "PACKAGE"
|
83
|
+
@package_version = "VERSION"
|
84
|
+
@msgid_bugs_address = ""
|
85
|
+
@copyright_holder = "THE PACKAGE'S COPYRIGHT HOLDER"
|
86
|
+
@copyright_year = "YEAR"
|
87
|
+
@output_encoding = "UTF-8"
|
86
88
|
|
87
89
|
@parse_options = {}
|
88
90
|
|
@@ -146,7 +148,6 @@ module GetText
|
|
146
148
|
def run(*options) # :nodoc:
|
147
149
|
check_command_line_options(*options)
|
148
150
|
|
149
|
-
@output_encoding ||= "UTF-8"
|
150
151
|
pot = generate_pot(@input_files)
|
151
152
|
|
152
153
|
if @output.is_a?(String)
|
@@ -181,9 +182,9 @@ module GetText
|
|
181
182
|
def header_comment
|
182
183
|
<<-COMMENT
|
183
184
|
SOME DESCRIPTIVE TITLE.
|
184
|
-
Copyright (C)
|
185
|
+
Copyright (C) #{@copyright_year} #{@copyright_holder}
|
185
186
|
This file is distributed under the same license as the #{@package_name} package.
|
186
|
-
FIRST AUTHOR <EMAIL@ADDRESS>,
|
187
|
+
FIRST AUTHOR <EMAIL@ADDRESS>, #{@copyright_year}.
|
187
188
|
|
188
189
|
COMMENT
|
189
190
|
end
|
@@ -232,11 +233,6 @@ Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;
|
|
232
233
|
|
233
234
|
@input_files = input_files
|
234
235
|
@output = output
|
235
|
-
|
236
|
-
@package_name ||= "PACKAGE"
|
237
|
-
@package_version ||= "VERSION"
|
238
|
-
@msgid_bugs_address ||= ""
|
239
|
-
@copyright_holder ||= "THE PACKAGE'S COPYRIGHT HOLDER"
|
240
236
|
end
|
241
237
|
|
242
238
|
def parse_arguments(*options) #:nodoc:
|
@@ -256,28 +252,39 @@ Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;
|
|
256
252
|
output = out
|
257
253
|
end
|
258
254
|
|
259
|
-
parser.on("--package-name=
|
260
|
-
_("set package name in output")
|
261
|
-
|
255
|
+
parser.on("--package-name=NAME",
|
256
|
+
_("set package name in output"),
|
257
|
+
"(#{@package_name})") do |name|
|
258
|
+
@package_name = name
|
262
259
|
end
|
263
260
|
|
264
261
|
parser.on("--package-version=VERSION",
|
265
|
-
_("set package version in output")
|
266
|
-
|
262
|
+
_("set package version in output"),
|
263
|
+
"(#{@package_version})") do |version|
|
264
|
+
@package_version = version
|
267
265
|
end
|
268
266
|
|
269
267
|
parser.on("--msgid-bugs-address=EMAIL",
|
270
|
-
_("set report address for msgid bugs")
|
271
|
-
|
268
|
+
_("set report e-mail address for msgid bugs"),
|
269
|
+
"(#{@msgid_bugs_address})") do |address|
|
270
|
+
@msgid_bugs_address = address
|
271
|
+
end
|
272
|
+
|
273
|
+
parser.on("--copyright-holder=HOLDER",
|
274
|
+
_("set copyright holder in output"),
|
275
|
+
"(#{@copyright_holder})") do |holder|
|
276
|
+
@copyright_holder = holder
|
272
277
|
end
|
273
278
|
|
274
|
-
parser.on("--copyright-
|
275
|
-
_("set copyright
|
276
|
-
|
279
|
+
parser.on("--copyright-year=YEAR",
|
280
|
+
_("set copyright year in output"),
|
281
|
+
"(#{@copyright_year})") do |year|
|
282
|
+
@copyright_year = year
|
277
283
|
end
|
278
284
|
|
279
285
|
parser.on("--output-encoding=ENCODING",
|
280
|
-
_("set encoding for output")
|
286
|
+
_("set encoding for output"),
|
287
|
+
"(#{@output_encoding})") do |encoding|
|
281
288
|
@output_encoding = encoding
|
282
289
|
end
|
283
290
|
|
data/lib/gettext/version.rb
CHANGED
data/po/gettext.pot
CHANGED
@@ -6,10 +6,10 @@
|
|
6
6
|
#, fuzzy
|
7
7
|
msgid ""
|
8
8
|
msgstr ""
|
9
|
-
"Project-Id-Version: gettext 3.0.
|
9
|
+
"Project-Id-Version: gettext 3.0.3\n"
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
11
|
-
"POT-Creation-Date: 2013-
|
12
|
-
"PO-Revision-Date: 2013-
|
11
|
+
"POT-Creation-Date: 2013-12-15 16:24+0900\n"
|
12
|
+
"PO-Revision-Date: 2013-12-15 16:24+0900\n"
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15
15
|
"Language: \n"
|
@@ -39,15 +39,15 @@ msgid "Generate binary message catalog from textual translation description."
|
|
39
39
|
msgstr ""
|
40
40
|
|
41
41
|
#: ../lib/gettext/tools/msgfmt.rb:86 ../lib/gettext/tools/msginit.rb:89
|
42
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
42
|
+
#: ../lib/gettext/tools/msgmerge.rb:319 ../lib/gettext/tools/xgettext.rb:248
|
43
43
|
msgid "Specific options:"
|
44
44
|
msgstr ""
|
45
45
|
|
46
|
-
#: ../lib/gettext/tools/msgfmt.rb:89 ../lib/gettext/tools/xgettext.rb:
|
46
|
+
#: ../lib/gettext/tools/msgfmt.rb:89 ../lib/gettext/tools/xgettext.rb:251
|
47
47
|
msgid "write output to specified file"
|
48
48
|
msgstr ""
|
49
49
|
|
50
|
-
#: ../lib/gettext/tools/msgfmt.rb:93 ../lib/gettext/tools/xgettext.rb:
|
50
|
+
#: ../lib/gettext/tools/msgfmt.rb:93 ../lib/gettext/tools/xgettext.rb:349
|
51
51
|
msgid "display version information and exit"
|
52
52
|
msgstr ""
|
53
53
|
|
@@ -75,7 +75,7 @@ msgid ""
|
|
75
75
|
" locale on your environment."
|
76
76
|
msgstr ""
|
77
77
|
|
78
|
-
#: ../lib/gettext/tools/msginit.rb:112 ../lib/gettext/tools/msgmerge.rb:
|
78
|
+
#: ../lib/gettext/tools/msginit.rb:112 ../lib/gettext/tools/msgmerge.rb:374
|
79
79
|
msgid "Display this help and exit"
|
80
80
|
msgstr ""
|
81
81
|
|
@@ -109,11 +109,11 @@ msgstr ""
|
|
109
109
|
msgid "Please enter your email address"
|
110
110
|
msgstr ""
|
111
111
|
|
112
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
112
|
+
#: ../lib/gettext/tools/msgmerge.rb:308
|
113
113
|
msgid "Usage: %s [OPTIONS] definition.po reference.pot"
|
114
114
|
msgstr ""
|
115
115
|
|
116
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
116
|
+
#: ../lib/gettext/tools/msgmerge.rb:311
|
117
117
|
msgid ""
|
118
118
|
"Merges two Uniforum style .po files together. The definition.po file is an exi"
|
119
119
|
"sting PO file with translations. The reference.pot file is the last created PO"
|
@@ -121,41 +121,49 @@ msgid ""
|
|
121
121
|
"d by rxgettext."
|
122
122
|
msgstr ""
|
123
123
|
|
124
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
124
|
+
#: ../lib/gettext/tools/msgmerge.rb:322
|
125
125
|
msgid "Update definition.po"
|
126
126
|
msgstr ""
|
127
127
|
|
128
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
128
|
+
#: ../lib/gettext/tools/msgmerge.rb:327
|
129
129
|
msgid "Write output to specified file"
|
130
130
|
msgstr ""
|
131
131
|
|
132
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
132
|
+
#: ../lib/gettext/tools/msgmerge.rb:332 ../lib/gettext/tools/xgettext.rb:292
|
133
133
|
msgid "Generate sorted output"
|
134
134
|
msgstr ""
|
135
135
|
|
136
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
136
|
+
#: ../lib/gettext/tools/msgmerge.rb:337 ../lib/gettext/tools/xgettext.rb:297
|
137
137
|
msgid "Sort output by file location"
|
138
138
|
msgstr ""
|
139
139
|
|
140
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
140
|
+
#: ../lib/gettext/tools/msgmerge.rb:342 ../lib/gettext/tools/xgettext.rb:302
|
141
141
|
msgid "Sort output by msgid"
|
142
142
|
msgstr ""
|
143
143
|
|
144
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
144
|
+
#: ../lib/gettext/tools/msgmerge.rb:347 ../lib/gettext/tools/xgettext.rb:307
|
145
145
|
msgid "Preserve '#: FILENAME:LINE' lines"
|
146
146
|
msgstr ""
|
147
147
|
|
148
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
148
|
+
#: ../lib/gettext/tools/msgmerge.rb:352 ../lib/gettext/tools/xgettext.rb:312
|
149
149
|
msgid "Set output page width"
|
150
150
|
msgstr ""
|
151
151
|
|
152
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
152
|
+
#: ../lib/gettext/tools/msgmerge.rb:358 ../lib/gettext/tools/xgettext.rb:318
|
153
153
|
msgid ""
|
154
154
|
"Break long message lines, longer than the output page width, into several line"
|
155
155
|
"s"
|
156
156
|
msgstr ""
|
157
157
|
|
158
|
-
#: ../lib/gettext/tools/msgmerge.rb:
|
158
|
+
#: ../lib/gettext/tools/msgmerge.rb:369
|
159
|
+
msgid "Disable fuzzy matching"
|
160
|
+
msgstr ""
|
161
|
+
|
162
|
+
#: ../lib/gettext/tools/msgmerge.rb:370
|
163
|
+
msgid "(enable)"
|
164
|
+
msgstr ""
|
165
|
+
|
166
|
+
#: ../lib/gettext/tools/msgmerge.rb:380
|
159
167
|
msgid "Display version information and exit"
|
160
168
|
msgstr ""
|
161
169
|
|
@@ -163,79 +171,83 @@ msgstr ""
|
|
163
171
|
msgid "`%{file}' is not glade-2.0 format."
|
164
172
|
msgstr ""
|
165
173
|
|
166
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
174
|
+
#: ../lib/gettext/tools/xgettext.rb:65
|
167
175
|
msgid "'%{klass}' is ignored."
|
168
176
|
msgstr ""
|
169
177
|
|
170
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
178
|
+
#: ../lib/gettext/tools/xgettext.rb:170
|
171
179
|
msgid "Error parsing %{path}"
|
172
180
|
msgstr ""
|
173
181
|
|
174
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
182
|
+
#: ../lib/gettext/tools/xgettext.rb:229
|
175
183
|
msgid "no input files"
|
176
184
|
msgstr ""
|
177
185
|
|
178
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
186
|
+
#: ../lib/gettext/tools/xgettext.rb:242
|
179
187
|
msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
|
180
188
|
msgstr ""
|
181
189
|
|
182
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
190
|
+
#: ../lib/gettext/tools/xgettext.rb:245
|
183
191
|
msgid "Extract translatable strings from given input files."
|
184
192
|
msgstr ""
|
185
193
|
|
186
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
194
|
+
#: ../lib/gettext/tools/xgettext.rb:256
|
187
195
|
msgid "set package name in output"
|
188
196
|
msgstr ""
|
189
197
|
|
190
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
198
|
+
#: ../lib/gettext/tools/xgettext.rb:262
|
191
199
|
msgid "set package version in output"
|
192
200
|
msgstr ""
|
193
201
|
|
194
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
195
|
-
msgid "set report address for msgid bugs"
|
202
|
+
#: ../lib/gettext/tools/xgettext.rb:268
|
203
|
+
msgid "set report e-mail address for msgid bugs"
|
196
204
|
msgstr ""
|
197
205
|
|
198
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
206
|
+
#: ../lib/gettext/tools/xgettext.rb:274
|
199
207
|
msgid "set copyright holder in output"
|
200
208
|
msgstr ""
|
201
209
|
|
202
210
|
#: ../lib/gettext/tools/xgettext.rb:280
|
211
|
+
msgid "set copyright year in output"
|
212
|
+
msgstr ""
|
213
|
+
|
214
|
+
#: ../lib/gettext/tools/xgettext.rb:286
|
203
215
|
msgid "set encoding for output"
|
204
216
|
msgstr ""
|
205
217
|
|
206
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
218
|
+
#: ../lib/gettext/tools/xgettext.rb:329
|
207
219
|
msgid "require the library before executing xgettext"
|
208
220
|
msgstr ""
|
209
221
|
|
210
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
222
|
+
#: ../lib/gettext/tools/xgettext.rb:334
|
211
223
|
msgid ""
|
212
224
|
"If TAG is specified, place comment blocks starting with TAG and precedding key"
|
213
225
|
"word lines in output file"
|
214
226
|
msgstr ""
|
215
227
|
|
216
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
228
|
+
#: ../lib/gettext/tools/xgettext.rb:335
|
217
229
|
msgid ""
|
218
230
|
"If TAG is not specified, place all comment blocks preceing keyword lines in ou"
|
219
231
|
"tput file"
|
220
232
|
msgstr ""
|
221
233
|
|
222
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
223
|
-
msgid "
|
234
|
+
#: ../lib/gettext/tools/xgettext.rb:336
|
235
|
+
msgid "(default: %s)"
|
224
236
|
msgstr ""
|
225
237
|
|
226
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
227
|
-
msgid "
|
238
|
+
#: ../lib/gettext/tools/xgettext.rb:336
|
239
|
+
msgid "no TAG"
|
228
240
|
msgstr ""
|
229
241
|
|
230
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
242
|
+
#: ../lib/gettext/tools/xgettext.rb:340
|
231
243
|
msgid "run in debugging mode"
|
232
244
|
msgstr ""
|
233
245
|
|
234
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
246
|
+
#: ../lib/gettext/tools/xgettext.rb:344
|
235
247
|
msgid "display this help and exit"
|
236
248
|
msgstr ""
|
237
249
|
|
238
|
-
#: ../lib/gettext/tools/xgettext.rb:
|
250
|
+
#: ../lib/gettext/tools/xgettext.rb:375
|
239
251
|
msgid ""
|
240
252
|
"Warning: The empty \"\" msgid is reserved by gettext. So gettext(\"\") doesn't ret"
|
241
253
|
"urns empty string but the header entry in po file."
|
data/test/test_locale_path.rb
CHANGED
@@ -25,7 +25,6 @@ require 'fixtures/simple'
|
|
25
25
|
class TestLocalePath < Test::Unit::TestCase
|
26
26
|
def setup
|
27
27
|
GetText.locale = "ja_JP.eucJP"
|
28
|
-
GetText::LocalePath.clear
|
29
28
|
end
|
30
29
|
|
31
30
|
def teardown
|
@@ -78,12 +77,10 @@ class TestLocalePath < Test::Unit::TestCase
|
|
78
77
|
path1 = File.join(topdir, "locale")
|
79
78
|
path2 = File.join(topdir, "cgi", "locale")
|
80
79
|
|
81
|
-
GetText::LocalePath.memoize_clear
|
82
80
|
ENV["GETTEXT_PATH"] = path1
|
83
81
|
default_path_rules = GetText::LocalePath.default_path_rules
|
84
82
|
assert_match(Regexp.compile(path1), default_path_rules[0])
|
85
83
|
|
86
|
-
GetText::LocalePath.memoize_clear
|
87
84
|
ENV["GETTEXT_PATH"] = "#{path1},#{path2}"
|
88
85
|
default_path_rules = GetText::LocalePath.default_path_rules
|
89
86
|
assert_match(Regexp.compile(path1), default_path_rules[0])
|
@@ -92,7 +89,6 @@ class TestLocalePath < Test::Unit::TestCase
|
|
92
89
|
|
93
90
|
class TestDefaultPathRules < self
|
94
91
|
def test_load_path_untached
|
95
|
-
GetText::LocalePath.memoize_clear
|
96
92
|
$LOAD_PATH.unshift("./lib")
|
97
93
|
GetText::LocalePath.default_path_rules
|
98
94
|
assert_equal($LOAD_PATH[0], "./lib")
|
data/test/test_po_entry.rb
CHANGED
@@ -274,23 +274,42 @@ EOE
|
|
274
274
|
end
|
275
275
|
end
|
276
276
|
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
msgstr "Salut"
|
284
|
-
EOC
|
285
|
-
entry.comment = obsolete_comment
|
277
|
+
class TestObsoleteComment < self
|
278
|
+
def test_obsolete_comment
|
279
|
+
comment = <<-COMMENT.chomp
|
280
|
+
#~ msgid "he"
|
281
|
+
#~ msgstr "il"
|
282
|
+
COMMENT
|
286
283
|
|
287
|
-
|
288
|
-
|
289
|
-
#~
|
290
|
-
|
291
|
-
|
284
|
+
assert_equal(<<-COMMENT, obsolete_entry(comment))
|
285
|
+
#~ msgid "he"
|
286
|
+
#~ msgstr "il"
|
287
|
+
COMMENT
|
288
|
+
end
|
289
|
+
|
290
|
+
def test_new_line_only
|
291
|
+
assert_equal("\n", obsolete_entry("\n"))
|
292
|
+
end
|
292
293
|
|
293
|
-
|
294
|
+
def test_no_comment_mark
|
295
|
+
comment = <<-COMMENT.chomp
|
296
|
+
msgid "he"
|
297
|
+
msgstr "il"
|
298
|
+
COMMENT
|
299
|
+
|
300
|
+
assert_equal(<<-COMMENT, obsolete_entry(comment))
|
301
|
+
#~ msgid "he"
|
302
|
+
#~ msgstr "il"
|
303
|
+
COMMENT
|
304
|
+
end
|
305
|
+
|
306
|
+
private
|
307
|
+
def obsolete_entry(comment)
|
308
|
+
entry = GetText::POEntry.new(:normal)
|
309
|
+
entry.msgid = :last
|
310
|
+
entry.comment = comment
|
311
|
+
entry.to_s
|
312
|
+
end
|
294
313
|
end
|
295
314
|
|
296
315
|
def test_translator_comment
|
@@ -398,6 +417,64 @@ msgstr ""
|
|
398
417
|
end
|
399
418
|
end
|
400
419
|
|
420
|
+
class TestPredicate < self
|
421
|
+
class TestHeader < self
|
422
|
+
def test_empty_msgid
|
423
|
+
entry = GetText::POEntry.new(:normal)
|
424
|
+
entry.msgid = ""
|
425
|
+
assert_true(entry.header?)
|
426
|
+
end
|
427
|
+
|
428
|
+
def test_not_empty_msgid
|
429
|
+
entry = GetText::POEntry.new(:normal)
|
430
|
+
entry.msgid = "hello"
|
431
|
+
assert_false(entry.header?)
|
432
|
+
end
|
433
|
+
|
434
|
+
def test_msgctxt
|
435
|
+
entry = GetText::POEntry.new(:msgctxt)
|
436
|
+
entry.msgid = ""
|
437
|
+
entry.msgctxt = "context"
|
438
|
+
assert_false(entry.header?)
|
439
|
+
end
|
440
|
+
|
441
|
+
def test_plural
|
442
|
+
entry = GetText::POEntry.new(:plural)
|
443
|
+
entry.msgid = ""
|
444
|
+
entry.msgid_plural = ""
|
445
|
+
assert_false(entry.header?)
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
class TestObsolete < self
|
450
|
+
def test_last_msgid
|
451
|
+
entry = GetText::POEntry.new(:normal)
|
452
|
+
entry.msgid = :last
|
453
|
+
assert_true(entry.obsolete?)
|
454
|
+
end
|
455
|
+
|
456
|
+
def test_not_lasty_msgid
|
457
|
+
entry = GetText::POEntry.new(:normal)
|
458
|
+
entry.msgid = "hello"
|
459
|
+
assert_false(entry.obsolete?)
|
460
|
+
end
|
461
|
+
|
462
|
+
def test_msgctxt
|
463
|
+
entry = GetText::POEntry.new(:msgctxt)
|
464
|
+
entry.msgid = :last
|
465
|
+
entry.msgctxt = "context"
|
466
|
+
assert_false(entry.obsolete?)
|
467
|
+
end
|
468
|
+
|
469
|
+
def test_plural
|
470
|
+
entry = GetText::POEntry.new(:plural)
|
471
|
+
entry.msgid = :last
|
472
|
+
entry.msgid_plural = ""
|
473
|
+
assert_false(entry.obsolete?)
|
474
|
+
end
|
475
|
+
end
|
476
|
+
end
|
477
|
+
|
401
478
|
class TestFormatter < self
|
402
479
|
class TestEscape < self
|
403
480
|
def test_backslash
|
@@ -458,6 +535,15 @@ msgstr ""
|
|
458
535
|
MESSAGE
|
459
536
|
end
|
460
537
|
|
538
|
+
def test_multilines_disable_wrap
|
539
|
+
message = "long\nline\n"
|
540
|
+
assert_equal(<<-MESSAGE, format_message(message, :max_line_width => 0))
|
541
|
+
""
|
542
|
+
"long\\n"
|
543
|
+
"line\\n"
|
544
|
+
MESSAGE
|
545
|
+
end
|
546
|
+
|
461
547
|
private
|
462
548
|
def format_message(message, options={})
|
463
549
|
formatter = GetText::POEntry::Formatter.new(@entry, options)
|