diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-admin/includes/credits.php --- a/wp/wp-admin/includes/credits.php Tue Oct 22 16:11:46 2019 +0200 +++ b/wp/wp-admin/includes/credits.php Tue Dec 15 13:49:49 2020 +0100 @@ -15,8 +15,8 @@ * @return array|false A list of all of the contributors, or false on error. */ function wp_credits() { - // include an unmodified $wp_version - include( ABSPATH . WPINC . '/version.php' ); + // Include an unmodified $wp_version. + require ABSPATH . WPINC . '/version.php'; $locale = get_user_locale(); @@ -76,3 +76,82 @@ function _wp_credits_build_object_link( &$data ) { $data = '' . esc_html( $data[0] ) . ''; } + +/** + * Displays the title for a given group of contributors. + * + * @since 5.3.0 + * + * @param array $group_data The current contributor group. + */ +function wp_credits_section_title( $group_data = array() ) { + if ( ! count( $group_data ) ) { + return; + } + + if ( $group_data['name'] ) { + if ( 'Translators' === $group_data['name'] ) { + // Considered a special slug in the API response. (Also, will never be returned for en_US.) + $title = _x( 'Translators', 'Translate this to be the equivalent of English Translators in your language for the credits page Translators section' ); + } elseif ( isset( $group_data['placeholders'] ) ) { + // phpcs:ignore WordPress.WP.I18n.LowLevelTranslationFunction,WordPress.WP.I18n.NonSingularStringLiteralText + $title = vsprintf( translate( $group_data['name'] ), $group_data['placeholders'] ); + } else { + // phpcs:ignore WordPress.WP.I18n.LowLevelTranslationFunction,WordPress.WP.I18n.NonSingularStringLiteralText + $title = translate( $group_data['name'] ); + } + + echo '
' . wp_sprintf( '%l.', $group_data['data'] ) . "
\n\n"; + break; + case 'libraries': + array_walk( $group_data['data'], '_wp_credits_build_object_link' ); + echo '' . wp_sprintf( '%l.', $group_data['data'] ) . "
\n\n"; + break; + default: + $compact = 'compact' === $group_data['type']; + $classes = 'wp-people-group ' . ( $compact ? 'compact' : '' ); + echo '