304f8b5c264d57ed5eaea3b878e53a96369e0c04
[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 * @addtogroup Maintenance
6 */
7
8 require_once( dirname(__FILE__).'/../commandLine.inc' );
9 require_once( 'languages.inc' );
10 require_once( 'writeMessagesArray.inc' );
11
12 /**
13 * Rewrite a messages array.
14 *
15 * @param $code The language code.
16 * @param $write Write to the messages file?
17 * @param $listUnknown List the unknown messages?
18 */
19 function rebuildLanguage( $code, $write, $listUnknown ) {
20 global $wgLanguages;
21 $messages = $wgLanguages->getMessages( $code );
22 $messages = $messages['all'];
23 writeMessagesToFile( $messages, $code, $write, $listUnknown );
24 }
25
26 # Show help
27 if ( isset( $options['help'] ) ) {
28 echo <<<END
29 Run this script to rewrite the messages array in the files languages/messages/MessagesXX.php.
30 Parameters:
31 * lang: Language code (default: the installation default language). You can also specify "all" to check all the languages.
32 * help: Show this help.
33 Options:
34 * dry-run: Don't write the array to the file.
35 * no-unknown: Don't list the unknown messages.
36
37 END;
38 exit();
39 }
40
41 # Get the language code
42 if ( isset( $options['lang'] ) ) {
43 $wgCode = $options['lang'];
44 } else {
45 $wgCode = $wgContLang->getCode();
46 }
47
48 # Get the options
49 $wgWriteToFile = !isset( $options['dry-run'] );
50 $wgListUnknownMessages = !isset( $options['no-unknown'] );
51
52 # Get language objects
53 $wgLanguages = new languages();
54
55 # Write all the language
56 if ( $wgCode == 'all' ) {
57 foreach ( $wgLanguages->getLanguages() as $language ) {
58 rebuildLanguage( $language, $wgWriteToFile, $wgListUnknownMessages );
59 }
60 } else {
61 rebuildLanguage( $wgCode, $wgWriteToFile, $wgListUnknownMessages );
62 }
63
64