Index: src/wp-admin/includes/class-wp-media-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-media-list-table.php	(revision 51821)
+++ src/wp-admin/includes/class-wp-media-list-table.php	(working copy)
@@ -600,10 +600,14 @@
 	 * @since 4.3.0
 	 * @since 5.9.0 Renamed `$post` to `$item` to match parent class for PHP 8 named parameter support.
 	 *
+	 * @global WP_Locale $wp_locale WordPress date and time locale object.
+	 *
 	 * @param WP_Post $item        The current WP_Post object.
 	 * @param string  $column_name Current column name.
 	 */
 	public function column_default( $item, $column_name ) {
+		global $wp_locale;
+
 		// Restores the more descriptive, specific name for use within this method.
 		$post = $item;
 
@@ -633,8 +637,7 @@
 						esc_html( sanitize_term_field( 'name', $t->name, $t->term_id, $taxonomy, 'display' ) )
 					);
 				}
-				/* translators: Used between list items, there is a space after the comma. */
-				echo implode( __( ', ' ), $out );
+				echo implode( $wp_locale->get_list_item_separator(), $out );
 			} else {
 				echo '<span aria-hidden="true">&#8212;</span><span class="screen-reader-text">' . get_taxonomy( $taxonomy )->labels->no_terms . '</span>';
 			}
Index: src/wp-admin/includes/class-wp-posts-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-posts-list-table.php	(revision 51821)
+++ src/wp-admin/includes/class-wp-posts-list-table.php	(working copy)
@@ -1240,10 +1240,14 @@
 	 * @since 4.3.0
 	 * @since 5.9.0 Renamed `$post` to `$item` to match parent class for PHP 8 named parameter support.
 	 *
+	 * @global WP_Locale $wp_locale WordPress date and time locale object.
+	 *
 	 * @param WP_Post $item        The current WP_Post object.
 	 * @param string  $column_name The current column name.
 	 */
 	public function column_default( $item, $column_name ) {
+		global $wp_locale;
+
 		// Restores the more descriptive, specific name for use within this method.
 		$post = $item;
 
@@ -1294,8 +1298,7 @@
 				 */
 				$term_links = apply_filters( 'post_column_taxonomy_links', $term_links, $taxonomy, $terms );
 
-				/* translators: Used between list items, there is a space after the comma. */
-				echo implode( __( ', ' ), $term_links );
+				echo implode( $wp_locale->get_list_item_separator(), $term_links );
 			} else {
 				echo '<span aria-hidden="true">&#8212;</span><span class="screen-reader-text">' . $taxonomy_object->labels->no_terms . '</span>';
 			}
Index: src/wp-content/themes/twentyeleven/content-featured.php
===================================================================
--- src/wp-content/themes/twentyeleven/content-featured.php	(revision 51821)
+++ src/wp-content/themes/twentyeleven/content-featured.php	(working copy)
@@ -5,9 +5,11 @@
  * @package WordPress
  * @subpackage Twenty_Eleven
  * @since Twenty Eleven 1.0
+ *
+ * @global WP_Locale $wp_locale WordPress date and time locale object.
  */
 
-global $feature_class;
+global $feature_class, $wp_locale;
 ?>
 <article id="post-<?php the_ID(); ?>" <?php post_class( $feature_class ); ?>>
 	<header class="entry-header">
@@ -32,8 +34,7 @@
 
 	<footer class="entry-meta">
 		<?php
-		/* translators: Used between list items, there is a space after the comma. */
-		$tags_list = get_the_tag_list( '', __( ', ', 'twentyeleven' ) );
+		$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 
 		if ( $tags_list && ! is_wp_error( $tags_list ) ) {
 			/* translators: 1: Category list, 2: Tag list, 3: Post permalink, 4: Post title. */
@@ -45,8 +46,7 @@
 
 		printf(
 			$utility_text,
-			/* translators: Used between list items, there is a space after the comma. */
-			get_the_category_list( __( ', ', 'twentyeleven' ) ),
+			get_the_category_list( $wp_locale->get_list_item_separator() ),
 			$tags_list,
 			esc_url( get_permalink() ),
 			the_title_attribute( 'echo=0' )
Index: src/wp-content/themes/twentyeleven/content-gallery.php
===================================================================
--- src/wp-content/themes/twentyeleven/content-gallery.php	(revision 51821)
+++ src/wp-content/themes/twentyeleven/content-gallery.php	(working copy)
@@ -9,7 +9,11 @@
  * @package WordPress
  * @subpackage Twenty_Eleven
  * @since Twenty Eleven 1.0
+ *
+ * @global WP_Locale $wp_locale WordPress date and time locale object.
  */
+
+global $wp_locale;
 ?>
 
 <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
@@ -72,8 +76,7 @@
 		<?php $show_sep = false; ?>
 
 		<?php
-		/* translators: Used between list items, there is a space after the comma. */
-		$categories_list = get_the_category_list( __( ', ', 'twentyeleven' ) );
+		$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 
 		if ( $categories_list ) :
 			?>
@@ -87,8 +90,7 @@
 		<?php endif; // End if categories. ?>
 
 		<?php
-		/* translators: Used between list items, there is a space after the comma. */
-		$tags_list = get_the_tag_list( '', __( ', ', 'twentyeleven' ) );
+		$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 
 		if ( $tags_list && ! is_wp_error( $tags_list ) ) :
 			if ( $show_sep ) :
Index: src/wp-content/themes/twentyeleven/content-image.php
===================================================================
--- src/wp-content/themes/twentyeleven/content-image.php	(revision 51821)
+++ src/wp-content/themes/twentyeleven/content-image.php	(working copy)
@@ -9,7 +9,11 @@
  * @package WordPress
  * @subpackage Twenty_Eleven
  * @since Twenty Eleven 1.0
+ *
+ * @global WP_Locale $wp_locale WordPress date and time locale object.
  */
+
+global $wp_locale;
 ?>
 	<article id="post-<?php the_ID(); ?>" <?php post_class( 'indexed' ); ?>>
 		<header class="entry-header">
@@ -55,8 +59,7 @@
 			</div><!-- .entry-meta -->
 			<div class="entry-meta">
 				<?php
-				/* translators: Used between list items, there is a space after the comma. */
-				$categories_list = get_the_category_list( __( ', ', 'twentyeleven' ) );
+				$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 
 				if ( $categories_list ) :
 					?>
@@ -69,8 +72,7 @@
 				<?php endif; // End if categories. ?>
 
 				<?php
-				/* translators: Used between list items, there is a space after the comma. */
-				$tags_list = get_the_tag_list( '', __( ', ', 'twentyeleven' ) );
+				$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 
 				if ( $tags_list && ! is_wp_error( $tags_list ) ) :
 					?>
Index: src/wp-content/themes/twentyeleven/content-quote.php
===================================================================
--- src/wp-content/themes/twentyeleven/content-quote.php	(revision 51821)
+++ src/wp-content/themes/twentyeleven/content-quote.php	(working copy)
@@ -5,7 +5,11 @@
  * @package WordPress
  * @subpackage Twenty_Eleven
  * @since Twenty Eleven 1.0
+ *
+ * @global WP_Locale $wp_locale WordPress date and time locale object.
  */
+
+global $wp_locale;
 ?>
 
 	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
@@ -48,8 +52,7 @@
 			<?php $show_sep = false; ?>
 
 			<?php
-			/* translators: Used between list items, there is a space after the comma. */
-			$categories_list = get_the_category_list( __( ', ', 'twentyeleven' ) );
+			$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 
 			if ( $categories_list ) :
 				?>
@@ -64,7 +67,7 @@
 
 			<?php
 			/* translators: Used between list items, there is a space after the comma. */
-			$tags_list = get_the_tag_list( '', __( ', ', 'twentyeleven' ) );
+			$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 
 			if ( $tags_list && ! is_wp_error( $tags_list ) ) :
 				if ( $show_sep ) :
Index: src/wp-content/themes/twentyeleven/content-single.php
===================================================================
--- src/wp-content/themes/twentyeleven/content-single.php	(revision 51821)
+++ src/wp-content/themes/twentyeleven/content-single.php	(working copy)
@@ -5,7 +5,11 @@
  * @package WordPress
  * @subpackage Twenty_Eleven
  * @since Twenty Eleven 1.0
+ *
+ * @global WP_Locale $wp_locale WordPress date and time locale object.
  */
+
+global $wp_locale;
 ?>
 
 <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
@@ -33,11 +37,9 @@
 
 	<footer class="entry-meta">
 		<?php
-		/* translators: Used between list items, there is a space after the comma. */
-		$categories_list = get_the_category_list( __( ', ', 'twentyeleven' ) );
+		$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 
-		/* translators: Used between list items, there is a space after the comma. */
-		$tags_list = get_the_tag_list( '', __( ', ', 'twentyeleven' ) );
+		$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 
 		if ( $tags_list && ! is_wp_error( $tags_list ) ) {
 			/* translators: 1: Categories list, 2: Tag list, 3: Permalink, 4: Post title, 5: Author name, 6: Author URL. */
Index: src/wp-content/themes/twentyeleven/content.php
===================================================================
--- src/wp-content/themes/twentyeleven/content.php	(revision 51821)
+++ src/wp-content/themes/twentyeleven/content.php	(working copy)
@@ -5,7 +5,11 @@
  * @package WordPress
  * @subpackage Twenty_Eleven
  * @since Twenty Eleven 1.0
+ *
+ * @global WP_Locale $wp_locale WordPress date and time locale object.
  */
+
+global $wp_locale;
 ?>
 
 	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
@@ -55,8 +59,7 @@
 
 			<?php if ( is_object_in_taxonomy( get_post_type(), 'category' ) ) : // Hide category text when not supported. ?>
 				<?php
-				/* translators: Used between list items, there is a space after the comma. */
-				$categories_list = get_the_category_list( __( ', ', 'twentyeleven' ) );
+				$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 
 				if ( $categories_list ) :
 					?>
@@ -72,8 +75,7 @@
 
 			<?php if ( is_object_in_taxonomy( get_post_type(), 'post_tag' ) ) : // Hide tag text when not supported. ?>
 				<?php
-				/* translators: Used between list items, there is a space after the comma. */
-				$tags_list = get_the_tag_list( '', __( ', ', 'twentyeleven' ) );
+				$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 
 				if ( $tags_list && ! is_wp_error( $tags_list ) ) :
 					if ( $show_sep ) :
Index: src/wp-content/themes/twentynineteen/inc/template-tags.php
===================================================================
--- src/wp-content/themes/twentynineteen/inc/template-tags.php	(revision 51821)
+++ src/wp-content/themes/twentynineteen/inc/template-tags.php	(working copy)
@@ -70,8 +70,11 @@
 if ( ! function_exists( 'twentynineteen_entry_footer' ) ) :
 	/**
 	 * Prints HTML with meta information for the categories, tags and comments.
+	 *
+	 * @global WP_Locale $wp_locale WordPress date and time locale object.
 	 */
 	function twentynineteen_entry_footer() {
+		global $wp_locale;
 
 		// Hide author, post date, category and tag text for pages.
 		if ( 'post' === get_post_type() ) {
@@ -82,8 +85,7 @@
 			// Posted on.
 			twentynineteen_posted_on();
 
-			/* translators: Used between list items, there is a space after the comma. */
-			$categories_list = get_the_category_list( __( ', ', 'twentynineteen' ) );
+			$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 			if ( $categories_list ) {
 				printf(
 					/* translators: 1: SVG icon. 2: Posted in label, only visible to screen readers. 3: List of categories. */
@@ -94,8 +96,7 @@
 				); // WPCS: XSS OK.
 			}
 
-			/* translators: Used between list items, there is a space after the comma. */
-			$tags_list = get_the_tag_list( '', __( ', ', 'twentynineteen' ) );
+			$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 			if ( $tags_list && ! is_wp_error( $tags_list ) ) {
 				printf(
 					/* translators: 1: SVG icon. 2: Posted in label, only visible to screen readers. 3: List of tags. */
Index: src/wp-content/themes/twentyseventeen/inc/template-tags.php
===================================================================
--- src/wp-content/themes/twentyseventeen/inc/template-tags.php	(revision 51821)
+++ src/wp-content/themes/twentyseventeen/inc/template-tags.php	(working copy)
@@ -59,11 +59,13 @@
 if ( ! function_exists( 'twentyseventeen_entry_footer' ) ) :
 	/**
 	 * Prints HTML with meta information for the categories, tags and comments.
+	 *
+	 * @global WP_Locale $wp_locale WordPress date and time locale object.
 	 */
 	function twentyseventeen_entry_footer() {
+		global $wp_locale;
 
-		/* translators: Used between list items, there is a space after the comma. */
-		$separate_meta = __( ', ', 'twentyseventeen' );
+		$separate_meta = $wp_locale->get_list_item_separator();
 
 		// Get Categories for posts.
 		$categories_list = get_the_category_list( $separate_meta );
Index: src/wp-content/themes/twentythirteen/functions.php
===================================================================
--- src/wp-content/themes/twentythirteen/functions.php	(revision 51821)
+++ src/wp-content/themes/twentythirteen/functions.php	(working copy)
@@ -480,8 +480,12 @@
 	 * Create your own twentythirteen_entry_meta() to override in a child theme.
 	 *
 	 * @since Twenty Thirteen 1.0
+	 *
+	 * @global WP_Locale $wp_locale WordPress date and time locale object.
 	 */
 	function twentythirteen_entry_meta() {
+		global $wp_locale;
+
 		if ( is_sticky() && is_home() && ! is_paged() ) {
 			echo '<span class="featured-post">' . esc_html__( 'Sticky', 'twentythirteen' ) . '</span>';
 		}
@@ -490,14 +494,12 @@
 			twentythirteen_entry_date();
 		}
 
-		/* translators: Used between list items, there is a space after the comma. */
-		$categories_list = get_the_category_list( __( ', ', 'twentythirteen' ) );
+		$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 		if ( $categories_list ) {
 			echo '<span class="categories-links">' . $categories_list . '</span>';
 		}
 
-		/* translators: Used between list items, there is a space after the comma. */
-		$tags_list = get_the_tag_list( '', __( ', ', 'twentythirteen' ) );
+		$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 		if ( $tags_list && ! is_wp_error( $tags_list ) ) {
 			echo '<span class="tags-links">' . $tags_list . '</span>';
 		}
Index: src/wp-content/themes/twentytwelve/functions.php
===================================================================
--- src/wp-content/themes/twentytwelve/functions.php	(revision 51821)
+++ src/wp-content/themes/twentytwelve/functions.php	(working copy)
@@ -500,14 +500,16 @@
 	 * Create your own twentytwelve_entry_meta() to override in a child theme.
 	 *
 	 * @since Twenty Twelve 1.0
+	 *
+	 * @global WP_Locale $wp_locale WordPress date and time locale object.
 	 */
 	function twentytwelve_entry_meta() {
-		/* translators: Used between list items, there is a space after the comma. */
-		$categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );
+		global $wp_locale;
 
-		/* translators: Used between list items, there is a space after the comma. */
-		$tags_list = get_the_tag_list( '', __( ', ', 'twentytwelve' ) );
+		$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 
+		$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
+
 		$date = sprintf(
 			'<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>',
 			esc_url( get_permalink() ),
Index: src/wp-content/themes/twentytwentyone/inc/template-tags.php
===================================================================
--- src/wp-content/themes/twentytwentyone/inc/template-tags.php	(revision 51821)
+++ src/wp-content/themes/twentytwentyone/inc/template-tags.php	(working copy)
@@ -61,9 +61,12 @@
 	 *
 	 * @since Twenty Twenty-One 1.0
 	 *
+	 * @global WP_Locale $wp_locale WordPress date and time locale object.
+	 *
 	 * @return void
 	 */
 	function twenty_twenty_one_entry_meta_footer() {
+		global $wp_locale;
 
 		// Early exit if not a post.
 		if ( 'post' !== get_post_type() ) {
@@ -100,8 +103,7 @@
 
 				echo '<div class="post-taxonomies">';
 
-				/* translators: Used between list items, there is a space after the comma. */
-				$categories_list = get_the_category_list( __( ', ', 'twentytwentyone' ) );
+				$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 				if ( $categories_list ) {
 					printf(
 						/* translators: %s: List of categories. */
@@ -110,8 +112,7 @@
 					);
 				}
 
-				/* translators: Used between list items, there is a space after the comma. */
-				$tags_list = get_the_tag_list( '', __( ', ', 'twentytwentyone' ) );
+				$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 				if ( $tags_list ) {
 					printf(
 						/* translators: %s: List of tags. */
@@ -144,8 +145,7 @@
 
 				echo '<div class="post-taxonomies">';
 
-				/* translators: Used between list items, there is a space after the comma. */
-				$categories_list = get_the_category_list( __( ', ', 'twentytwentyone' ) );
+				$categories_list = get_the_category_list( $wp_locale->get_list_item_separator() );
 				if ( $categories_list ) {
 					printf(
 						/* translators: %s: List of categories. */
@@ -154,8 +154,7 @@
 					);
 				}
 
-				/* translators: Used between list items, there is a space after the comma. */
-				$tags_list = get_the_tag_list( '', __( ', ', 'twentytwentyone' ) );
+				$tags_list = get_the_tag_list( '', $wp_locale->get_list_item_separator() );
 				if ( $tags_list ) {
 					printf(
 						/* translators: %s: List of tags. */
Index: src/wp-includes/class-wp-locale.php
===================================================================
--- src/wp-includes/class-wp-locale.php	(revision 51821)
+++ src/wp-includes/class-wp-locale.php	(working copy)
@@ -96,6 +96,14 @@
 	public $number_format;
 
 	/**
+	 * The separator string used for localizing list item separator.
+	 *
+	 * @since 5.9.0
+	 * @var string
+	 */
+	public $list_item_separator;
+
+	/**
 	 * Constructor which calls helper methods to set up object variables.
 	 *
 	 * @since 2.1.0
@@ -209,6 +217,9 @@
 
 		$this->number_format['decimal_point'] = ( 'number_format_decimal_point' === $decimal_point ) ? '.' : $decimal_point;
 
+		/* translators: used between list items, there is a space after the comma */
+		$this->list_item_separator = __( ', ' );
+
 		// Set text direction.
 		if ( isset( $GLOBALS['text_direction'] ) ) {
 			$this->text_direction = $GLOBALS['text_direction'];
@@ -366,4 +377,15 @@
 		/* translators: Localized date and time format, see https://www.php.net/manual/datetime.format.php */
 		__( 'F j, Y g:i a' );
 	}
+
+	/**
+	 * Retrieve the localized list item separator.
+	 *
+	 * @since 5.9.0
+	 *
+	 * @return Translated list item separator.
+	 */
+	public function get_list_item_separator() {
+		return $this->list_item_separator;
+	}
 }
Index: src/wp-includes/class-wp-theme.php
===================================================================
--- src/wp-includes/class-wp-theme.php	(revision 51821)
+++ src/wp-includes/class-wp-theme.php	(working copy)
@@ -898,6 +898,8 @@
 	 *
 	 * @since 3.4.0
 	 *
+	 * @global WP_Locale $wp_locale WordPress date and time locale object.
+	 *
 	 * @param string       $header    Theme header. Name, Description, Author, Version, ThemeURI, AuthorURI, Status, Tags.
 	 * @param string|array $value     Value to mark up. An array for Tags header, string otherwise.
 	 * @param string       $translate Whether the header has been translated.
@@ -904,6 +906,8 @@
 	 * @return string Value, marked up.
 	 */
 	private function markup_header( $header, $value, $translate ) {
+		global $wp_locale;
+
 		switch ( $header ) {
 			case 'Name':
 				if ( empty( $value ) ) {
@@ -923,8 +927,7 @@
 			case 'Tags':
 				static $comma = null;
 				if ( ! isset( $comma ) ) {
-					/* translators: Used between list items, there is a space after the comma. */
-					$comma = __( ', ' );
+					$comma = $wp_locale->get_list_item_separator();
 				}
 				$value = implode( $comma, $value );
 				break;
