1
2 from translate.filters import checks
3 from translate.lang import data
4 from translate.storage import po
5
6 -def strprep(str1, str2, message=None):
7 return data.forceunicode(str1), data.forceunicode(str2), data.forceunicode(message)
8
9 -def passes(filterfunction, str1, str2):
10 """returns whether the given strings pass on the given test, handling FilterFailures"""
11 str1, str2, no_message = strprep(str1, str2)
12 try:
13 filterresult = filterfunction(str1, str2)
14 except checks.FilterFailure, e:
15 filterresult = False
16 return filterresult
17
18 -def fails(filterfunction, str1, str2, message=None):
19 """returns whether the given strings fail on the given test, handling only FilterFailures"""
20 str1, str2, message = strprep(str1, str2, message)
21 try:
22 filterresult = filterfunction(str1, str2)
23 except checks.SeriousFilterFailure, e:
24 filterresult = True
25 except checks.FilterFailure, e:
26 if message:
27 exc_message = e.args[0]
28 filterresult = exc_message != message
29 print exc_message.encode('utf-8')
30 else:
31 filterresult = False
32 return not filterresult
33
35 """returns whether the given strings fail on the given test, handling only SeriousFilterFailures"""
36 str1, str2, message = strprep(str1, str2, message)
37 try:
38 filterresult = filterfunction(str1, str2)
39 except checks.SeriousFilterFailure, e:
40 if message:
41 exc_message = e.args[0]
42 filterresult = exc_message != message
43 print exc_message.encode('utf-8')
44 else:
45 filterresult = False
46 return not filterresult
47
48
56
64
66 """test that we have the correct accelerator marker for the various default configs"""
67 stdchecker = checks.StandardChecker()
68 assert stdchecker.config.accelmarkers == []
69 mozillachecker = checks.MozillaChecker()
70 assert mozillachecker.config.accelmarkers == ["&"]
71 ooochecker = checks.OpenOfficeChecker()
72 assert ooochecker.config.accelmarkers == ["~"]
73 gnomechecker = checks.GnomeChecker()
74 assert gnomechecker.config.accelmarkers == ["_"]
75 kdechecker = checks.KdeChecker()
76 assert kdechecker.config.accelmarkers == ["&"]
77
84
86 """tests accelerators"""
87 stdchecker = checks.StandardChecker(checks.CheckerConfig(accelmarkers="&"))
88 assert passes(stdchecker.accelerators, "&File", "&Fayile")
89 assert fails(stdchecker.accelerators, "&File", "Fayile")
90 assert fails(stdchecker.accelerators, "File", "&Fayile")
91 assert passes(stdchecker.accelerators, "Mail && News", "Pos en Nuus")
92 assert fails(stdchecker.accelerators, "Mail & News", "Pos en Nuus")
93 assert passes(stdchecker.accelerators, "&Allow", u'&\ufeb2\ufee3\ufe8e\ufea3')
94 assert fails(stdchecker.accelerators, "Open &File", "Vula& Ifayile")
95 kdechecker = checks.KdeChecker()
96 assert passes(kdechecker.accelerators, "&File", "&Fayile")
97 assert fails(kdechecker.accelerators, "&File", "Fayile")
98 assert fails(kdechecker.accelerators, "File", "&Fayile")
99 gnomechecker = checks.GnomeChecker()
100 assert passes(gnomechecker.accelerators, "_File", "_Fayile")
101 assert fails(gnomechecker.accelerators, "_File", "Fayile")
102 assert fails(gnomechecker.accelerators, "File", "_Fayile")
103 assert fails(gnomechecker.accelerators, "_File", "_Fayil_e")
104 mozillachecker = checks.MozillaChecker()
105 assert passes(mozillachecker.accelerators, "&File", "&Fayile")
106 assert fails_serious(mozillachecker.accelerators, "&File", "Fayile")
107 assert fails_serious(mozillachecker.accelerators, "File", "&Fayile")
108 assert passes(mozillachecker.accelerators, "Mail & News", "Pos en Nuus")
109 assert fails_serious(mozillachecker.accelerators, "Mail & News", "Pos en &Nuus")
110 assert fails_serious(mozillachecker.accelerators, "&File", "Fayile")
111 ooochecker = checks.OpenOfficeChecker()
112 assert passes(ooochecker.accelerators, "~File", "~Fayile")
113 assert fails(ooochecker.accelerators, "~File", "Fayile")
114 assert fails(ooochecker.accelerators, "File", "~Fayile")
115
116
117 assert fails(ooochecker.accelerators, "F~ile", "L~êer")
118
119 afchecker = checks.StandardChecker(checks.CheckerConfig(accelmarkers="&", targetlanguage="fi"))
120 assert passes(afchecker.accelerators, "&Reload Frame", "P&äivitä kehys")
121
122
123
125 """test for accelerated variables"""
126
127 mozillachecker = checks.MozillaChecker()
128 assert fails(mozillachecker.acceleratedvariables, "%S &Options", "&%S Ikhetho")
129 assert passes(mozillachecker.acceleratedvariables, "%S &Options", "%S &Ikhetho")
130 ooochecker = checks.OpenOfficeChecker()
131 assert fails(ooochecker.acceleratedvariables, "%PRODUCTNAME% ~Options", "~%PRODUCTNAME% Ikhetho")
132 assert passes(ooochecker.acceleratedvariables, "%PRODUCTNAME% ~Options", "%PRODUCTNAME% ~Ikhetho")
133
134
136 """tests acronyms"""
137 stdchecker = checks.StandardChecker()
138 assert passes(stdchecker.acronyms, "An HTML file", "'n HTML leer")
139 assert fails(stdchecker.acronyms, "An HTML file", "'n LMTH leer")
140 assert passes(stdchecker.acronyms, "It is HTML.", "Dit is HTML.")
141
142 assert passes(stdchecker.acronyms, "An html file", "'n HTML leer")
143
144 stdchecker = checks.StandardChecker(checks.CheckerConfig(musttranslatewords=["OK"]))
145 assert passes(stdchecker.acronyms, "OK", "Kulungile")
146
147 assert fails(stdchecker.acronyms, "Location (URL) not found", "Blah blah blah")
148
149 assert passes(stdchecker.acronyms, "%s: option `-W %s' is ambiguous", "%s: opsie '-W %s' is dubbelsinnig")
150
156
158 """tests brackets"""
159 stdchecker = checks.StandardChecker()
160 assert passes(stdchecker.brackets, "N number(s)", "N getal(le)")
161 assert fails(stdchecker.brackets, "For {sic} numbers", "Vier getalle")
162 assert fails(stdchecker.brackets, "For }sic{ numbers", "Vier getalle")
163 assert fails(stdchecker.brackets, "For [sic] numbers", "Vier getalle")
164 assert fails(stdchecker.brackets, "For ]sic[ numbers", "Vier getalle")
165 assert passes(stdchecker.brackets, "{[(", "[({")
166
168 """tests compendiumconflicts"""
169 stdchecker = checks.StandardChecker()
170 assert fails(stdchecker.compendiumconflicts, "File not saved", r"""#-#-#-#-# file1.po #-#-#-#-#\n
171 Leer nie gestoor gestoor nie\n
172 #-#-#-#-# file1.po #-#-#-#-#\n
173 Leer nie gestoor""")
174
176 """tests double quotes"""
177 stdchecker = checks.StandardChecker()
178 assert fails(stdchecker.doublequoting, "Hot plate", "\"Ipuleti\" elishisa")
179 assert passes(stdchecker.doublequoting, "\"Hot\" plate", "\"Ipuleti\" elishisa")
180 assert fails(stdchecker.doublequoting, "'Hot' plate", "\"Ipuleti\" elishisa")
181 assert passes(stdchecker.doublequoting, "\\\"Hot\\\" plate", "\\\"Ipuleti\\\" elishisa")
182
183
184 frchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage="fr"))
185 assert passes(frchecker.doublequoting, "Click <a href=\"page.html\">", "Clique <a href=\"page.html\">")
186 assert fails(frchecker.doublequoting, "Do \"this\"", "Do \"this\"")
187 assert passes(frchecker.doublequoting, "Do \"this\"", "Do « this »")
188 assert fails(frchecker.doublequoting, "Do \"this\"", "Do « this » « this »")
189
190 vichecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage="vi"))
191 assert passes(vichecker.doublequoting, 'Save "File"', u"Lưu « Tập tin »")
192
194 """tests double spacing"""
195 stdchecker = checks.StandardChecker()
196 assert passes(stdchecker.doublespacing, "Sentence. Another sentence.", "Sin. 'n Ander sin.")
197 assert passes(stdchecker.doublespacing, "Sentence. Another sentence.", "Sin. No double spacing.")
198 assert fails(stdchecker.doublespacing, "Sentence. Another sentence.", "Sin. Missing the double space.")
199 assert fails(stdchecker.doublespacing, "Sentence. Another sentence.", "Sin. Uneeded double space in translation.")
200 ooochecker = checks.OpenOfficeChecker()
201 assert passes(ooochecker.doublespacing, "Execute %PROGRAMNAME Calc", "Blah %PROGRAMNAME Calc")
202 assert passes(ooochecker.doublespacing, "Execute %PROGRAMNAME Calc", "Blah % PROGRAMNAME Calc")
203
212
214 """tests endpunc"""
215 stdchecker = checks.StandardChecker()
216 assert passes(stdchecker.endpunc, "Question?", "Correct?")
217 assert fails(stdchecker.endpunc, " Question?", "Wrong ?")
218
219 assert fails(stdchecker.endpunc, "Exit change recording mode?\n\n", "Phuma esimeni sekugucula kubhalisa.\n\n")
220 mozillachecker = checks.MozillaChecker()
221 assert passes(mozillachecker.endpunc, "Upgrades an existing $ProductShortName$ installation.", "Ku antswisiwa ka ku nghenisiwa ka $ProductShortName$.")
222
223 assert passes(stdchecker.endpunc, "A nickname that identifies this publishing site (e.g.: 'MySite')", "Vito ro duvulela leri tirhisiwaka ku kuma sayiti leri ro kandziyisa (xik.: 'Sayiti ra Mina')")
224 assert fails(stdchecker.endpunc, "Question", u"Wrong\u2026")
225
226 assert passes(stdchecker.endpunc, "Pseudo-elements can't be negated '%1$S'.", "Pseudo-elemente kan nie '%1$S' ontken word nie.")
227
228 stdchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage='km'))
229 assert passes(stdchecker.endpunc, "In this new version, there are some minor conversion improvements on complex style in Openoffice.org Writer.", u"នៅក្នុងកំណែថ្មីនេះ មានការកែសម្រួលមួយចំនួនតូចទាក់ទងនឹងការបំលែងពុម្ពអក្សរខ្មែរ ក្នុងកម្មវិធីការិយាល័យ ស្លឹករឹត ដែលមានប្រើប្រាស់រចនាប័ទ្មស្មុគស្មាញច្រើន\u00a0។")
230
231 stdchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage='zh'))
232 assert passes(stdchecker.endpunc, "To activate your account, follow this link:\n", u"要啟用戶口,請瀏覽這個鏈結:\n")
233
234 stdchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage='vi'))
235 assert passes(stdchecker.endpunc, "Do you want to delete the XX dialog?", u"Bạn có muốn xoá hộp thoại XX không?")
236
242
244 """tests escapes"""
245 stdchecker = checks.StandardChecker()
246 assert passes(stdchecker.escapes, r"""A sentence""", "I'm correct.")
247 assert passes(stdchecker.escapes, "A file\n", "'n Leer\n")
248 assert fails_serious(stdchecker.escapes, r"blah. A file", r"bleah.\n'n leer")
249 assert passes(stdchecker.escapes, r"A tab\t", r"'n Tab\t")
250 assert fails_serious(stdchecker.escapes, r"A tab\t", r"'n Tab")
251 assert passes(stdchecker.escapes, r"An escape escape \\", r"Escape escape \\")
252 assert fails_serious(stdchecker.escapes, r"An escape escape \\", "Escape escape")
253 assert passes(stdchecker.escapes, r"A double quote \"", r"Double quote \"")
254 assert fails_serious(stdchecker.escapes, r"A double quote \"", "Double quote")
255
256 assert passes(stdchecker.escapes, "An escaped newline \\n", "Escaped newline \\n")
257 assert fails_serious(stdchecker.escapes, "An escaped newline \\n", "Escaped newline \n")
258
259 ooochecker = checks.OpenOfficeChecker()
260 assert passes(ooochecker.escapes, ",\t44\t;\t59\t:\t58\t{Tab}\t9\t{space}\t32", ",\t44\t;\t59\t:\t58\t{Tab}\t9\t{space}\t32")
261
263 """tests newlines"""
264 stdchecker = checks.StandardChecker()
265 assert passes(stdchecker.newlines, "Nothing to see", "Niks te sien")
266 assert passes(stdchecker.newlines, "Correct\n", "Korrek\n")
267 assert passes(stdchecker.newlines, "Correct\r", "Korrek\r")
268 assert passes(stdchecker.newlines, "Correct\r\n", "Korrek\r\n")
269 assert fails(stdchecker.newlines, "A file\n", "'n Leer")
270 assert fails(stdchecker.newlines, "A file", "'n Leer\n")
271 assert fails(stdchecker.newlines, "A file\r", "'n Leer")
272 assert fails(stdchecker.newlines, "A file", "'n Leer\r")
273 assert fails(stdchecker.newlines, "A file\n", "'n Leer\r\n")
274 assert fails(stdchecker.newlines, "A file\r\n", "'n Leer\n")
275 assert fails(stdchecker.newlines, "blah.\nA file", "bleah. 'n leer")
276
277 ooochecker = checks.OpenOfficeChecker()
278 assert fails(ooochecker.newlines, "The arrowhead was modified without saving.\nWould you like to save the arrowhead now?", "Ṱhoho ya musevhe yo khwinifhadzwa hu si na u seiva.Ni khou ṱoda u seiva thoho ya musevhe zwino?")
279
281 """tests tabs"""
282 stdchecker = checks.StandardChecker()
283 assert passes(stdchecker.tabs, "Nothing to see", "Niks te sien")
284 assert passes(stdchecker.tabs, "Correct\t", "Korrek\t")
285 assert passes(stdchecker.tabs, "Correct\tAA", "Korrek\tAA")
286 assert fails_serious(stdchecker.tabs, "A file\t", "'n Leer")
287 assert fails_serious(stdchecker.tabs, "A file", "'n Leer\t")
288 ooochecker = checks.OpenOfficeChecker()
289 assert passes(ooochecker.tabs, ",\t44\t;\t59\t:\t58\t{Tab}\t9\t{space}\t32", ",\t44\t;\t59\t:\t58\t{Tab}\t9\t{space}\t32")
290
292 """tests filepaths"""
293 stdchecker = checks.StandardChecker()
294 assert passes(stdchecker.filepaths, "%s to the file /etc/hosts on your system.", "%s na die leer /etc/hosts op jou systeem.")
295 assert fails(stdchecker.filepaths, "%s to the file /etc/hosts on your system.", "%s na die leer /etc/gasheer op jou systeem.")
296
306
308 """tests long messages"""
309 stdchecker = checks.StandardChecker()
310 assert passes(stdchecker.long, "I am normal", "Ek is ook normaal")
311 assert fails(stdchecker.long, "Short.", "Kort.......................................................................................")
312 assert fails(stdchecker.long, "a", "bc")
313
315 """tests stopwords"""
316 stdchecker = checks.StandardChecker(checks.CheckerConfig(musttranslatewords=[]))
317 assert passes(stdchecker.musttranslatewords, "This uses Mozilla of course", "hierdie gebruik le mozille natuurlik")
318 stdchecker = checks.StandardChecker(checks.CheckerConfig(musttranslatewords=["Mozilla"]))
319 assert passes(stdchecker.musttranslatewords, "This uses Mozilla of course", "hierdie gebruik le mozille natuurlik")
320 assert fails(stdchecker.musttranslatewords, "This uses Mozilla of course", "hierdie gebruik Mozilla natuurlik")
321 assert passes(stdchecker.musttranslatewords, "This uses Mozilla. Don't you?", "hierdie gebruik le mozille soos jy")
322 assert fails(stdchecker.musttranslatewords, "This uses Mozilla. Don't you?", "hierdie gebruik Mozilla soos jy")
323
324 assert passes(stdchecker.musttranslatewords, "This uses something else. Don't you?", "hierdie gebruik Mozilla soos jy")
325
326 assert passes(stdchecker.musttranslatewords, "Click 'Mozilla' button", "Kliek 'Motzille' knoppie")
327 assert fails(stdchecker.musttranslatewords, "Click 'Mozilla' button", "Kliek 'Mozilla' knoppie")
328 assert passes(stdchecker.musttranslatewords, 'Click "Mozilla" button', 'Kliek "Motzille" knoppie')
329 assert fails(stdchecker.musttranslatewords, 'Click "Mozilla" button', 'Kliek "Mozilla" knoppie')
330 assert fails(stdchecker.musttranslatewords, 'Click "Mozilla" button', u'Kliek «Mozilla» knoppie')
331 assert passes(stdchecker.musttranslatewords, "Click (Mozilla) button", "Kliek (Motzille) knoppie")
332 assert fails(stdchecker.musttranslatewords, "Click (Mozilla) button", "Kliek (Mozilla) knoppie")
333 assert passes(stdchecker.musttranslatewords, "Click Mozilla!", "Kliek Motzille!")
334 assert fails(stdchecker.musttranslatewords, "Click Mozilla!", "Kliek Mozilla!")
335
336
337
338 stdchecker = checks.StandardChecker(checks.CheckerConfig(varmatches=[("%", None), ], musttranslatewords=["OK"]))
339 assert passes(stdchecker.musttranslatewords, "Click %OK to start", "Kliek %OK om te begin")
340
341 assert fails(stdchecker.musttranslatewords, "Click OK", u"Kiḽikani OK")
342
344 """tests stopwords"""
345 stdchecker = checks.StandardChecker(checks.CheckerConfig(notranslatewords=[]))
346 assert passes(stdchecker.notranslatewords, "This uses Mozilla of course", "hierdie gebruik le mozille natuurlik")
347 stdchecker = checks.StandardChecker(checks.CheckerConfig(notranslatewords=["Mozilla", "Opera"]))
348 assert fails(stdchecker.notranslatewords, "This uses Mozilla of course", "hierdie gebruik le mozille natuurlik")
349 assert passes(stdchecker.notranslatewords, "This uses Mozilla of course", "hierdie gebruik Mozilla natuurlik")
350 assert fails(stdchecker.notranslatewords, "This uses Mozilla. Don't you?", "hierdie gebruik le mozille soos jy")
351 assert passes(stdchecker.notranslatewords, "This uses Mozilla. Don't you?", "hierdie gebruik Mozilla soos jy")
352
353 assert passes(stdchecker.notranslatewords, "This uses something else. Don't you?", "hierdie gebruik Mozilla soos jy")
354
355 assert passes(stdchecker.notranslatewords, "using Mozilla Task Manager", u"šomiša Selaola Mošomo sa Mozilla, gomme")
356
357 assert fails(stdchecker.notranslatewords, "Click 'Mozilla' button", "Kliek 'Motzille' knoppie")
358 assert passes(stdchecker.notranslatewords, "Click 'Mozilla' button", "Kliek 'Mozilla' knoppie")
359 assert fails(stdchecker.notranslatewords, "Click Mozilla!", "Kliek Motzille!")
360 assert passes(stdchecker.notranslatewords, "Click Mozilla!", "Kliek Mozilla!")
361 assert fails(stdchecker.notranslatewords, "Searches (From Opera)", "adosako (kusukela ku- Ophera)")
362 stdchecker = checks.StandardChecker(checks.CheckerConfig(notranslatewords=["Sun", "NeXT"]))
363 assert fails(stdchecker.notranslatewords, "Sun/NeXT Audio", "Odio dza Ḓuvha/TeVHELAHO")
364 assert passes(stdchecker.notranslatewords, "Sun/NeXT Audio", "Odio dza Sun/NeXT")
365 stdchecker = checks.StandardChecker(checks.CheckerConfig(notranslatewords=["sendmail"]))
366 assert fails(stdchecker.notranslatewords, "because 'sendmail' could", "ngauri 'rumelameiḽi' a yo")
367 assert passes(stdchecker.notranslatewords, "because 'sendmail' could", "ngauri 'sendmail' a yo")
368 stdchecker = checks.StandardChecker(checks.CheckerConfig(notranslatewords=["Base"]))
369 assert fails(stdchecker.notranslatewords, " - %PRODUCTNAME Base: Relation design", " - %PRODUCTNAME Sisekelo: Umsiko wekuhlobana")
370 stdchecker = checks.StandardChecker(checks.CheckerConfig(notranslatewords=["Writer"]))
371 assert fails(stdchecker.notranslatewords, "&[ProductName] Writer/Web", "&[ProductName] Umbhali/iWebhu")
372
373 stdchecker = checks.StandardChecker(checks.CheckerConfig(notranslatewords=[u"\u1e3cike"]))
374 assert passes(stdchecker.notranslatewords, u"You \u1e3cike me", u"Ek \u004c\u032dike jou")
375
377 """test numbers"""
378 stdchecker = checks.StandardChecker()
379 assert passes(stdchecker.numbers, "Netscape 4 was not as good as Netscape 7.", "Netscape 4 was nie so goed soos Netscape 7 nie.")
380
381 assert fails(stdchecker.numbers, "180° turn", "180 turn")
382 assert passes(stdchecker.numbers, "180° turn", "180° turn")
383 assert fails(stdchecker.numbers, "180° turn", "360 turn")
384 assert fails(stdchecker.numbers, "180° turn", "360° turn")
385 assert passes(stdchecker.numbers, "180~ turn", "180 turn")
386 assert passes(stdchecker.numbers, "180¶ turn", "180 turn")
387
388 assert passes(stdchecker.numbers, "12.34.56", "12.34.56")
389 assert fails(stdchecker.numbers, "12.34.56", "98.76.54")
390
391
392 assert passes(stdchecker.numbers, "R57.60", "R57.60")
393
394 assert fails(stdchecker.numbers, "R57.60", "R57,60")
395 assert fails(stdchecker.numbers, "1,000.00", "1 000,00")
396
397 assert passes(stdchecker.numbers, "40-bit RC2 encryption with RSA and an MD5", "Umbhalo ocashile i-RC2 onamabhithi angu-40 one-RSA ne-MD5")
398
400 """tests command line options e.g. --option"""
401 stdchecker = checks.StandardChecker()
402 assert passes(stdchecker.options, "--help", "--help")
403 assert fails(stdchecker.options, "--help", "--hulp")
404 assert fails(stdchecker.options, "--input=FILE", "--input=FILE")
405 assert passes(stdchecker.options, "--input=FILE", "--input=LÊER")
406 assert fails(stdchecker.options, "--input=FILE", "--tovoer=LÊER")
407
408 assert passes(stdchecker.options, "Hello! -- Hi", "Hallo! — Haai")
409 assert passes(stdchecker.options, "--blank--", "--vide--")
410
412 """tests printf style variables"""
413
414
415 stdchecker = checks.StandardChecker()
416 assert passes(stdchecker.printf, "I am %s", "Ek is %s")
417 assert fails(stdchecker.printf, "I am %s", "Ek is %d")
418 assert passes(stdchecker.printf, "I am %#100.50hhf", "Ek is %#100.50hhf")
419 assert fails(stdchecker.printf, "I am %#100s", "Ek is %10s")
420 assert fails(stdchecker.printf, "... for user %.100s on %.100s:", "... lomuntu osebenzisa i-%. I-100s e-100s:")
421 assert passes(stdchecker.printf, "%dMB", "%d MG")
422
423 assert passes(stdchecker.printf, "String %s and number %d", "String %1$s en nommer %2$d")
424 assert passes(stdchecker.printf, "String %1$s and number %2$d", "String %1$s en nommer %2$d")
425 assert passes(stdchecker.printf, "String %s and number %d", "Nommer %2$d and string %1$s")
426 assert fails(stdchecker.printf, "String %s and number %d", "Nommer %1$d and string %2$s")
427
428 assert passes(stdchecker.printf, "String %(1)s and number %(2)d", "Nommer %(2)d en string %(1)s")
429 assert passes(stdchecker.printf, "String %(str)s and number %(num)d", "Nommer %(num)d en string %(str)s")
430 assert fails(stdchecker.printf, "String %(str)s and number %(num)d", "Nommer %(nommer)d en string %(str)s")
431 assert fails(stdchecker.printf, "String %(str)s and number %(num)d", "Nommer %(num)d en string %s")
432
433 stdchecker.hasplural = 1
434 assert passes(stdchecker.printf, "%d plurals", "%.0s plural")
435
437 """tests spacing after punctuation"""
438 stdchecker = checks.StandardChecker()
439 assert passes(stdchecker.puncspacing, "One, two, three.", "Kunye, kubili, kuthathu.")
440 assert passes(stdchecker.puncspacing, "One, two, three. ", "Kunye, kubili, kuthathu.")
441 assert fails(stdchecker.puncspacing, "One, two, three. ", "Kunye, kubili,kuthathu.")
442 assert passes(stdchecker.puncspacing, "One, two, three!?", "Kunye, kubili, kuthathu?")
443
444
445 frchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage="fr"))
446 assert passes(frchecker.puncspacing, "Do \"this\"", "Do « this »")
447 assert fails(frchecker.puncspacing, "Do \"this\"", "Do «this»")
448
450 """tests messages containing only punctuation"""
451 stdchecker = checks.StandardChecker()
452 assert passes(stdchecker.purepunc, ".", ".")
453 assert passes(stdchecker.purepunc, "", "")
454 assert fails(stdchecker.purepunc, ".", " ")
455 assert fails(stdchecker.purepunc, "Find", "'")
456 assert fails(stdchecker.purepunc, "'", "Find")
457 assert passes(stdchecker.purepunc, "year measurement template|2000", "2000")
458
466
468 """tests short messages"""
469 stdchecker = checks.StandardChecker()
470 assert passes(stdchecker.short, "I am normal", "Ek is ook normaal")
471 assert fails(stdchecker.short, "I am a very long sentence", "Ek")
472 assert fails(stdchecker.short, "abcde", "c")
473
475 """tests single quotes"""
476 stdchecker = checks.StandardChecker()
477 assert passes(stdchecker.singlequoting, "A 'Hot' plate", "Ipuleti 'elishisa' kunye")
478
479 assert passes(stdchecker.singlequoting, "'Hot' plate", "Ipuleti 'elishisa'")
480
481 assert passes(stdchecker.singlequoting, "File '%s'\n", "'%s' Faele\n")
482 assert fails(stdchecker.singlequoting, "'Hot' plate", "Ipuleti \"elishisa\"")
483 assert passes(stdchecker.singlequoting, "It's here.", "Dit is hier.")
484
485 assert passes(stdchecker.singlequoting, "File '%s'.", "'%s' Faele.")
486 assert passes(stdchecker.singlequoting, "Blah 'format' blah.", "Blah blah 'sebopego'.")
487 assert passes(stdchecker.singlequoting, "Blah 'format' blah!", "Blah blah 'sebopego'!")
488 assert passes(stdchecker.singlequoting, "Blah 'format' blah?", "Blah blah 'sebopego'?")
489
490 assert passes(stdchecker.singlequoting, "A nickname that identifies this publishing site (e.g.: 'MySite')", "Vito ro duvulela leri tirhisiwaka ku kuma sayiti leri ro kandziyisa (xik.: 'Sayiti ra Mina')")
491 assert passes(stdchecker.singlequoting, "isn't", "ayikho")
492 assert passes(stdchecker.singlequoting, "Required (can't send message unless all recipients have certificates)", "Verlang (kan nie boodskappe versend tensy al die ontvangers sertifikate het nie)")
493
494 assert passes(stdchecker.singlequoting, "Please enter a different site name.", "Tik 'n ander werfnaam in.")
495 assert passes(stdchecker.singlequoting, "\"%name%\" already exists. Please enter a different site name.", "\"%name%\" bestaan reeds. Tik 'n ander werfnaam in.")
496
497 mozillachecker = checks.MozillaChecker()
498 assert passes(mozillachecker.singlequoting, "&Don't import anything", "&Moenie enigiets invoer nie")
499 ooochecker = checks.OpenOfficeChecker()
500 assert passes(ooochecker.singlequoting, "~Don't import anything", "~Moenie enigiets invoer nie")
501
502 vichecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage="vi"))
503 assert passes(vichecker.doublequoting, "Save 'File'", u"Lưu « Tập tin »")
504 assert passes(vichecker.doublequoting, "Save `File'", u"Lưu « Tập tin »")
505
507 """tests simple caps"""
508
509
510 stdchecker = checks.StandardChecker()
511 assert passes(stdchecker.simplecaps, "MB of disk space for the cache.", "MB yendzawo yediski etsala.")
512
513 assert passes(stdchecker.simplecaps, "if you say I want", "as jy se ek wil")
514 assert passes(stdchecker.simplecaps, "sentence. I want more.", "sin. Ek wil meer he.")
515 assert passes(stdchecker.simplecaps, "Where are we? I can't see where we are going.", "Waar is ons? Ek kan nie sien waar ons gaan nie.")
516
517 stdchecker = checks.StandardChecker(checks.CheckerConfig(varmatches=[("%", 1)]))
518 assert passes(stdchecker.simplecaps, "Could not load %s", "A swi koteki ku panga %S")
519 assert passes(stdchecker.simplecaps, "The element \"%S\" is not recognized.", "Elemente \"%S\" a yi tiveki.")
520 stdchecker = checks.StandardChecker(checks.CheckerConfig(varmatches=[("&", ";")]))
521 assert passes(stdchecker.simplecaps, "Determine how &brandShortName; connects to the Internet.", "Kuma &brandShortName; hlanganisa eka Internete.")
522
523 assert passes(stdchecker.simplecaps, "COUPDAYS", "COUPMALANGA")
524
525 assert passes(stdchecker.simplecaps, "Create a query entering an SQL statement directly.", "Yakha sibuti singena SQL inkhomba yesitatimende.")
526 ooochecker = checks.OpenOfficeChecker()
527 assert passes(ooochecker.simplecaps, "SOLK (%PRODUCTNAME Link)", "SOLK (%PRODUCTNAME Thumanyo)")
528 assert passes(ooochecker.simplecaps, "%STAROFFICE Image", "Tshifanyiso tsha %STAROFFICE")
529 assert passes(stdchecker.simplecaps, "Flies, flies, everywhere! Ack!", u"Vlieë, oral vlieë! Jig!")
530
532 """tests spell checking"""
533 stdchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage="af"))
534 assert passes(stdchecker.spellcheck, "Great trek", "Groot trek")
535 assert fails(stdchecker.spellcheck, "Final deadline", "End of the road")
536
537 stdchecker = checks.StandardChecker(checks.CheckerConfig(accelmarkers="&", targetlanguage="fi"))
538 assert passes(stdchecker.spellcheck, "&Reload Frame", "P&äivitä kehys")
539
540 stdchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage="af"))
541 assert fails(stdchecker.spellcheck, "Mozilla is wonderful", "Mozillaaa is wonderlik")
542
543 assert passes(stdchecker.spellcheck, "Mozilla is wonderful", "Mozilla is wonderlik")
544 stdchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage="af", notranslatewords=["Mozilla"]))
545 assert passes(stdchecker.spellcheck, "Mozilla is wonderful", "Mozilla is wonderlik")
546
548 """tests starting capitals"""
549 stdchecker = checks.StandardChecker()
550 assert passes(stdchecker.startcaps, "Find", "Vind")
551 assert passes(stdchecker.startcaps, "find", "vind")
552 assert fails(stdchecker.startcaps, "Find", "vind")
553 assert fails(stdchecker.startcaps, "find", "Vind")
554 assert passes(stdchecker.startcaps, "'", "'")
555 assert passes(stdchecker.startcaps, "\\.,/?!`'\"[]{}()@#$%^&*_-;:<>Find", "\\.,/?!`'\"[]{}()@#$%^&*_-;:<>Vind")
556
557 assert passes(stdchecker.startcaps, " Find", " Vind")
558 assert passes(stdchecker.startcaps, " find", " vind")
559 assert fails(stdchecker.startcaps, " Find", " vind")
560 assert fails(stdchecker.startcaps, " find", " Vind")
561
562 assert passes(stdchecker.startcaps, "'Find", "'Vind")
563 assert passes(stdchecker.startcaps, "'find", "'vind")
564 assert fails(stdchecker.startcaps, "'Find", "'vind")
565 assert fails(stdchecker.startcaps, "'find", "'Vind")
566
567 assert passes(stdchecker.startcaps, "Find", u"Šind")
568 assert passes(stdchecker.startcaps, "find", u"šind")
569 assert fails(stdchecker.startcaps, "Find", u"šind")
570 assert fails(stdchecker.startcaps, "find", u"Šind")
571
572 assert passes(stdchecker.startcaps, "A text enclosed...", u"Ḽiṅwalwa ḽo katelwaho...")
573 assert fails(stdchecker.startcaps, "A text enclosed...", u"ḽiṅwalwa ḽo katelwaho...")
574
575
576 stdchecker = checks.StandardChecker(checks.CheckerConfig(accelmarkers="&"))
577 assert passes(stdchecker.startcaps, "&Find", "Vi&nd")
578
579
580 stdchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage='af'))
581 assert passes(stdchecker.startcaps, "A cow", "'n Koei")
582 assert passes(stdchecker.startcaps, "A list of ", "'n Lys van ")
583
584
585 assert passes(stdchecker.startcaps, "'Do it'", "'Doen dit'")
586 assert fails(stdchecker.startcaps, "'Closer than'", "'nader as'")
587 assert passes(stdchecker.startcaps, "List", "Lys")
588 assert passes(stdchecker.startcaps, "a cow", "'n koei")
589 assert fails(stdchecker.startcaps, "a cow", "'n Koei")
590 assert passes(stdchecker.startcaps, "(A cow)", "('n Koei)")
591 assert fails(stdchecker.startcaps, "(a cow)", "('n Koei)")
592
599
605
607 """tests unchanged entries"""
608 stdchecker = checks.StandardChecker(checks.CheckerConfig(accelmarkers="&"))
609 assert fails(stdchecker.unchanged, "Unchanged", "Unchanged")
610 assert fails(stdchecker.unchanged, "&Unchanged", "Un&changed")
611 assert passes(stdchecker.unchanged, "Unchanged", "Changed")
612 assert passes(stdchecker.unchanged, "1234", "1234")
613 assert passes(stdchecker.unchanged, "2×2", "2×2")
614 assert passes(stdchecker.unchanged, "I", "I")
615 assert passes(stdchecker.unchanged, " ", " ")
616 assert passes(stdchecker.unchanged, "???", "???")
617 assert passes(stdchecker.unchanged, "&ACRONYM", "&ACRONYM")
618 assert passes(stdchecker.unchanged, "F1", "F1")
619
620 mozillachecker = checks.MozillaChecker()
621 assert passes(mozillachecker.unchanged, "$ProgramName$", "$ProgramName$")
622 assert passes(mozillachecker.unchanged, "$file$ : $dir$", "$file$ : $dir$")
623 assert fails(mozillachecker.unchanged, "$file$ in $dir$", "$file$ in $dir$")
624
625 stdchecker = checks.StandardChecker(checks.CheckerConfig(notranslatewords=["Mozilla"]))
626 assert passes(stdchecker.unchanged, "Mozilla", "Mozilla")
627
635
637 """tests valid characters"""
638 stdchecker = checks.StandardChecker(checks.CheckerConfig())
639 assert passes(stdchecker.validchars, "The check always passes if you don't specify chars", "Die toets sal altyd werk as jy nie karacters specifisier")
640 stdchecker = checks.StandardChecker(checks.CheckerConfig(validchars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'))
641 assert passes(stdchecker.validchars, "This sentence contains valid characters", "Hierdie sin bevat ware karakters")
642 assert fails(stdchecker.validchars, "Some unexpected characters", "©®°±÷¼½¾")
643 stdchecker = checks.StandardChecker(checks.CheckerConfig(validchars='⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰'))
644 assert passes(stdchecker.validchars, "Our target language is all non-ascii", "⠁⠂⠃⠄⠆⠇⠈⠉⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫")
645 assert fails(stdchecker.validchars, "Our target language is all non-ascii", "Some ascii⠁⠂⠃⠄⠆⠇⠈⠉⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫")
646 stdchecker = checks.StandardChecker(checks.CheckerConfig(validchars=u'\u004c\u032d'))
647 assert passes(stdchecker.validchars, "This sentence contains valid chars", u"\u004c\u032d")
648 assert passes(stdchecker.validchars, "This sentence contains valid chars", u"\u1e3c")
649 stdchecker = checks.StandardChecker(checks.CheckerConfig(validchars=u'\u1e3c'))
650 assert passes(stdchecker.validchars, "This sentence contains valid chars", u"\u1e3c")
651 assert passes(stdchecker.validchars, "This sentence contains valid chars", u"\u004c\u032d")
652
654 """tests variables in KDE translations"""
655
656 kdechecker = checks.KdeChecker()
657 assert passes(kdechecker.variables, "%d files of type %s saved.", "%d leers van %s tipe gestoor.")
658 assert fails_serious(kdechecker.variables, "%d files of type %s saved.", "%s leers van %s tipe gestoor.")
659
661 """tests variables in GNOME translations"""
662
663 gnomechecker = checks.GnomeChecker()
664 assert passes(gnomechecker.variables, "%d files of type %s saved.", "%d leers van %s tipe gestoor.")
665 assert fails_serious(gnomechecker.variables, "%d files of type %s saved.", "%s leers van %s tipe gestoor.")
666 assert passes(gnomechecker.variables, "Save $(file)", "Stoor $(file)")
667 assert fails_serious(gnomechecker.variables, "Save $(file)", "Stoor $(leer)")
668
670 """tests variables in Mozilla translations"""
671
672 mozillachecker = checks.MozillaChecker()
673 assert passes(mozillachecker.variables, "Use the &brandShortname; instance.", "Gebruik die &brandShortname; weergawe.")
674 assert fails_serious(mozillachecker.variables, "Use the &brandShortname; instance.", "Gebruik die &brandKortnaam; weergawe.")
675 assert passes(mozillachecker.variables, "Save %file%", "Stoor %file%")
676 assert fails_serious(mozillachecker.variables, "Save %file%", "Stoor %leer%")
677 assert passes(mozillachecker.variables, "Save $file$", "Stoor $file$")
678 assert fails_serious(mozillachecker.variables, "Save $file$", "Stoor $leer$")
679 assert passes(mozillachecker.variables, "%d files of type %s saved.", "%d leers van %s tipe gestoor.")
680 assert fails_serious(mozillachecker.variables, "%d files of type %s saved.", "%s leers van %s tipe gestoor.")
681 assert passes(mozillachecker.variables, "Save $file", "Stoor $file")
682 assert fails_serious(mozillachecker.variables, "Save $file", "Stoor $leer")
683 assert passes(mozillachecker.variables, "About $ProgramName$", "Oor $ProgramName$")
684 assert fails_serious(mozillachecker.variables, "About $ProgramName$", "Oor $NaamVanProgam$")
685 assert passes(mozillachecker.variables, "About $_CLICK", "Oor $_CLICK")
686 assert fails_serious(mozillachecker.variables, "About $_CLICK", "Oor $_KLIK")
687 assert passes(mozillachecker.variables, "About $_CLICK and more", "Oor $_CLICK en meer")
688 assert fails_serious(mozillachecker.variables, "About $_CLICK and more", "Oor $_KLIK en meer")
689 assert passes(mozillachecker.variables, "About $(^NameDA)", "Oor $(^NameDA)")
690 assert fails_serious(mozillachecker.variables, "About $(^NameDA)", "Oor $(^NaamDA)")
691
692 assert fails_serious(mozillachecker.variables, "Create In <<", "Etsa ka Ho <lt;")
693
694 assert fails_serious(mozillachecker.variables, "...time you start &brandShortName;.", "...lekgetlo le latelang ha o qala &LebitsoKgutshwane la kgwebo;.")
695
696 assert fails_serious(mozillachecker.variables, "&brandShortName; successfully downloaded and installed updates. You will have to restart &brandShortName; to complete the update.", "&brandShortName; ḽo dzhenisa na u longela khwinifhadzo zwavhuḓi. Ni ḓo tea u thoma hafhu &DzinaḼipfufhi ḽa pfungavhuṇe; u itela u fhedzisa khwinifha dzo.")
697
698 assert fails_serious(mozillachecker.variables, "Welcome to the &pluginWizard.title;", "Wamkelekile kwi&Sihloko Soncedo lwe-plugin;")
699
700 assert fails_serious(mozillachecker.variables, "\"%S\" is an executable file.... Are you sure you want to launch \"%S\"?", ".... Uyaqiniseka ukuthi ufuna ukuqalisa I\"%S\"?")
701
702 assert passes(mozillachecker.variables, "for reporting $ProductShortName$ crash information", "okokubika ukwaziswa kokumosheka kwe-$ProductShortName$")
703
704 assert fails_serious(mozillachecker.variables, "&brandShortName;", "&brandShortName;")
705
707 """tests variables in OpenOffice translations"""
708
709 ooochecker = checks.OpenOfficeChecker()
710 assert passes(ooochecker.variables, "Use the &brandShortname; instance.", "Gebruik die &brandShortname; weergawe.")
711 assert fails_serious(ooochecker.variables, "Use the &brandShortname; instance.", "Gebruik die &brandKortnaam; weergawe.")
712 assert passes(ooochecker.variables, "Save %file%", "Stoor %file%")
713 assert fails_serious(ooochecker.variables, "Save %file%", "Stoor %leer%")
714 assert passes(ooochecker.variables, "Save %file", "Stoor %file")
715 assert fails_serious(ooochecker.variables, "Save %file", "Stoor %leer")
716 assert passes(ooochecker.variables, "Save %1", "Stoor %1")
717 assert fails_serious(ooochecker.variables, "Save %1", "Stoor %2")
718 assert passes(ooochecker.variables, "Save %", "Stoor %")
719 assert fails_serious(ooochecker.variables, "Save %", "Stoor")
720 assert passes(ooochecker.variables, "Save $(file)", "Stoor $(file)")
721 assert fails_serious(ooochecker.variables, "Save $(file)", "Stoor $(leer)")
722 assert passes(ooochecker.variables, "Save $file$", "Stoor $file$")
723 assert fails_serious(ooochecker.variables, "Save $file$", "Stoor $leer$")
724 assert passes(ooochecker.variables, "Save ${file}", "Stoor ${file}")
725 assert fails_serious(ooochecker.variables, "Save ${file}", "Stoor ${leer}")
726 assert passes(ooochecker.variables, "Save #file#", "Stoor #file#")
727 assert fails_serious(ooochecker.variables, "Save #file#", "Stoor #leer#")
728 assert passes(ooochecker.variables, "Save #1", "Stoor #1")
729 assert fails_serious(ooochecker.variables, "Save #1", "Stoor #2")
730 assert passes(ooochecker.variables, "Save #", "Stoor #")
731 assert fails_serious(ooochecker.variables, "Save #", "Stoor")
732 assert passes(ooochecker.variables, "Save ($file)", "Stoor ($file)")
733 assert fails_serious(ooochecker.variables, "Save ($file)", "Stoor ($leer)")
734 assert passes(ooochecker.variables, "Save $[file]", "Stoor $[file]")
735 assert fails_serious(ooochecker.variables, "Save $[file]", "Stoor $[leer]")
736 assert passes(ooochecker.variables, "Save [file]", "Stoor [file]")
737 assert fails_serious(ooochecker.variables, "Save [file]", "Stoor [leer]")
738 assert passes(ooochecker.variables, "Save $file", "Stoor $file")
739 assert fails_serious(ooochecker.variables, "Save $file", "Stoor $leer")
740
741 assert fails_serious(ooochecker.variables, r"""Start %PROGRAMNAME% as %PROGRAMNAME%""", "Begin %PROGRAMNAME%")
742
744 """Tests variables in Creative Commons translations."""
745 checker = checks.CCLicenseChecker()
746 assert passes(checker.variables, "CC-GNU @license_code@.", "CC-GNU @license_code@.")
747 assert fails_serious(checker.variables, "CC-GNU @license_code@.", "CC-GNU @lisensie_kode@.")
748 assert passes(checker.variables, "Deed to the @license_name_full@", "Akte vir die @license_name_full@")
749 assert fails_serious(checker.variables, "Deed to the @license_name_full@", "Akte vir die @volle_lisensie@")
750 assert passes(checker.variables, "The @license_name_full@ is", "Die @license_name_full@ is")
751 assert fails_serious(checker.variables, "The @license_name_full@ is", "Die @iiilicense_name_full@ is")
752 assert fails_serious(checker.variables, "A @ccvar@", "'n @ccvertaaldeveranderlike@")
753
772
788
790 """tests to see that funtions() are not translated"""
791 stdchecker = checks.StandardChecker()
792 assert fails(stdchecker.functions, "blah rgb() blah", "blee brg() blee")
793 assert passes(stdchecker.functions, "blah rgb() blah", "blee rgb() blee")
794 assert fails(stdchecker.functions, "percentage in rgb()", "phesenthe kha brg()")
795 assert passes(stdchecker.functions, "percentage in rgb()", "phesenthe kha rgb()")
796 assert fails(stdchecker.functions, "rgb() in percentage", "brg() kha phesenthe")
797 assert passes(stdchecker.functions, "rgb() in percentage", "rgb() kha phesenthe")
798 assert fails(stdchecker.functions, "blah string.rgb() blah", "blee bleeb.rgb() blee")
799 assert passes(stdchecker.functions, "blah string.rgb() blah", "blee string.rgb() blee")
800 assert passes(stdchecker.functions, "or domain().", "domain() verwag.")
801 assert passes(stdchecker.functions, "Expected url(), url-prefix(), or domain().", "url(), url-prefix() of domain() verwag.")
802
804 """tests to see that email addresses are not translated"""
805 stdchecker = checks.StandardChecker()
806 assert fails(stdchecker.emails, "blah bob@example.net blah", "blee kobus@voorbeeld.net blee")
807 assert passes(stdchecker.emails, "blah bob@example.net blah", "blee bob@example.net blee")
808
810 """tests to see that URLs are not translated"""
811 stdchecker = checks.StandardChecker()
812 assert fails(stdchecker.urls, "blah http://translate.org.za blah", "blee http://vertaal.org.za blee")
813 assert passes(stdchecker.urls, "blah http://translate.org.za blah", "blee http://translate.org.za blee")
814
816 """test that we can find English style plural(s)"""
817 stdchecker = checks.StandardChecker()
818 assert passes(stdchecker.simpleplurals, "computer(s)", "rekenaar(s)")
819 assert fails(stdchecker.simpleplurals, "plural(s)", "meervoud(e)")
820 assert fails(stdchecker.simpleplurals, "Ungroup Metafile(s)...", "Kuvhanganyululani Metafaela(dzi)...")
821
822
823 stdchecker = checks.StandardChecker(checks.CheckerConfig(targetlanguage='vi'))
824 assert passes(stdchecker.simpleplurals, "computer(s)", u"Máy tính")
825 assert fails(stdchecker.simpleplurals, "computer(s)", u"Máy tính(s)")
826
828 """Test that we can find the wrong number of plural forms. Note that this
829 test uses a UnitChecker, not a translation checker."""
830 checker = checks.StandardUnitChecker()
831 unit = po.pounit("")
832
833 unit.source = ["%d file", "%d files"]
834 unit.target = [u"%d lêer", u"%d lêers"]
835 assert checker.nplurals(unit)
836
837 checker = checks.StandardUnitChecker(checks.CheckerConfig(targetlanguage='af'))
838 unit.source = "%d files"
839 unit.target = "%d lêer"
840 assert checker.nplurals(unit)
841
842 unit.source = ["%d file", "%d files"]
843 unit.target = [u"%d lêer", u"%d lêers"]
844 assert checker.nplurals(unit)
845
846 unit.source = ["%d file", "%d files"]
847 unit.target = [u"%d lêer", u"%d lêers", u"%d lêeeeers"]
848 assert not checker.nplurals(unit)
849
850 unit.source = ["%d file", "%d files"]
851 unit.target = [u"%d lêer"]
852 assert not checker.nplurals(unit)
853
854 checker = checks.StandardUnitChecker(checks.CheckerConfig(targetlanguage='km'))
855 unit.source = "%d files"
856 unit.target = "%d ឯកសារ"
857 assert checker.nplurals(unit)
858
859 unit.source = ["%d file", "%d files"]
860 unit.target = [u"%d ឯកសារ"]
861 assert checker.nplurals(unit)
862
863 unit.source = ["%d file", "%d files"]
864 unit.target = [u"%d ឯកសារ", u"%d lêers"]
865 assert not checker.nplurals(unit)
866
868 """tests credits"""
869 stdchecker = checks.StandardChecker()
870 assert passes(stdchecker.credits, "File", "iFayile")
871 assert passes(stdchecker.credits, "&File", "&Fayile")
872 assert passes(stdchecker.credits, "translator-credits", "Ekke, ekke!")
873 assert passes(stdchecker.credits, "Your names", "Ekke, ekke!")
874 assert passes(stdchecker.credits, "ROLES_OF_TRANSLATORS", "Ekke, ekke!")
875 kdechecker = checks.KdeChecker()
876 assert passes(kdechecker.credits, "File", "iFayile")
877 assert passes(kdechecker.credits, "&File", "&Fayile")
878 assert passes(kdechecker.credits, "translator-credits", "Ekke, ekke!")
879 assert fails(kdechecker.credits, "Your names", "Ekke, ekke!")
880 assert fails(kdechecker.credits, "ROLES_OF_TRANSLATORS", "Ekke, ekke!")
881 gnomechecker = checks.GnomeChecker()
882 assert passes(gnomechecker.credits, "File", "iFayile")
883 assert passes(gnomechecker.credits, "&File", "&Fayile")
884 assert fails(gnomechecker.credits, "translator-credits", "Ekke, ekke!")
885 assert passes(gnomechecker.credits, "Your names", "Ekke, ekke!")
886 assert passes(gnomechecker.credits, "ROLES_OF_TRANSLATORS", "Ekke, ekke!")
887