---
title: "Labels"
manual: "Academic Profiles"
version: "main"
source: "Configuration/Labels/Index.rst"
rendered: "2026-10-02T20:47:49+00:00"
---

# Labels {#configuration-labels}

The labels this extension shows in the frontend come from
`EXT:academic_persons/Resources/Private/Language/locallang.xlf` and its
translations; the table below names the ones that come from another file. A site
changes a label without copying a template, in TypoScript:
under `plugin.tx_academicpersons._LOCAL_LANG` for every content element
of the extension, or under `plugin.tx_academicpersons_<plugin>._LOCAL_LANG`
for one of them. A label set for the plugin wins over one set for the extension.

**EXT:my_sitepackage/Configuration/TypoScript/setup.typoscript**

```typoscript
plugin.tx_academicpersons._LOCAL_LANG {
  default.detail.contact = Get in touch
  de.detail.contact = Kontakt
}

# Only in one content element:
plugin.tx_academicpersons_detail._LOCAL_LANG.default.detail.contact = Get in touch
```

The dots of a key need no escaping: TypoScript reads them as levels of its tree,
and TYPO3 joins the levels to the key again. A label of another language goes
under its language key, `de` for German.

| Content element | Path |
| --- | --- |
| **Profile list** (`academicpersons_list`) | `plugin.tx_academicpersons_list._LOCAL_LANG` |
| **Selected profiles** (`academicpersons_selectedprofiles`) | `plugin.tx_academicpersons_selectedprofiles._LOCAL_LANG` |
| **Selected contracts** (`academicpersons_selectedcontracts`) | `plugin.tx_academicpersons_selectedcontracts._LOCAL_LANG` |
| **Profile detail** (`academicpersons_detail`) | `plugin.tx_academicpersons_detail._LOCAL_LANG` |
| **Profile list and detail** (`academicpersons_listanddetail`) | `plugin.tx_academicpersons_listanddetail._LOCAL_LANG` |
| **Profile card** (`academicpersons_card`) | `plugin.tx_academicpersons_card._LOCAL_LANG` |

A language file override works as well, and replaces the label of the file
itself: `$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']` on
TYPO3 v13, `$GLOBALS['TYPO3_CONF_VARS']['LANG']['resourceOverrides']` on
TYPO3 v14.

Earlier versions of this extension read these overrides on TYPO3 v13 from
`plugin.tx_academic_persons` instead, see
[the changelog](../../Changelog/2.4/Important-LabelOverridesUseTheDocumentedPath.html#important-label-overrides-use-the-documented-path).

The subline of the public profile, the help texts of the fields and the headings of
the document sections take a full `LLL:EXT:` reference; the help texts of contract
and contact fields and of document sections also literal text. A translation domain
reference of TYPO3 v14, `LLL:my_sitepackage.messages:key`, does not resolve there:
the translations pass the name of their extension, which TYPO3 then prefers.

The help texts and the section headings are shown by the profile editor, which
translates them with its own name: a site overrides them under
`plugin.tx_academicpersonsedit._LOCAL_LANG`, keyed by the id of the label
in its file.

## Where the labels are shown {#where-the-labels-are-shown}

Placeholders in angle brackets stand for a part of the key that the template
or the code fills in, a category type or a field name for example.

| Key | Shown by |
| --- | --- |
| `contracts.<field>` | `Partials/Profile/Contract/Field.html` |
| `detail.<field>` | `Partials/Profile/PublicProfile/Links.html`, `Partials/Profile/PublicProfile/MenuSections.html`, `Partials/Profile/PublicProfile/MenuSectionsDatas.html`, `Partials/Profile/PublicProfile/ProfileEntries.html` |
| `detail.contact` | `Partials/Profile/PublicProfile/Contact.html` |
| `detail.navigation` | `Partials/Profile/PublicProfile/MenuSections.html` |
| `detail.physicalAddress.<address type>` | `Partials/Profile/PublicProfile/Contact.html` |
| `detail.room` | `Partials/Profile/PublicProfile/Contact.html` |
| `detail.since` | `Partials/Profile/PublicProfile/TimelineItem.html` |
| `detail.till` | `Partials/Profile/PublicProfile/TimelineItem.html` |
| `list.alphabetFilter.navigation` | `Partials/Profile/List/AlphabetPagination.html` |
| `list.alphabetFilter.noProfiles` | `Partials/Profile/List/AlphabetPagination.html` |
| `list.alphabetFilter.showAll` | `Partials/Profile/List/AlphabetPagination.html` |
| `list.filter.functionType` | `Partials/Profile/List/Filter.html` |
| `list.filter.functionType.all` | `Partials/Profile/List/Filter.html` |
| `list.filter.navigation` | `Partials/Profile/List/Filter.html` |
| `list.filter.organisationalUnit` | `Partials/Profile/List/Filter.html` |
| `list.filter.organisationalUnit.all` | `Partials/Profile/List/Filter.html` |
| `list.filter.submit` | `Partials/Profile/List/Filter.html` |
| `list.noContractsFound` | `Partials/Profile/List/EmptyState.html` |
| `list.noProfilesFound` | `Partials/Profile/List/EmptyState.html` |
| `list.table.<column>` | `Partials/Profile/ViewMode/Table.html` |
| `list.viewMode.<view mode>` | `Partials/Profile/ViewMode/Switch.html` |
| `list.viewMode.navigation` | `Partials/Profile/ViewMode/Switch.html` |
| The subline the setting `publicProfile.details.subline` names, a full reference into a language file: the override is keyed by the id of the label in that file | `Partials/Profile/PublicProfile/Subline.html` |
| `widget.pagination.first`, `widget.pagination.previous`, `widget.pagination.next`, `widget.pagination.last` of `EXT:fluid/Resources/Private/Language/locallang.xlf`, read with the extension name of the core extension fluid: from `plugin.tx_fluid._LOCAL_LANG`, shared with every other template that shows them | `Partials/Profile/List/Pagination.html` |
