1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
<?php
/**
* Check a language.
*
* @todo Stop with globals.
* @param $code The language code.
* @return Number of errors found.
*/
function checkLanguage( $wgLanguages, $code ) {
global $wgRequiredMessagesNumber, $wgDisplayLevel, $wgLinks, $wgWikiLanguage, $wgChecks;
# Get messages
$messages = $wgLanguages->getMessages( $code );
$messagesNumber = count( $messages['translated'] );
# Skip the checks if specified
if ( $wgDisplayLevel == 0 ) {
return;
}
// Initialize counts
$untranslatedMessagesNumber = $duplicateMessagesNumber = $obsoleteMessagesNumber
= $messagesWithoutVariablesNumber = $messagesWithoutPluralNumber = $emptyMessagesNumber
= $messagesWithWhitespaceNumber = $nonXHTMLMessagesNumber = $messagesWithWrongCharsNumber
= 0;
# Untranslated messages
if ( in_array( 'untranslated', $wgChecks ) ) {
$untranslatedMessages = $wgLanguages->getUntranslatedMessages( $code );
$untranslatedMessagesNumber = count( $untranslatedMessages );
$wgLanguages->outputMessagesList( $untranslatedMessages, $code, "\n$untranslatedMessagesNumber messages of $wgRequiredMessagesNumber are not translated to $code, but exist in en:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
# Duplicate messages
if ( in_array( 'duplicate', $wgChecks ) ) {
$duplicateMessages = $wgLanguages->getDuplicateMessages( $code );
$duplicateMessagesNumber = count( $duplicateMessages );
$wgLanguages->outputMessagesList( $duplicateMessages, $code, "\n$duplicateMessagesNumber messages of $messagesNumber are translated the same in en and $code:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
# Obsolete messages
if ( in_array( 'obsolete', $wgChecks ) ) {
$obsoleteMessages = $messages['obsolete'];
$obsoleteMessagesNumber = count( $obsoleteMessages );
$wgLanguages->outputMessagesList( $obsoleteMessages, $code, "\n$obsoleteMessagesNumber messages of $messagesNumber are not exist in en (or are in the ignored list), but still exist in $code:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
# Messages without variables
if ( in_array( 'variables', $wgChecks ) ) {
$messagesWithoutVariables = $wgLanguages->getMessagesWithoutVariables( $code );
$messagesWithoutVariablesNumber = count( $messagesWithoutVariables );
$wgLanguages->outputMessagesList( $messagesWithoutVariables, $code, "\n$messagesWithoutVariablesNumber messages of $messagesNumber in $code don't use some variables while en uses them:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
# Messages without plural
if ( in_array( 'plural', $wgChecks ) ) {
$messagesWithoutPlural = $wgLanguages->getMessagesWithoutPlural( $code );
$messagesWithoutPluralNumber = count( $messagesWithoutPlural );
$wgLanguages->outputMessagesList( $messagesWithoutPlural, $code, "\n$messagesWithoutPluralNumber messages of $messagesNumber in $code don't use {{plural}} while en uses it:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
# Empty messages
if ( in_array( 'empty', $wgChecks ) ) {
$emptyMessages = $wgLanguages->getEmptyMessages( $code );
$emptyMessagesNumber = count( $emptyMessages );
$wgLanguages->outputMessagesList( $emptyMessages, $code, "\n$emptyMessagesNumber messages of $messagesNumber in $code are empty or -:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
# Messages with whitespace
if ( in_array( 'whitespace', $wgChecks ) ) {
$messagesWithWhitespace = $wgLanguages->getMessagesWithWhitespace( $code );
$messagesWithWhitespaceNumber = count( $messagesWithWhitespace );
$wgLanguages->outputMessagesList( $messagesWithWhitespace, $code, "\n$messagesWithWhitespaceNumber messages of $messagesNumber in $code have a trailing whitespace:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
# Non-XHTML messages
if ( in_array( 'xhtml', $wgChecks ) ) {
$nonXHTMLMessages = $wgLanguages->getNonXHTMLMessages( $code );
$nonXHTMLMessagesNumber = count( $nonXHTMLMessages );
$wgLanguages->outputMessagesList( $nonXHTMLMessages, $code, "\n$nonXHTMLMessagesNumber messages of $messagesNumber in $code are not well-formed XHTML:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
# Messages with wrong characters
if ( in_array( 'chars', $wgChecks ) ) {
$messagesWithWrongChars = $wgLanguages->getMessagesWithWrongChars( $code );
$messagesWithWrongCharsNumber = count( $messagesWithWrongChars );
$wgLanguages->outputMessagesList( $messagesWithWrongChars, $code, "\n$messagesWithWrongCharsNumber messages of $messagesNumber in $code include hidden chars which should not be used in the messages:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
return ($untranslatedMessagesNumber + $duplicateMessagesNumber + $obsoleteMessagesNumber + $messagesWithoutVariablesNumber + $messagesWithoutPluralNumber + $emptyMessagesNumber + $messagesWithWhitespaceNumber + $nonXHTMLMessagesNumber + $messagesWithWrongCharsNumber);
}
?>
|