---
title: "Important: Localizing an organisational unit leaves contracts alone"
manual: "Academic Profiles"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-persons:important-localizing-an-organisational-unit-keeps-its-contracts@main"
source: "Changelog/2.4/Important-LocalizingAnOrganisationalUnitKeepsItsContracts.rst"
rendered: "2026-10-15T10:24:29+00:00"
---

# Important: Localizing an organisational unit leaves contracts alone {#important-localizing-an-organisational-unit-keeps-its-contracts}

## Description {#description}

A contract belongs to its profile and is translated with it. The
**Employee Contracts** field of an organisational unit lists the
contracts of its people as an inline relation all the same, and TYPO3 localizes
every inline child of a localized record. Localizing an organisational unit
therefore created a translation of each contract it lists, and one more copy of a
contract that is valid in all languages or in the target language already. A
profile valid in all languages then showed such a contract twice.

Localizing an organisational unit, or copying it into a language, no longer
localizes its contracts. The contracts TYPO3 creates are deleted again when the
localization ends, together with their addresses, e-mail addresses and phone
numbers. For a contract that is translated already, because its profile is
translated, TYPO3 still reports that its localization failed, while nothing is
created. A plain copy of an organisational unit keeps copying its contracts.

## Impact {#impact}

Contracts created by localizing an organisational unit before the update stay.
A contract keeps the organisational unit of its default language record, so a
contract that points to a translation of a unit was created that way. This
query lists them:

```sql
SELECT contract.uid, contract.profile, contract.organisational_unit, contract.sys_language_uid
FROM tx_academicpersons_domain_model_contract AS contract
JOIN tx_academicpersons_domain_model_organisational_unit AS unit ON unit.uid = contract.organisational_unit
WHERE contract.deleted = 0 AND unit.sys_language_uid > 0;
```

Delete them in the backend. The contracts of a profile and their translations
point to the default language unit and are not listed.

## Affected Installations {#affected-installations}

Installations that translate organisational units.
