getLanguageFallback()->getAll( $language ); // Prepend the requested language code // to load them all in one loop array_unshift( $languages, $language ); // jQuery.uls localization foreach ( $languages as $language ) { $filenames[] = __DIR__ . "/../lib/jquery.uls/i18n/$language.json"; } // mediaWiki.uls localization foreach ( $languages as $language ) { $filenames[] = __DIR__ . "/../i18n/$language.json"; } $filenames = array_filter( $filenames, 'file_exists' ); return $filenames; } /** * Get messages for the given language. * @param string $language Language code. * @return array */ public static function getMessages( string $language ) { $contents = []; foreach ( self::getFilenames( $language ) as $filename ) { $contents += self::loadI18nFile( $filename ); } return $contents; } /** * Load messages from a json file. * @param string $filename Directory of the json file. * @return array */ protected static function loadI18nFile( $filename ) { $contents = file_get_contents( $filename ); return json_decode( $contents, true ); } }