// Determine which messages should we print
if ( in_array( '*', $params['messages'] ) ) {
- $message_names = array_keys( Language::getMessagesFor( 'en' ) );
+ $message_names = Language::getMessageKeysFor( $langObj->getCode() );
sort( $message_names );
$messages_target = $message_names;
} else {
* @param bool $foreign Whether the $langcode is not the content language
*/
public static function getCustomisedStatuses( $messageNames, $langcode = 'en', $foreign = false ) {
+ // FIXME: This function should be moved to Language:: or something.
wfProfileIn( __METHOD__ . '-db' );
$dbr = wfGetDB( DB_SLAVE );
/**
* Get all messages for a given language
- * WARNING: this may take a long time
+ * WARNING: this may take a long time. If you just need all message *keys*
+ * but need the *contents* of only a few messages, consider using getMessageKeysFor().
*
* @param $code string
*
static function getMessageFor( $key, $code ) {
return self::getLocalisationCache()->getSubitem( $code, 'messages', $key );
}
+
+ /**
+ * Get all message keys for a given language. This is a faster alternative to
+ * array_keys( Language::getMessagesFor( $code ) )
+ * @param $code string Language code
+ * @return array of message keys (strings)
+ */
+ static function getMessageKeysFor( $code ) {
+ return self::getLocalisationCache()->getSubItemList( $code, 'messages' );
+ }
/**
* @param $talk