Take math errors related messages out of the preferences section.
[lhc/web/wiklou.git] / maintenance / language / rebuildLanguage.php
1 <?php
2 /**
3 * Rewrite the messages array in the files languages/messages/MessagesXx.php.
4 *
5 * @file
6 * @ingroup MaintenanceLanguage
7 * @defgroup MaintenanceLanguage MaintenanceLanguage
8 */
9
10 require_once( dirname(__FILE__).'/../commandLine.inc' );
11 require_once( 'languages.inc' );
12 require_once( 'writeMessagesArray.inc' );
13
14 /**
15 * Rewrite a messages array.
16 *
17 * @param $code The language code.
18 * @param $write Write to the messages file?
19 * @param $listUnknown List the unknown messages?
20 * @param $removeUnKnown Remove the unknown messages?
21 */
22 function rebuildLanguage( $code, $write, $listUnknown, $removeUnknown ) {
23 global $wgLanguages;
24 $messages = $wgLanguages->getMessages( $code );
25 $messages = $messages['all'];
26 MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown );
27 }
28
29 # Show help
30 if ( isset( $options['help'] ) ) {
31 echo <<<END
32 Run this script to rewrite the messages array in the files languages/messages/MessagesXX.php.
33 Parameters:
34 * lang: Language code (default: the installation default language). You can also specify "all" to check all the languages.
35 * help: Show this help.
36 Options:
37 * dry-run: Do not write the array to the file.
38 * no-unknown: Do not list the unknown messages.
39 * remove-unknown: Remove unknown messages.
40
41 END;
42 exit(1);
43 }
44
45 # Get the language code
46 if ( isset( $options['lang'] ) ) {
47 $wgCode = $options['lang'];
48 } else {
49 $wgCode = $wgContLang->getCode();
50 }
51
52 # Get the options
53 $wgWriteToFile = !isset( $options['dry-run'] );
54 $wgListUnknownMessages = !isset( $options['no-unknown'] );
55 $wgRemoveUnknownMessages = isset( $options['remove-unknown'] );
56
57 # Get language objects
58 $wgLanguages = new languages();
59
60 # Write all the language
61 if ( $wgCode == 'all' ) {
62 foreach ( $wgLanguages->getLanguages() as $language ) {
63 rebuildLanguage( $language, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages );
64 }
65 } else {
66 rebuildLanguage( $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages );
67 }