> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mastermindcms.com/llms.txt
> Use this file to discover all available pages before exploring further.

# TranslationManager

> Übersetzungs-Helper, die msm-components exportiert

`TranslationManager` kapselt i18next und ergänzt Helper zum Laden von Übersetzungen aus MastermindCMS.

## Initialisierung

Bevor du `translate()` verwendest, setze einmal den Pfad zu den Locales JSON Dateien:

```js theme={null}
setLocalesPath("/path/to/locales/{{lng}}.json");
```

Beispiel für öffentliche Locale-Dateien:

```js theme={null}
import { setLocalesPath, translate } from "msm-components/dist/services.js";

setLocalesPath("/admin/assets/locales/{{lng}}.json");
const title = await translate("DashboardTitle");
```

`{{lng}}` wird durch den aktuellen Sprachcode ersetzt. Die Initialisierung erfolgt einmal beim Start der Anwendung.

## Exports

Über `msm-components` kannst du nutzen:

* `setLocalesPath(loadPath)`
* `translate(...args)`
* `translations` (Proxy für Lazy Translation Access)
* `tr(key, repository?)` (lädt/gibt eine einzelne Übersetzung zurück)
* `loadTranslation(key, repository?)`
* `loadManyTranslations(...keys)`
* `loadByLangCodeForEntity(entityId, lang, repository?)`
* `loadByLangCode(key, lang)`
* `loadTranslationById(id)`
* `clearTranslationsCache()`
* `getLanguages()`
* `getAlphabetForActiveLanguage()`

## Beispiele

```js theme={null}
import { loadManyTranslations } from "msm-components/dist/services.js";

const texts = await loadManyTranslations(
  "UserConfirmationDialogTitle",
  "UserConfirmationButtonOk",
  "AbortButton"
);
```

`tr` und `translations` laden Werte bei Bedarf aus dem Übersetzungs-Repository:

```js theme={null}
import { tr, translations } from "msm-components/dist/services.js";

const label = await tr("SaveButton");
const cancelLabel = await translations.CancelButton;
```

## Hinweise

* Wenn `setLocalesPath()` nicht aufgerufen wurde, werfen die Translation-Funktionen einen Fehler, um die Fehlkonfiguration sofort sichtbar zu machen.
* Intern nutzt der Helper den Unified Service-Call Mechanismus (Service/Repository Calls) und hängt damit von der Built-in Client-Instanz ab, die `msm-components` bereitstellt.
