Use Doxygen @addtogroup instead of phpdoc @package && @subpackage
[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 */
18 function rebuildLanguage( $code, $write ) {
19 global $wgLanguages;
20
21 # Get messages
22 $messages = $wgLanguages->getMessages( $code );
23 $messages = $messages['all'];
24
25 # Rewrite messages array
26 $messagesText = writeMessagesArray( $messages, $code == 'en' );
27
28 # Write to the file
29 if ( $write ) {
30 $filename = Language::getMessagesFileName( $code );
31 $contents = file_get_contents( $filename );
32 if ( strpos( $contents, '$messages' ) !== false ) {
33 $new = explode( '$messages', $contents );
34 $new = $new[0];
35 $new .= $messagesText;
36 $new .= "\n?>\n";
37 file_put_contents( $filename, $new );
38 echo "Generated and wrote messages in language $code.\n";
39 }
40 } else {
41 echo "Generated messages in language $code.\n";
42 }
43 }
44
45 # Show help
46 if ( isset( $options['help'] ) ) {
47 echo <<<END
48 Run this script to rewrite the messages array in the files languages/messages/MessagesXX.php.
49 Parameters:
50 * lang: Language code (default: the installation default language). You can also specify "all" to check all the languages.
51 * help: Show this help.
52 Options:
53 * dry-run: Don't write the array to the file.
54
55 END;
56 exit();
57 }
58
59 # Get the language code
60 if ( isset( $options['lang'] ) ) {
61 $wgCode = $options['lang'];
62 } else {
63 $wgCode = $wgContLang->getCode();
64 }
65
66 # Get the write options
67 $wgWriteToFile = !isset( $options['dry-run'] );
68
69 # Get language objects
70 $wgLanguages = new languages();
71
72 # Write all the language
73 if ( $wgCode == 'all' ) {
74 foreach ( $wgLanguages->getLanguages() as $language ) {
75 rebuildLanguage( $language, $wgWriteToFile );
76 }
77 } else {
78 rebuildLanguage( $wgCode, $wgWriteToFile );
79 }
80
81 ?>