# Einrichtung

Sprachen in der SelectLine, DeepL-Konto, Einstellungen und Glossare.

# Vorbereitung in der SelectLine

Damit eine Übersetzung ein Ziel hat, braucht die SelectLine die passende **Sprache**. Das ist
die einzige Vorarbeit auf der Warenwirtschaftsseite.

<!-- TODO Screenshot: images/einrichtung-sprachen.png -->

## Die Sprachen

FINN.translate schreibt die Übersetzung als **Fremdsprachentext am Artikel** — in die Sprache,
die im Dialog ausgewählt wird. Zur Auswahl stehen genau die Sprachen, die in der SelectLine
angelegt sind.

<p class="callout danger">Fehlt die Sprache in der SelectLine, erscheint sie im Auswahlfeld <strong>Selectline Sprache auswählen</strong> nicht — und die Übersetzung lässt sich nicht starten. Die Sprache gehört also vorher angelegt.</p>

<p class="callout info">Die Sprachen der SelectLine sind unabhängig von den Sprachen bei DeepL. Man kann eine deutsche Übersetzung in eine Sprache mit dem Kürzel <code>EN</code> schreiben — dass das zusammenpasst, prüft niemand. Die Zuordnung wird im Dialog zweimal getroffen: einmal <em>welche Sprache DeepL übersetzen soll</em> und einmal <em>in welche SelectLine-Sprache das Ergebnis geht</em>.</p>

Siehe [Übersetzung konfigurieren](https://wiki.dako-it.com/books/finntranslate/page/ubersetzung-konfigurieren).

## Wo die Texte landen

Am Artikel unter den Fremdsprachentexten der gewählten Sprache. Dieselbe Stelle, an der man
sie auch von Hand pflegen würde — und dieselbe, aus der Belege und die Shopanbindungen sie
lesen.

| Übersetztes Feld | In der SelectLine |
| ------------------------ | ------------------------------------ |
| Bezeichnung | Bezeichnung der Fremdsprache |
| Zusatz | Zusatz der Fremdsprache |
| Langtext | Langtext der Fremdsprache |
| Bestelltext | Bestelltext der Fremdsprache |
| Langtext (HTML) | HTML-Fassung des Langtexts |
| Bestelltext (HTML) | HTML-Fassung des Bestelltexts |

<p class="callout warning">Existiert für Artikel und Sprache schon ein Fremdsprachentext, wird er <strong>überschrieben</strong>. Existiert er nicht, wird er angelegt. Von Hand gepflegte Übersetzungen gehen dabei verloren — deshalb vor dem Import prüfen, welche Artikel ausgewählt sind.</p>

Siehe [Prüfen und importieren](https://wiki.dako-it.com/books/finntranslate/page/prufen-und-importieren).

## Zeichengrenzen

**Bezeichnung** und **Zusatz** fasst die SelectLine auf **80 Zeichen**. Längere
Übersetzungen werden beim Import auf 80 Zeichen gekürzt.

<p class="callout danger">Das trifft in der Praxis vor allem Englisch → Deutsch und Übersetzungen ins Französische, die gerne länger werden als das Original. Eine Bezeichnung, die im Deutschen 78 Zeichen hat, kann übersetzt abgeschnitten werden — ohne Meldung. Bei langen Bezeichnungen lohnt der Blick in die Ergebnisliste, wo sich der Text vor dem Import noch kürzen lässt.</p>

Für Langtext und Bestelltext gilt diese Grenze nicht.

## Rechte

Der SQL-Benutzer aus den Einstellungen von FINN.ghost schreibt die Texte. Er braucht
Schreibrechte auf die Artikeltabellen des Mandanten — was er für den Betrieb von FINN.ghost
ohnehin hat.

Siehe [Datenbank](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/datenbank)
im Systemhandbuch.

## Nächster Schritt

[Das DeepL-Konto](https://wiki.dako-it.com/books/finntranslate/page/das-deepl-konto)

# Das DeepL-Konto

Übersetzt wird über die **API von DeepL**. Dafür braucht es ein Konto bei DeepL mit
API-Zugang — die Schnittstelle bringt keinen eigenen Zugang mit.

<p class="callout warning">Ein normales DeepL-Abo für die Weboberfläche genügt <strong>nicht</strong>. Gebraucht wird ein Tarif mit <strong>API-Zugang</strong>; nur der liefert einen API-Schlüssel.</p>

## Free oder Pro

DeepL bietet zwei API-Zugänge, und beide sprechen unterschiedliche Adressen an. Welcher
verwendet wird, entscheidet die Einstellung **API Typ**.

| API Typ | Für wen |
| ---------- | -------------------------------------------------------- |
| **Free** | zum Ausprobieren; monatlich begrenztes Zeichenkontingent |
| **Pro** | für den Regelbetrieb; abgerechnet nach übersetzten Zeichen |

<p class="callout danger">Der API-Schlüssel gehört zum Tarif. Ein Free-Schlüssel funktioniert nicht am Pro-Zugang und umgekehrt — beides ergibt eine Anmeldemeldung von DeepL. Wer von Free auf Pro wechselt, muss <strong>beides</strong> ändern: Schlüssel und API Typ.</p>

<p class="callout info">Am Schlüssel selbst ist der Tarif erkennbar: Free-Schlüssel enden auf <code>:fx</code>.</p>

## Den API-Schlüssel holen

Im DeepL-Konto unter den Einstellungen des Kontos im Bereich für die API. Dort steht der
Authentifizierungsschlüssel, der in FINN.ghost eingetragen wird.

<p class="callout warning">Der Schlüssel ist ein Zugang zu einem kostenpflichtigen Dienst. Er gehört nicht in eine Mail und nicht in ein Ticket. In FINN.ghost wird er verschlüsselt gespeichert.</p>

Siehe [Einstellungen](https://wiki.dako-it.com/books/finntranslate/page/einstellungen).

## Was das Übersetzen verbraucht

DeepL rechnet nach **übersetzten Zeichen**. Verbraucht wird bei jedem Start einer
Übersetzung, für jeden Text jedes ausgewählten Artikels.

| Beispiel | Rechnung | Zeichen |
| ------------------------------------------ | ------------------ | ------- |
| 100 Artikel, nur Bezeichnung (ca. 40 Zeichen) | 100 × 40 | 4.000 |
| 100 Artikel, Bezeichnung und Langtext (ca. 600 Zeichen) | 100 × 640 | 64.000 |
| 1.000 Artikel, alle sechs Texte | grob 1.000 × 1.500 | 1.500.000 |

<p class="callout danger">Die dritte Zeile ist der Fall, der schiefgeht: Ein Vollsortiment mit allen Texten sprengt das Kontingent eines Free-Zugangs bei Weitem. Vor dem großen Durchgang deshalb erst mit einer Handvoll Artikel prüfen, ob das Ergebnis taugt — und nur die Texte auswählen, die wirklich gebraucht werden.</p>

<p class="callout success">Ein zweiter Durchgang über dieselben Artikel kostet erneut. Der Filter <em>Nur Artikel ganz ohne Übersetzung</em> ist deshalb nicht nur Bequemlichkeit, sondern spart Geld.</p>

Siehe [Der erweiterte Filter](https://wiki.dako-it.com/books/finntranslate/page/der-erweiterte-filter).

## Grenzen je Übersetzung

| | |
| ------------------------------ | ---------------------------------------- |
| **Größe einer Anfrage** | 128 KB an Text je Start |
| **Wartezeit** | 20 Sekunden, dann bricht der Aufruf ab |

<p class="callout warning">Wird die Größe überschritten, meldet FINN.ghost das und übersetzt nichts. Dann gehört die Auswahl geteilt — etwa in zwei Durchgänge über je die halbe Artikelmenge. Bei langen Langtexten ist die Grenze schneller erreicht, als es die Artikelanzahl vermuten lässt: 128 KB sind rund 130.000 Zeichen.</p>

## Was DeepL zurückliefert

| | |
| ------------------------------- | ------------------------------------------- |
| **Erkannte Quellsprache** | wird je Text mitgeliefert und angezeigt |
| **HTML bleibt HTML** | Auszeichnungen werden erkannt und nicht übersetzt |
| **Qualität vor Geschwindigkeit** | FINN.translate fragt das qualitätsorientierte Modell an |

<p class="callout success">Dass HTML als HTML behandelt wird, ist der Grund, weshalb die HTML-Texte mitgehen können: Tags und Attribute bleiben stehen, nur der Text zwischen ihnen wird übersetzt.</p>

## Nächster Schritt

[Einstellungen](https://wiki.dako-it.com/books/finntranslate/page/einstellungen)

# Einstellungen

Drei Angaben, und das Modul ist einsatzbereit. Zu finden über **Übersetzen →
Einstellungen**.

<!-- TODO Screenshot: images/einrichtung-einstellungen.png -->

## Die Felder

| Feld | Inhalt |
| ------------------- | ------------------------------------------------ |
| **API Schlüssel** | der Authentifizierungsschlüssel aus dem DeepL-Konto |
| **API Typ** | `Free` oder `Pro` — muss zum Schlüssel passen |
| **Glossar** | optional; ein bei DeepL angelegtes Glossar |

Siehe [Das DeepL-Konto](https://wiki.dako-it.com/books/finntranslate/page/das-deepl-konto).

<p class="callout danger">Der API Typ gehört zum Schlüssel. Passt beides nicht zusammen, lehnt DeepL die Anmeldung ab. Free-Schlüssel enden auf <code>:fx</code>.</p>

## Nach dem Speichern lädt die Seite neu

**Speichern** meldet den Erfolg und lädt die Oberfläche kurz darauf neu.

<p class="callout info">Das ist gewollt: Erst danach werden die Glossare von DeepL geholt, und erst danach lässt die Startseite eine Übersetzung zu. Bis dahin wäre der neue Schlüssel nur halb wirksam.</p>

## Das Glossar-Feld bleibt gesperrt

Solange kein API-Schlüssel eingetragen ist, ist die Auswahl **Glossar** nicht bedienbar; im
Hinweis darunter steht *Konfigurieren Sie die API um Glossare anzuzeigen*.

<p class="callout success">Der Grund: Die Glossare kommen von DeepL selbst. Ohne Schlüssel gibt es nichts anzuzeigen. Also erst Schlüssel und API Typ eintragen, speichern — und dann das Glossar wählen.</p>

Siehe [Glossare](https://wiki.dako-it.com/books/finntranslate/page/glossare).

## Ohne Schlüssel geht es nicht weiter

Wird **Artikel übersetzen** ohne eingetragenen Schlüssel aufgerufen, erscheint der Hinweis
*Bitte API Schlüssel in den Einstellungen setzen*, und die Oberfläche wechselt selbst in
die Einstellungen.

<p class="callout info">Das ist kein Fehler, sondern der eingebaute Wegweiser: Ohne Schlüssel kann die Startseite nichts anbieten.</p>

## Wo die Angaben gespeichert werden

In der Konfiguration von FINN.ghost, unter `translate`. Der Schlüssel wird dabei
verschlüsselt abgelegt.

Siehe [Anpassungen über die config.json](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/anpassungen-uber-die-configjson)
im Systemhandbuch.

## Nächster Schritt

[Glossare](https://wiki.dako-it.com/books/finntranslate/page/glossare)

# Glossare

Ein **Glossar** legt fest, wie bestimmte Begriffe übersetzt werden — und wie nicht. Für
einen Artikelstamm ist das der Unterschied zwischen brauchbaren und unbrauchbaren
Übersetzungen.

<p class="callout success">Der klassische Fall sind Eigennamen und Fachbegriffe: Ein Produktname wie <em>Gleitlager Typ K</em> soll nicht übersetzt werden, <em>Nennweite</em> immer gleich heißen und die eigene Marke unverändert bleiben. Ohne Glossar entscheidet DeepL das je Satz neu.</p>

## Angelegt wird es bei DeepL

<p class="callout danger">Glossare werden <strong>im DeepL-Konto</strong> angelegt und gepflegt, nicht hier. FINN.translate zeigt nur die Glossare zur Auswahl, die dort schon existieren.</p>

Ein Glossar besteht aus Begriffspaaren für eine Sprachrichtung — etwa Deutsch → Englisch.

## Auswählen

In den Einstellungen im Feld **Glossar**. Die Liste kommt beim Aufruf direkt von DeepL.

<p class="callout warning">Ein Glossar erscheint nur, wenn es <strong>mindestens ein Begriffspaar</strong> enthält. Ein gerade angelegtes, noch leeres Glossar fehlt in der Liste — das ist kein Fehler der Schnittstelle.</p>

<p class="callout info">Das Feld lässt sich leeren. Dann wird ohne Glossar übersetzt.</p>

Siehe [Einstellungen](https://wiki.dako-it.com/books/finntranslate/page/einstellungen).

## Die Folge: die Quellsprache muss angegeben werden

Sobald ein Glossar ausgewählt ist, verlangt der Übersetzungsdialog zusätzlich eine
**Quellsprache**.

<p class="callout danger">Das ist keine Schikane, sondern eine Vorgabe von DeepL: Ein Glossar gilt für eine Sprachrichtung, also muss die Ausgangssprache bekannt sein. Ohne Glossar erkennt DeepL die Quellsprache selbst; mit Glossar nicht mehr.</p>

Vorbelegt ist **Deutsch**. Siehe [Übersetzung konfigurieren](https://wiki.dako-it.com/books/finntranslate/page/ubersetzung-konfigurieren).

<p class="callout warning">Die angegebene Quellsprache muss zur Sprachrichtung des Glossars passen — und zu den Texten. Steht das Glossar auf Deutsch → Englisch und wird als Quellsprache Englisch gewählt, greift es nicht.</p>

## Nur ein Glossar auf einmal

Es lässt sich genau **ein** Glossar hinterlegen, und es gilt für alle Übersetzungen.

<p class="callout info">Wer in mehrere Sprachen übersetzt und je Sprache ein Glossar braucht, wechselt die Einstellung zwischen den Durchgängen — erst alle Artikel nach Englisch mit dem englischen Glossar, dann die Einstellung ändern und nach Französisch.</p>

## Wenn kein Glossar erscheint

| Ursache | Abhilfe |
| ------------------------------------------ | -------------------------------------- |
| kein API-Schlüssel eingetragen | Schlüssel eintragen und speichern |
| Glossar hat kein Begriffspaar | im DeepL-Konto mindestens ein Paar anlegen |
| Glossar erst nach dem Aufruf angelegt | Einstellungen neu laden |
| Schlüssel gehört zu einem anderen Konto | Schlüssel prüfen |

Siehe [Wenn etwas nicht klappt](https://wiki.dako-it.com/books/finntranslate/page/wenn-etwas-nicht-klappt).

## Nächster Schritt

[Artikel auswählen](https://wiki.dako-it.com/books/finntranslate/page/artikel-auswahlen)