Translated key => value pairs. */ public static function group( string $key ): array { $messages = self::load(); if ( ! isset( $messages[ $key ] ) || ! is_array( $messages[ $key ] ) ) { return array(); } $translated = array(); foreach ( $messages[ $key ] as $sub_key => $value ) { $translated[ $sub_key ] = __( $value, 'ai-content-by-parallax' ); // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText } return $translated; } /** * Resolve a dot-notation key to a raw string value. * * @param string $key Dot-notation key. * @return string|null Raw value or null if not found. */ private static function resolve( string $key ): ?string { $messages = self::load(); $parts = explode( '.', $key, 2 ); if ( count( $parts ) < 2 ) { return isset( $messages[ $key ] ) && is_string( $messages[ $key ] ) ? $messages[ $key ] : null; } [ $group, $sub_key ] = $parts; if ( isset( $messages[ $group ][ $sub_key ] ) && is_string( $messages[ $group ][ $sub_key ] ) ) { return $messages[ $group ][ $sub_key ]; } return null; } }