---
title: "Deprecation: #108810 - BackendUtility localization-related methods"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-108810-1738253894"
source: "Changelog/14.2/Deprecation-108810-BackendUtilityLocalizationMethods.rst"
typo3-version: "14.2"
typo3-major: 14
type: "deprecation"
issue: 108810
forge: "https://forge.typo3.org/issues/108810"
tags: ["PHP-API", "FullyScanned", "ext:backend"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Deprecation: #108810 - BackendUtility localization-related methods {#deprecation-108810-1738253894}

See [forge#108810](https://forge.typo3.org/issues/108810)

## Description {#description}

The following methods in `\TYPO3\CMS\Backend\Utility\BackendUtility` have
been deprecated in favor of new methods in
`\TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository`:

-   `BackendUtility::getRecordLocalization()` \- use
    `LocalizationRepository::getRecordTranslation()` instead
-   `BackendUtility::getExistingPageTranslations()` \- use
    `LocalizationRepository::getPageTranslations()` instead
-   `BackendUtility::translationCount()` \- use
    `LocalizationRepository::getRecordTranslations()` instead

See [Feature: #108799 - LocalizationRepository methods for fetching record translations](https://docs.typo3.org/permalink/changelog:feature-108799-1738094060) for details of the new methods.

## Impact {#impact}

Calling any of the deprecated methods triggers a deprecation-level log entry.
The methods will be removed in TYPO3 v15.0 and result in a fatal PHP
error.

The extension scanner reports usages as a **strong** match.

## Affected installations {#affected-installations}

Instances or extensions that directly call any of the deprecated methods are
affected.

## Migration {#migration}

Inject `LocalizationRepository`
and use the new methods. The new methods return
`\TYPO3\CMS\Core\Domain\RawRecord` objects instead of plain arrays.

### getRecordLocalization() {#getrecordlocalization}

```php
use TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository;
use TYPO3\CMS\Backend\Utility\BackendUtility;

// Before
$translations = BackendUtility::getRecordLocalization($table, $uid, $languageId);
if (is_array($translations) && !empty($translations)) {
    $translation = $translations[0];
}

// After
$translation = $this->localizationRepository->getRecordTranslation($table, $uid, $languageId);
if ($translation !== null) {
    // $translation is a RawRecord object
    $translatedUid = $translation->getUid();
}
```

### getExistingPageTranslations() {#getexistingpagetranslations}

```php
use TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository;
use TYPO3\CMS\Backend\Utility\BackendUtility;

// Before
$pageTranslations = BackendUtility::getExistingPageTranslations($pageUid);

// After
// Returns an array of RawRecord objects indexed by language ID
$pageTranslations = $this->localizationRepository->getPageTranslations($pageUid);
```

### translationCount() {#translationcount}

```php
use TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository;
use TYPO3\CMS\Backend\Utility\BackendUtility;

// Before
$message = BackendUtility::translationCount($table, $uid . ':' . $pid, 'Found %s translation(s)');
// or just counting
$count = (int)BackendUtility::translationCount($table, $uid . ':' . $pid);

// After
$translations = $this->localizationRepository->getRecordTranslations($table, $uid);
$count = count($translations);
$message = sprintf('Found %s translation(s)', $count);
```
