---
title: "Labels"
manual: "Academic Jobs"
version: "2.4"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-jobs:configuration-labels@2.4"
source: "Configuration/Labels/Index.rst"
rendered: "2026-10-26T16:44:00+00:00"
---

# Labels {#configuration-labels}

The labels this extension shows in the frontend come from
[`EXT:academic_jobs/Resources/Private/Language/locallang.xlf`](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/Resources/Private/Language.html#file-extension-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_academicjobs._LOCAL_LANG` for every content element
of the extension, or under `plugin.tx_academicjobs_<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_academicjobs._LOCAL_LANG {
  default.jobs.back = All vacancies
  de.jobs.back = Alle Stellen
}

# Only in one content element:
plugin.tx_academicjobs_detail._LOCAL_LANG.default.jobs.back = All vacancies
```

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 |
| --- | --- |
| **Job list** (`academicjobs_list`) | `plugin.tx_academicjobs_list._LOCAL_LANG` |
| **Job detail** (`academicjobs_detail`) | `plugin.tx_academicjobs_detail._LOCAL_LANG` |
| **New job form** (`academicjobs_newjobform`) | `plugin.tx_academicjobs_newjobform._LOCAL_LANG` |

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

Earlier versions of this extension read these overrides on TYPO3 v12 and v13 from
`plugin.tx_academic_jobs` instead, see
[the changelog](https://docs.typo3.org/permalink/fgtclb/academic-jobs:important-label-overrides-use-the-documented-path@2.4).

## 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 |
| --- | --- |
| `create.<field>.error.<code>` | `Partials/Job/Forms/ErrorMessage.html`, see [The messages of a rejected field](https://docs.typo3.org/permalink/fgtclb/academic-jobs:configuration-labels-field-messages@2.4) |
| `create.<field>.label` | `Partials/Job/Forms/FieldWrapper.html` |
| `create.error.<code>` | `Partials/Job/Forms/ErrorMessage.html`, see [The messages of a rejected field](https://docs.typo3.org/permalink/fgtclb/academic-jobs:configuration-labels-field-messages@2.4) |
| `create.job.employmentType.none` | `Partials/Job/Properties/Job.html` |
| `create.job.incorrectValues` | `Partials/Job/Forms/Errors.html` |
| `create.job.type.none` | `Partials/Job/Properties/Job.html` |
| `create.required` | `Partials/Job/Forms/FieldWrapper.html`, the title of the mark of a required field |
| `edit.<field>.placeholder` | `Partials/Job/Forms/Textarea.html`, `Partials/Job/Forms/Textfield.html` |
| `jobs.<property>` | `Partials/Job/Information.html`, `Partials/Job/Item.html` |
| `jobs.<property>.<value>` | `Partials/Job/Information.html`, `Partials/Job/Item.html` |
| `jobs.back` | `Templates/Job/Show.html` |
| `jobs.contact` | `Partials/Job/Contact.html` |
| `jobs.linkText` | `Partials/Job/Information.html`, `Partials/Job/Item.html` |
| `jobs.submit` | `Templates/Job/New.html` |
| `tx_academicjobs.fe.alert.<alert>.title`, `tx_academicjobs.fe.alert.<alert>.body` | The messages after a job is saved |
| `tx_academicjobs_domain_model_job.jobtype.<type>`, `tx_academicjobs_domain_model_job.employmenttype.<type>` | The options of the job type and employment type selects of the form; the labels live in `locallang_be.xlf`, the override is keyed by their id |

## The messages of a rejected field {#configuration-labels-field-messages}

A field of the new job form that was rejected on submit shows a message below
it. The message of an error is the first of these that exists:

1.  The label for the field and the error code, for example
    `create.job.contactEmail.error.1221559976`.
1.  The label for the error code, for example `create.error.1221559976`.
    The extension ships one for each error the shipped validation settings
    produce: a required field left empty, an invalid email address, an invalid
    URL and a date that cannot be read.
1.  The message of the validator or of the conversion of the value.

Each of them is given the arguments of the error, so a label can name the
rejected value with `%s`, for example the text that could not be read as a
date: `create.job.employmentStartDate.error.1307719788` with
`"%s" is no date.`
