gettext_activerecord 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/COPYING +55 -0
  2. data/ChangeLog +4 -0
  3. data/README.rdoc +172 -0
  4. data/Rakefile +110 -0
  5. data/data/locale/bg/LC_MESSAGES/gettext_activerecord.mo +0 -0
  6. data/data/locale/bs/LC_MESSAGES/gettext_activerecord.mo +0 -0
  7. data/data/locale/ca/LC_MESSAGES/gettext_activerecord.mo +0 -0
  8. data/data/locale/cs/LC_MESSAGES/gettext_activerecord.mo +0 -0
  9. data/data/locale/de/LC_MESSAGES/gettext_activerecord.mo +0 -0
  10. data/data/locale/el/LC_MESSAGES/gettext_activerecord.mo +0 -0
  11. data/data/locale/eo/LC_MESSAGES/gettext_activerecord.mo +0 -0
  12. data/data/locale/es/LC_MESSAGES/gettext_activerecord.mo +0 -0
  13. data/data/locale/et/LC_MESSAGES/gettext_activerecord.mo +0 -0
  14. data/data/locale/fr/LC_MESSAGES/gettext_activerecord.mo +0 -0
  15. data/data/locale/hr/LC_MESSAGES/gettext_activerecord.mo +0 -0
  16. data/data/locale/hu/LC_MESSAGES/gettext_activerecord.mo +0 -0
  17. data/data/locale/it/LC_MESSAGES/gettext_activerecord.mo +0 -0
  18. data/data/locale/ja/LC_MESSAGES/gettext_activerecord.mo +0 -0
  19. data/data/locale/ko/LC_MESSAGES/gettext_activerecord.mo +0 -0
  20. data/data/locale/lv/LC_MESSAGES/gettext_activerecord.mo +0 -0
  21. data/data/locale/nb/LC_MESSAGES/gettext_activerecord.mo +0 -0
  22. data/data/locale/nl/LC_MESSAGES/gettext_activerecord.mo +0 -0
  23. data/data/locale/pt_BR/LC_MESSAGES/gettext_activerecord.mo +0 -0
  24. data/data/locale/ru/LC_MESSAGES/gettext_activerecord.mo +0 -0
  25. data/data/locale/sr/LC_MESSAGES/gettext_activerecord.mo +0 -0
  26. data/data/locale/ua/LC_MESSAGES/gettext_activerecord.mo +0 -0
  27. data/data/locale/vi/LC_MESSAGES/gettext_activerecord.mo +0 -0
  28. data/data/locale/zh/LC_MESSAGES/gettext_activerecord.mo +0 -0
  29. data/data/locale/zh_TW/LC_MESSAGES/gettext_activerecord.mo +0 -0
  30. data/lib/gettext_activerecord/base.rb +66 -0
  31. data/lib/gettext_activerecord/i18n.rb +27 -0
  32. data/lib/gettext_activerecord/migration.rb +16 -0
  33. data/lib/gettext_activerecord/parser.rb +216 -0
  34. data/lib/gettext_activerecord/schema_definitions.rb +28 -0
  35. data/lib/gettext_activerecord/tools.rb +25 -0
  36. data/lib/gettext_activerecord/validations.rb +189 -0
  37. data/lib/gettext_activerecord/version.rb +12 -0
  38. data/lib/gettext_activerecord.rb +19 -0
  39. data/po/bg/gettext_activerecord.po +115 -0
  40. data/po/bs/gettext_activerecord.po +125 -0
  41. data/po/ca/gettext_activerecord.po +116 -0
  42. data/po/cs/gettext_activerecord.po +124 -0
  43. data/po/de/gettext_activerecord.po +117 -0
  44. data/po/el/gettext_activerecord.po +115 -0
  45. data/po/eo/gettext_activerecord.po +116 -0
  46. data/po/es/gettext_activerecord.po +116 -0
  47. data/po/et/gettext_activerecord.po +116 -0
  48. data/po/fr/gettext_activerecord.po +118 -0
  49. data/po/gettext_activerecord.pot +113 -0
  50. data/po/hr/gettext_activerecord.po +125 -0
  51. data/po/hu/gettext_activerecord.po +116 -0
  52. data/po/it/gettext_activerecord.po +122 -0
  53. data/po/ja/gettext_activerecord.po +116 -0
  54. data/po/ko/gettext_activerecord.po +123 -0
  55. data/po/lv/gettext_activerecord.po +116 -0
  56. data/po/nb/gettext_activerecord.po +117 -0
  57. data/po/nl/gettext_activerecord.po +123 -0
  58. data/po/pt_BR/gettext_activerecord.po +117 -0
  59. data/po/ru/gettext_activerecord.po +117 -0
  60. data/po/sr/gettext_activerecord.po +117 -0
  61. data/po/test.rb +8 -0
  62. data/po/ua/gettext_activerecord.po +120 -0
  63. data/po/vi/gettext_activerecord.po +116 -0
  64. data/po/zh/gettext_activerecord.po +119 -0
  65. data/po/zh_TW/gettext_activerecord.po +119 -0
  66. data/replace.rb +21 -0
  67. data/sample/README.rdoc +9 -0
  68. data/sample/Rakefile +32 -0
  69. data/sample/book.rb +3 -0
  70. data/sample/config/database.yml +3 -0
  71. data/sample/data/locale/ja/LC_MESSAGES/sample_ar.mo +0 -0
  72. data/sample/db/development.sqlite3 +0 -0
  73. data/sample/db/schema.rb +5 -0
  74. data/sample/locale/ja/LC_MESSAGES/sample_ar.mo +0 -0
  75. data/sample/po/ja/sample_ar.po +29 -0
  76. data/sample/po/sample_ar.pot +29 -0
  77. data/sample/sample.rb +22 -0
  78. data/test/Rakefile +43 -0
  79. data/test/db/migrate.rb +41 -0
  80. data/test/db/sqlite.rb +8 -0
  81. data/test/helper.rb +38 -0
  82. data/test/locale/ja/LC_MESSAGES/active_record.mo +0 -0
  83. data/test/models/book.rb +3 -0
  84. data/test/models/developer.rb +5 -0
  85. data/test/models/inept_wizard.rb +3 -0
  86. data/test/models/reply.rb +40 -0
  87. data/test/models/topic.rb +68 -0
  88. data/test/models/user.rb +3 -0
  89. data/test/models/wizard.rb +5 -0
  90. data/test/po/active_record.pot +388 -0
  91. data/test/po/ja/active_record.po +387 -0
  92. data/test/test_parser.rb +95 -0
  93. data/test/test_validations.rb +2575 -0
  94. data/test/vendor/repair_helper.rb +50 -0
  95. data/test.rb +2 -0
  96. metadata +268 -0
@@ -0,0 +1,387 @@
1
+ # Japanese translations for PACKAGE package
2
+ # Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # Masao Mutoh <mutomasa at gmail.com>, 2006.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: active_record 1.0.0\n"
9
+ "POT-Creation-Date: 2009-02-16 02:51+0900\n"
10
+ "PO-Revision-Date: 2006-08-09 02:17+0900\n"
11
+ "Last-Translator: Masao Mutoh <mutomasa at gmail.com>\n"
12
+ "Language-Team: Japanese\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Plural-Forms: nplurals=1; plural=0;\n"
17
+
18
+ #: fixtures/developer.rb:-
19
+ msgid "developer"
20
+ msgstr "開発者"
21
+
22
+ #: fixtures/developer.rb:-
23
+ msgid "Developer|Name"
24
+ msgstr "開発者名"
25
+
26
+ #: fixtures/developer.rb:-
27
+ msgid "Developer|Salary"
28
+ msgstr "給料"
29
+
30
+ #: fixtures/developer.rb:-
31
+ msgid "Developer|Created at"
32
+ msgstr "生成日"
33
+
34
+ #: fixtures/developer.rb:-
35
+ msgid "Developer|Updated at"
36
+ msgstr "更新日"
37
+
38
+ #: fixtures/developer.rb:2
39
+ msgid "Developer|Non existent"
40
+ msgstr "存在しない"
41
+
42
+ #: fixtures/topic.rb:- fixtures/reply.rb:-
43
+ msgid "topic"
44
+ msgstr "トピック"
45
+
46
+ #: fixtures/topic.rb:-
47
+ msgid "Topic|Title"
48
+ msgstr "タイトル"
49
+
50
+ #: fixtures/topic.rb:-
51
+ msgid "Topic|Author name"
52
+ msgstr "著者名"
53
+
54
+ #: fixtures/topic.rb:-
55
+ msgid "Topic|Author email address"
56
+ msgstr "著者Eメールアドレス"
57
+
58
+ #: fixtures/topic.rb:-
59
+ msgid "Topic|Written on"
60
+ msgstr "リテンオン"
61
+
62
+ #: fixtures/topic.rb:-
63
+ msgid "Topic|Bonus time"
64
+ msgstr "ボーナスタイム"
65
+
66
+ #: fixtures/topic.rb:-
67
+ msgid "Topic|Last read"
68
+ msgstr "最後の読み込み"
69
+
70
+ #: fixtures/topic.rb:-
71
+ msgid "Topic|Content"
72
+ msgstr "内容"
73
+
74
+ #: fixtures/topic.rb:-
75
+ msgid "Topic|Approved"
76
+ msgstr "承認"
77
+
78
+ #: fixtures/topic.rb:-
79
+ msgid "Topic|Replies count"
80
+ msgstr "リプライ数"
81
+
82
+ #: fixtures/topic.rb:-
83
+ msgid "Topic|Parent"
84
+ msgstr "親"
85
+
86
+ #: fixtures/topic.rb:-
87
+ msgid "Topic|Type"
88
+ msgstr "種別"
89
+
90
+ #: fixtures/topic.rb:35
91
+ msgid "Topic|Terms of service"
92
+ msgstr "利用規約"
93
+
94
+ #: fixtures/topic.rb:36 test_validations.rb:523
95
+ msgid "must be abided"
96
+ msgstr "に従ってください。"
97
+
98
+ #: fixtures/reply.rb:-
99
+ msgid "reply"
100
+ msgstr "リプライ"
101
+
102
+ #: fixtures/reply.rb:-
103
+ msgid "Reply|Title"
104
+ msgstr "Replyタイトル"
105
+
106
+ #: fixtures/reply.rb:-
107
+ msgid "Reply|Author name"
108
+ msgstr "Reply著者名"
109
+
110
+ #: fixtures/reply.rb:-
111
+ msgid "Reply|Author email address"
112
+ msgstr "Reply著者Eメールアドレス"
113
+
114
+ #: fixtures/reply.rb:-
115
+ msgid "Reply|Written on"
116
+ msgstr ""
117
+
118
+ #: fixtures/reply.rb:-
119
+ msgid "Reply|Bonus time"
120
+ msgstr "Replyボーナスタイム"
121
+
122
+ #: fixtures/reply.rb:-
123
+ msgid "Reply|Last read"
124
+ msgstr ""
125
+
126
+ #: fixtures/reply.rb:-
127
+ msgid "Reply|Content"
128
+ msgstr "Reply内容"
129
+
130
+ #: fixtures/reply.rb:-
131
+ msgid "Reply|Approved"
132
+ msgstr "Reply承認"
133
+
134
+ #: fixtures/reply.rb:-
135
+ msgid "Reply|Replies count"
136
+ msgstr "Replyリプライ数"
137
+
138
+ #: fixtures/reply.rb:-
139
+ msgid "Reply|Parent"
140
+ msgstr "Reply親"
141
+
142
+ #: fixtures/reply.rb:-
143
+ msgid "Reply|Type"
144
+ msgstr "Reply種別"
145
+
146
+ #: fixtures/reply.rb:-
147
+ msgid "sillyreply"
148
+ msgstr "バカな承認"
149
+
150
+ #: fixtures/reply.rb:-
151
+ msgid "SillyReply|Title"
152
+ msgstr "Sillyタイトル"
153
+
154
+ #: fixtures/reply.rb:-
155
+ msgid "SillyReply|Author name"
156
+ msgstr "Silly著者名"
157
+
158
+ #: fixtures/reply.rb:-
159
+ msgid "SillyReply|Author email address"
160
+ msgstr "Silly著者Eメールアドレス"
161
+
162
+ #: fixtures/reply.rb:-
163
+ msgid "SillyReply|Written on"
164
+ msgstr ""
165
+
166
+ #: fixtures/reply.rb:-
167
+ msgid "SillyReply|Bonus time"
168
+ msgstr "Sillyボーナスタイム"
169
+
170
+ #: fixtures/reply.rb:-
171
+ msgid "SillyReply|Last read"
172
+ msgstr ""
173
+
174
+ #: fixtures/reply.rb:-
175
+ msgid "SillyReply|Content"
176
+ msgstr "Silly内容"
177
+
178
+ #: fixtures/reply.rb:-
179
+ msgid "SillyReply|Approved"
180
+ msgstr "Silly承認"
181
+
182
+ #: fixtures/reply.rb:-
183
+ msgid "SillyReply|Replies count"
184
+ msgstr "Sillyリプライ数"
185
+
186
+ #: fixtures/reply.rb:-
187
+ msgid "SillyReply|Parent"
188
+ msgstr ""
189
+
190
+ #: fixtures/reply.rb:-
191
+ msgid "SillyReply|Type"
192
+ msgstr "承認"
193
+
194
+ #: fixtures/reply.rb:4
195
+ msgid "Reply|Topic"
196
+ msgstr "Replyトピック"
197
+
198
+ #: fixtures/reply.rb:16 fixtures/reply.rb:20
199
+ msgid "Empty"
200
+ msgstr "空です。"
201
+
202
+ #: fixtures/reply.rb:25
203
+ msgid "is Content Mismatch"
204
+ msgstr "は内容がミスマッチです。"
205
+
206
+ #: fixtures/reply.rb:30
207
+ msgid "is Wrong Create"
208
+ msgstr "が不正に生成されました。"
209
+
210
+ #: fixtures/reply.rb:34
211
+ msgid "is Wrong Update"
212
+ msgstr "が不正に更新されました。"
213
+
214
+ #: test_validations.rb:-
215
+ msgid "course"
216
+ msgstr "手品師"
217
+
218
+ #: test_validations.rb:-
219
+ msgid "inept wizard"
220
+ msgstr "不器用な魔術師"
221
+
222
+ #: test_validations.rb:-
223
+ msgid "IneptWizard|Name"
224
+ msgstr "不器用な魔術師名"
225
+
226
+ #: test_validations.rb:-
227
+ msgid "IneptWizard|City"
228
+ msgstr "不器用な魔術師名"
229
+
230
+ #: test_validations.rb:-
231
+ msgid "IneptWizard|Type"
232
+ msgstr "不器用な魔術師タイプ"
233
+
234
+ #: test_validations.rb:-
235
+ msgid "person"
236
+ msgstr "人"
237
+
238
+ #: test_validations.rb:-
239
+ msgid "protectedperson"
240
+ msgstr "守られた人"
241
+
242
+ #: test_validations.rb:-
243
+ msgid "ProtectedPerson|First name"
244
+ msgstr "名前"
245
+
246
+ #: test_validations.rb:-
247
+ msgid "ProtectedPerson|Lock version"
248
+ msgstr "ロックバージョン"
249
+
250
+ #: test_validations.rb:-
251
+ msgid "conjurer"
252
+ msgstr "手品師"
253
+
254
+ #: test_validations.rb:-
255
+ msgid "Conjurer|Name"
256
+ msgstr "手品師名"
257
+
258
+ #: test_validations.rb:-
259
+ msgid "Conjurer|City"
260
+ msgstr "手品師町"
261
+
262
+ #: test_validations.rb:-
263
+ msgid "Conjurer|Type"
264
+ msgstr "手品師タイプ"
265
+
266
+ #: test_validations.rb:-
267
+ msgid "thaumaturgist"
268
+ msgstr "奇術師"
269
+
270
+ #: test_validations.rb:-
271
+ msgid "Thaumaturgist|Name"
272
+ msgstr "奇術師名"
273
+
274
+ #: test_validations.rb:-
275
+ msgid "Thaumaturgist|City"
276
+ msgstr "奇術師町"
277
+
278
+ #: test_validations.rb:-
279
+ msgid "Thaumaturgist|Type"
280
+ msgstr "奇術師タイプ"
281
+
282
+ #: test_validations.rb:409
283
+ msgid "gotcha"
284
+ msgstr "ごっちゃ"
285
+
286
+ #: test_validations.rb:501
287
+ msgid "%{fn} must be abided"
288
+ msgstr "%{fn}に従ってください。"
289
+
290
+ #: test_validations.rb:719 test_validations.rb:773
291
+ msgid "%{fn} is bad data"
292
+ msgstr "%{fn}は悪いデータです。"
293
+
294
+ #: test_validations.rb:740 test_validations.rb:825
295
+ msgid "is bad data"
296
+ msgstr "は悪いデータです。"
297
+
298
+ #: test_validations.rb:877
299
+ msgid "%{fn} can not be %{val}"
300
+ msgstr "%{val}は%{fn}ではありません。"
301
+
302
+ #: test_validations.rb:891
303
+ msgid "can not be %{val}"
304
+ msgstr "は%{val}ではありません。"
305
+
306
+ #: test_validations.rb:939
307
+ msgid "%{fn} option %{val} is not in the list"
308
+ msgstr "オプション%{val}は%{fn}一覧にありません。"
309
+
310
+ #: test_validations.rb:961
311
+ msgid "option %{val} is not in the list"
312
+ msgstr "オプション%{val}は一覧にありません。"
313
+
314
+ #: test_validations.rb:991
315
+ msgid "%{fn} option %{val} is restricted"
316
+ msgstr "オプション%{fn}%{val}は制限されています。"
317
+
318
+ #: test_validations.rb:1013
319
+ msgid "option %{val} is restricted"
320
+ msgstr "オプション%{val}は制限されています。"
321
+
322
+ #: test_validations.rb:1129 test_validations.rb:1165
323
+ msgid "my string(%{fn}) is too short: %d"
324
+ msgstr "文字列:%{fn}は短すぎ: %d"
325
+
326
+ #: test_validations.rb:1129 test_validations.rb:1165
327
+ msgid "my string(%{fn}) is too long: %d"
328
+ msgstr "文字列:%{fn}は長すぎ: %d"
329
+
330
+ #: test_validations.rb:1147 test_validations.rb:1191
331
+ msgid "my string is too short: %d"
332
+ msgstr "文字列は短すぎ: %d"
333
+
334
+ #: test_validations.rb:1147 test_validations.rb:1191
335
+ msgid "my string is too long: %d"
336
+ msgstr "文字列は長すぎ: %d"
337
+
338
+ #: test_validations.rb:1250
339
+ msgid "%{fn} %d dayo"
340
+ msgstr "%{fn}は%d以上だよ。"
341
+
342
+ #: test_validations.rb:1267
343
+ msgid "%d dayo"
344
+ msgstr "は%d以上だよ。"
345
+
346
+ #: test_validations.rb:1293 test_validations.rb:1327 test_validations.rb:1363
347
+ #: test_validations.rb:1398 test_validations.rb:1434 test_validations.rb:2009
348
+ #: test_validations.rb:2048 test_validations.rb:2111 test_validations.rb:2151
349
+ #: test_validations.rb:2177 test_validations.rb:2235 test_validations.rb:2274
350
+ msgid "%{fn} hoo %d"
351
+ msgstr "%{fn}ふー%d"
352
+
353
+ #: test_validations.rb:1310 test_validations.rb:1345 test_validations.rb:1381
354
+ #: test_validations.rb:1416 test_validations.rb:1451 test_validations.rb:1468
355
+ #: test_validations.rb:1485 test_validations.rb:2029 test_validations.rb:2067
356
+ #: test_validations.rb:2092 test_validations.rb:2131 test_validations.rb:2197
357
+ #: test_validations.rb:2217 test_validations.rb:2254 test_validations.rb:2294
358
+ msgid "hoo %d"
359
+ msgstr "ふー%d"
360
+
361
+ #: test_validations.rb:1525
362
+ msgid "%{fn} will never be valid"
363
+ msgstr "%{fn}は決して正しくならないでしょう。"
364
+
365
+ #: test_validations.rb:1542
366
+ msgid "will never be valid"
367
+ msgstr "は決して正しくならないでしょう。"
368
+
369
+ #: test_validations.rb:1566 test_validations.rb:1612 test_validations.rb:1695
370
+ #: test_validations.rb:1741 test_validations.rb:1780 test_validations.rb:1818
371
+ #: test_validations.rb:1863 test_validations.rb:1899 test_validations.rb:1946
372
+ msgid "%{fn} contains 'single' and \"double\" quotes"
373
+ msgstr "%{fn}は'シングル' \"ダブル\"クオートを含む。"
374
+
375
+ #: test_validations.rb:1589 test_validations.rb:1637 test_validations.rb:1718
376
+ #: test_validations.rb:1764 test_validations.rb:1802 test_validations.rb:1840
377
+ #: test_validations.rb:1886 test_validations.rb:1923 test_validations.rb:1977
378
+ msgid "This string contains 'single' and \"double\" quotes"
379
+ msgstr "この文字列は'シングル' \"ダブル\"クオートを含む。"
380
+
381
+ #: test_validations.rb:2548
382
+ msgid "smaller than %{count}"
383
+ msgstr ""
384
+
385
+ #: test_validations.rb:2555
386
+ msgid "greater than %{count}"
387
+ msgstr ""
@@ -0,0 +1,95 @@
1
+ require 'helper'
2
+
3
+ require 'gettext_activerecord/tools'
4
+
5
+ # setup the parser
6
+ # Don't need this because DB connection is established in helper.rb.
7
+ #GetText::ActiveRecordParser.init(
8
+ # :adapter => 'sqlite3',
9
+ # :database => ':memory:'
10
+ #)
11
+
12
+ class TestGetTextParser < Test::Unit::TestCase
13
+ def test_class
14
+ GetText::ActiveRecordParser.target?("models/topic.rb")
15
+ ary = GetText::ActiveRecordParser.parse("models/topic.rb")
16
+ assert_equal(14, ary.size)
17
+ assert_equal(["topic", "models/topic.rb:-"], ary[0])
18
+ assert_equal(["Topic|Title", "models/topic.rb:-"], ary[1])
19
+ assert_equal(["Topic|Author name", "models/topic.rb:-"], ary[2])
20
+ assert_equal(["Topic|Author email address", "models/topic.rb:-"], ary[3])
21
+ assert_equal(["Topic|Written on", "models/topic.rb:-"], ary[4])
22
+ assert_equal(["Topic|Bonus time", "models/topic.rb:-"], ary[5])
23
+ assert_equal(["Topic|Last read", "models/topic.rb:-"], ary[6])
24
+ assert_equal(["Topic|Content", "models/topic.rb:-"], ary[7])
25
+ assert_equal(["Topic|Approved", "models/topic.rb:-"], ary[8])
26
+ assert_equal(["Topic|Replies count", "models/topic.rb:-"], ary[9])
27
+ assert_equal(["Topic|Parent", "models/topic.rb:-"], ary[10])
28
+ assert_equal(["Topic|Type", "models/topic.rb:-"], ary[11])
29
+ assert_equal(["Topic|Terms of service", "models/topic.rb:35"], ary[12])
30
+ assert_equal(["must be abided", "models/topic.rb:36"], ary[13])
31
+ end
32
+
33
+ def test_subclass
34
+ GetText::ActiveRecordParser.target?("models/reply.rb")
35
+ ary = GetText::ActiveRecordParser.parse("models/reply.rb")
36
+ ary.sort!{|a, b| a[0].downcase <=> b[0].downcase}
37
+
38
+ assert_equal(30, ary.size)
39
+ assert_equal(["Empty", "models/reply.rb:16", "models/reply.rb:20"], ary[0])
40
+ assert_equal(["is Content Mismatch", "models/reply.rb:25"], ary[1])
41
+ assert_equal(["is Wrong Create", "models/reply.rb:30"], ary[2])
42
+ assert_equal(["is Wrong Update", "models/reply.rb:34"], ary[3])
43
+ assert_equal(["reply", "models/reply.rb:-"], ary[4])
44
+ assert_equal(["Reply|Approved", "models/reply.rb:-"], ary[5])
45
+ assert_equal(["Reply|Author email address", "models/reply.rb:-"], ary[6])
46
+ assert_equal(["Reply|Author name", "models/reply.rb:-"], ary[7])
47
+ assert_equal(["Reply|Bonus time", "models/reply.rb:-"], ary[8])
48
+ assert_equal(["Reply|Content", "models/reply.rb:-"], ary[9])
49
+ assert_equal(["Reply|Last read", "models/reply.rb:-"], ary[10])
50
+ assert_equal(["Reply|Parent", "models/reply.rb:-"], ary[11])
51
+ assert_equal(["Reply|Replies count", "models/reply.rb:-"], ary[12])
52
+ assert_equal(["Reply|Title", "models/reply.rb:-"], ary[13])
53
+ # this target is from N_().
54
+ assert_equal(["Reply|Topic", "models/reply.rb:4"], ary[14])
55
+ assert_equal(["Reply|Type", "models/reply.rb:-"], ary[15])
56
+ assert_equal(["Reply|Written on", "models/reply.rb:-"], ary[16])
57
+
58
+ assert_equal(["sillyreply", "models/reply.rb:-"], ary[17])
59
+ assert_equal(["SillyReply|Approved", "models/reply.rb:-"], ary[18])
60
+ assert_equal(["SillyReply|Author email address", "models/reply.rb:-"], ary[19])
61
+ assert_equal(["SillyReply|Author name", "models/reply.rb:-"], ary[20])
62
+ assert_equal(["SillyReply|Bonus time", "models/reply.rb:-"], ary[21])
63
+ assert_equal(["SillyReply|Content", "models/reply.rb:-"], ary[22])
64
+ assert_equal(["SillyReply|Last read", "models/reply.rb:-"], ary[23])
65
+ assert_equal(["SillyReply|Parent", "models/reply.rb:-"], ary[24])
66
+ assert_equal(["SillyReply|Replies count", "models/reply.rb:-"], ary[25])
67
+ assert_equal(["SillyReply|Title", "models/reply.rb:-"], ary[26])
68
+ assert_equal(["SillyReply|Type", "models/reply.rb:-"], ary[27])
69
+ assert_equal(["SillyReply|Written on", "models/reply.rb:-"], ary[28])
70
+
71
+ assert_equal(["topic", "models/reply.rb:-"], ary[29])
72
+ end
73
+
74
+ def test_untranslate
75
+ GetText::ActiveRecordParser.target?("models/book.rb")
76
+ ary = GetText::ActiveRecordParser.parse("models/book.rb")
77
+ ary.sort!{|a, b| a[0].downcase <=> b[0].downcase}
78
+ assert_equal(4, ary.size)
79
+ assert_equal(["book", "models/book.rb:-"], ary[0])
80
+ assert_equal(["Book|Created at", "models/book.rb:-"], ary[1])
81
+ assert_equal(["Book|Price", "models/book.rb:-"], ary[2])
82
+ assert_equal(["Book|Updated at", "models/book.rb:-"], ary[3])
83
+ end
84
+
85
+ def test_untranslate_all
86
+ GetText::ActiveRecordParser.target?("models/user.rb")
87
+ ary = GetText::ActiveRecordParser.parse("models/user.rb")
88
+ assert_equal(0, ary.size)
89
+ end
90
+
91
+ def test_abstract_class
92
+ ary = GetText::ActiveRecordParser.parse("models/wizard.rb")
93
+ assert_equal(0, ary.size)
94
+ end
95
+ end