diff --git a/typo3/sysext/backend/Classes/Controller/PageLayoutController.php b/typo3/sysext/backend/Classes/Controller/PageLayoutController.php
index cc539391cfe51b38469bebf2fdfd025c738024be..77d02bdab9a4c813a5a5bed4f1f5ec536055d813 100644
--- a/typo3/sysext/backend/Classes/Controller/PageLayoutController.php
+++ b/typo3/sysext/backend/Classes/Controller/PageLayoutController.php
@@ -539,33 +539,8 @@ class PageLayoutController
      */
     protected function getLocalizedPageTitle(): string
     {
-        if ($this->current_sys_language > 0) {
-            $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
-                ->getQueryBuilderForTable('pages');
-            $queryBuilder->getRestrictions()
-                ->removeAll()
-                ->add(GeneralUtility::makeInstance(DeletedRestriction::class))
-                ->add(GeneralUtility::makeInstance(WorkspaceRestriction::class, (int)$this->getBackendUser()->workspace));
-            $localizedPage = $queryBuilder
-                ->select('*')
-                ->from('pages')
-                ->where(
-                    $queryBuilder->expr()->eq(
-                        $GLOBALS['TCA']['pages']['ctrl']['transOrigPointerField'],
-                        $queryBuilder->createNamedParameter($this->id, Connection::PARAM_INT)
-                    ),
-                    $queryBuilder->expr()->eq(
-                        $GLOBALS['TCA']['pages']['ctrl']['languageField'],
-                        $queryBuilder->createNamedParameter($this->current_sys_language, Connection::PARAM_INT)
-                    )
-                )
-                ->setMaxResults(1)
-                ->executeQuery()
-                ->fetchAssociative();
-            BackendUtility::workspaceOL('pages', $localizedPage);
-            return $localizedPage['title'];
-        }
-        return $this->pageinfo['title'];
+        $pageLocalizationRecord = $this->pageRepository->getPageOverlay($this->id, $this->current_sys_language);
+        return $this->current_sys_language <= 0 ? $this->pageinfo['title'] : ($pageLocalizationRecord['title'] ?? '');
     }
 
     /**
@@ -853,35 +828,13 @@ class PageLayoutController
             && $this->current_sys_language > 0
             && $this->isPageEditable($this->current_sys_language)
         ) {
-            $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages');
-            $queryBuilder->getRestrictions()
-                ->removeAll()
-                ->add(GeneralUtility::makeInstance(DeletedRestriction::class))
-                ->add(GeneralUtility::makeInstance(WorkspaceRestriction::class, $this->getBackendUser()->workspace));
-            $overlayRecord = $queryBuilder
-                ->select('uid')
-                ->from('pages')
-                ->where(
-                    $queryBuilder->expr()->eq(
-                        $GLOBALS['TCA']['pages']['ctrl']['transOrigPointerField'],
-                        $queryBuilder->createNamedParameter($this->id, Connection::PARAM_INT)
-                    ),
-                    $queryBuilder->expr()->eq(
-                        $GLOBALS['TCA']['pages']['ctrl']['languageField'],
-                        $queryBuilder->createNamedParameter($this->current_sys_language, Connection::PARAM_INT)
-                    )
-                )
-                ->setMaxResults(1)
-                ->executeQuery()
-                ->fetchAssociative();
-            BackendUtility::workspaceOL('pages', $overlayRecord, $this->getBackendUser()->workspace);
-            // Edit button
+            $overlayRecord = $this->pageRepository->getPageOverlay($this->id, $this->current_sys_language);
             $url = (string)$this->uriBuilder->buildUriFromRoute(
                 'record_edit',
                 [
                     'edit' => [
                         'pages' => [
-                            $overlayRecord['uid'] => 'edit',
+                            $overlayRecord['_PAGES_OVERLAY_UID'] => 'edit',
                         ],
                     ],
                     'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(),