3 * Rewrite the messages array in the files languages/messages/MessagesXX.php.
6 * @subpackage Maintenance
9 require_once( dirname(__FILE__
).'/../commandLine.inc' );
10 require_once( 'languages.inc' );
11 require_once( 'writeMessagesArray.inc' );
14 * Rewrite a messages array.
16 * @param $code The language code.
17 * @param $write Write to the messages file?
19 function rebuildLanguage( $code, $write ) {
20 global $wgLanguages, $wg;
23 $messages = $wgLanguages->getMessages( $code );
24 $messages = $messages['all'];
26 # Rewrite messages array
27 $messagesText = writeMessagesArray( $messages, $code == 'en' );
31 $filename = Language
::getMessagesFileName( $code );
32 $contents = file_get_contents( $filename );
33 if ( strpos( $contents, '$messages' ) !== false ) {
34 $new = explode( '$messages', $contents );
36 $new .= $messagesText;
38 file_put_contents( $filename, $new );
39 echo "Generated and wrote messages in language $code.\n";
42 echo "Generated messages in language $code.\n";
47 if ( isset( $options['help'] ) ) {
49 Run this script to rewrite the messages array in the files languages/messages/MessagesXX.php.
51 * lang: Language code (default: the installation default language). You can also specify "all" to check all the languages.
52 * help: Show this help.
54 * dry-run: Don't write the array to the file.
60 # Get the language code
61 if ( isset( $options['lang'] ) ) {
62 $wgCode = $options['lang'];
64 $wgCode = $wgContLang->getCode();
67 # Get the write options
68 $wgWriteToFile = !isset( $options['dry-run'] );
70 # Get language objects
71 $wgLanguages = new languages();
73 # Write all the language
74 if ( $wgCode == 'all' ) {
75 foreach ( $wgLanguages->getLanguages() as $language ) {
76 rebuildLanguage( $language, $wgWriteToFile );
79 rebuildLanguage( $wgCode, $wgWriteToFile );