# FINN.translate

Benutzerhandbuch zu FINN.translate: Artikeltexte der SelectLine mit DeepL übersetzen — DeepL-Konto und Glossar einrichten, Artikel auswählen und filtern, Übersetzung prüfen und in die Sprachen der SelectLine importieren. Quelle ist das Repository FINN.ghost unter docs/translate – Änderungen bitte dort vornehmen, Bearbeitungen in BookStack werden beim nächsten Sync überschrieben.

# Überblick

FINN.translate übersetzt die **Artikeltexte** der SelectLine mit DeepL und schreibt das
Ergebnis in die Fremdsprachen des Artikelstamms zurück. Wer bisher Bezeichnungen und
Langtexte für den englischen Shop von Hand übersetzt hat, macht das damit für hunderte
Artikel in einem Durchgang.

## Was das Modul kann

- **Artikeltexte übersetzen** — Bezeichnung, Zusatz, Langtext, Bestelltext und die beiden HTML-Texte.
- **In die Sprachen der SelectLine schreiben** — als Fremdsprachentext am Artikel, dort wo die Warenwirtschaft ihn erwartet.
- **Gezielt auswählen** — über Artikelgruppen, eine Suche oder einen Filter, der auch nach schon vorhandenen Übersetzungen unterscheidet.
- **Vor dem Übernehmen prüfen** — jede Übersetzung lässt sich einzeln ändern, bevor sie in den Mandanten geschrieben wird.

## Wofür es typischerweise eingesetzt wird

| Fall | Was das Modul dabei leistet |
| ---- | --------------------------- |
| **Fremdsprachiger Shop** | die Artikeltexte für den englischen oder französischen Shop entstehen einmalig aus den deutschen — statt Artikel für Artikel von Hand |
| **Belege in der Kundensprache** | Angebote und Rechnungen an ausländische Kunden verwenden die Fremdsprachentexte des Artikels |
| **Sortiment nachziehen** | der Filter zeigt, welchen Artikeln eine Sprache noch fehlt; nur die werden übersetzt |

![Der Weg eines Artikeltextes](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finntranslate-tr-ueberblick-387fc034-ueberblick-ablauf.png)

## Wie es abläuft

Vier Schritte, immer dieselben:

| Schritt | |
| ------- | ---------------------------------------------------------- |
| 1 | **Artikel auswählen** — über Artikelgruppen oder die Suche |
| 2 | **Konfigurieren** — Zielsprache, welche Texte, welche SelectLine-Sprache |
| 3 | **Prüfen** — die Übersetzungen ansehen und bei Bedarf ändern |
| 4 | **Importieren** — schreiben in den Artikelstamm |

<p class="callout success">Der dritte Schritt ist der wichtigste: Zwischen Übersetzen und Schreiben liegt bewusst eine Kontrolle. Nichts landet im Mandanten, ohne dass es jemand gesehen hat.</p>

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

## Kein Automatismus

<p class="callout info">FINN.translate hat <strong>keine Zeitsteuerung</strong>. Es gibt keinen Lauf, der nachts Artikel übersetzt — jede Übersetzung wird von Hand angestoßen. Das ist Absicht: Übersetzungen kosten bei DeepL Zeichenkontingent und gehören angesehen, bevor sie im Artikelstamm stehen.</p>

## Was übersetzt wird

| Feld in der SelectLine | |
| ------------------------ | ------------------------------------------ |
| **Bezeichnung** | die Artikelbezeichnung, max. 80 Zeichen |
| **Zusatz** | die Zusatzbezeichnung, max. 80 Zeichen |
| **Langtext** | der Langtext des Artikels |
| **Bestelltext** | der Bestelltext des Artikels |
| **Langtext (HTML)** | die HTML-Fassung des Langtexts |
| **Bestelltext (HTML)** | die HTML-Fassung des Bestelltexts |

<p class="callout warning">Andere Felder werden nicht angefasst — keine Merkmale, keine Artikelgruppen, keine Einheiten. Wer mehr als diese sechs Texte fremdsprachig braucht, pflegt das in der SelectLine.</p>

## Voraussetzungen

- Ein **DeepL-Konto** mit API-Zugang (Free oder Pro) und dessen API-Schlüssel.
- In der SelectLine angelegte **Sprachen**, in die geschrieben werden soll.
- FINN.translate ist ein eigenes, lizenzpflichtiges Modul.

<p class="callout info">Im Menü heißt das Modul <strong>Übersetzen</strong>, die Startseite trägt den Namen <em>FINN.translate</em> — gemeint ist dasselbe.</p>

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

## Aufbau dieses Handbuchs

| Kapitel | Inhalt |
| ------------------------------- | ------------------------------------------- |
| [Einrichtung](https://wiki.dako-it.com/books/finntranslate/page/vorbereitung-in-der-selectline) | Sprachen, DeepL-Konto, Einstellungen, Glossare |
| [Übersetzen](https://wiki.dako-it.com/books/finntranslate/page/artikel-auswahlen) | auswählen, filtern, konfigurieren, importieren |
| [Laufender Betrieb](https://wiki.dako-it.com/books/finntranslate/page/wenn-etwas-nicht-klappt) | Fehlersuche und häufige Fragen |

# 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)

# Übersetzen

Artikel auswählen und filtern, Übersetzung konfigurieren, prüfen und importieren.

# Artikel auswählen

Der Einstieg über **Übersetzen → Artikel übersetzen**. Von hier führen zwei Wege zu einer
Artikelliste.

<!-- TODO Screenshot: images/uebersetzen-startseite.png -->

## Die zwei Wege

| Weg | Wann |
| ----------------------------------- | ------------------------------------------ |
| **Artikelgruppen auswählen** → *Anzeigen* | der Regelfall: eine oder mehrere Warengruppen am Stück |
| **Alle Artikel durchsuchen** | wenn einzelne Artikel gesucht werden, quer über das Sortiment |

<p class="callout success">Der Weg über Artikelgruppen lädt die Artikel dieser Gruppen vollständig — man sieht sofort, was drin ist. Der Weg über alle Artikel setzt eine Suche voraus, weil das Sortiment sonst zu groß wäre.</p>

Die Gruppenauswahl nimmt **mehrere** Gruppen; gesucht werden kann darin nach Nummer und
Bezeichnung.

## Die Artikelliste

Beide Wege enden in derselben Tabelle:

| Spalte | Inhalt |
| ---------------------- | ---------------------------------------------- |
| **Artikelgruppe** | Nummer und Bezeichnung der Gruppe |
| **Artikelnummer** | |
| **Bezeichnung** | |
| **Zusatz** | |
| **Sprachen** | welche Fremdsprachen am Artikel **schon** vorhanden sind |
| **Langtext**, **Bestelltext** | jeweils gekürzt; der vollständige Text erscheint als Tooltip |
| **HTMLLangtext**, **HTMLBestelltext** | dito |

<p class="callout success">Die Spalte <strong>Sprachen</strong> ist die wichtigste beim Arbeiten: Sie zeigt, welche Übersetzungen es am Artikel bereits gibt. Steht dort <code>EN</code>, würde ein Import in <code>EN</code> die vorhandene Fassung überschreiben.</p>

## Suchen

| | |
| ----------------------- | -------------------------------------------- |
| **Suchfeld** | Artikelnummer oder Bezeichnung |
| **Mindestlänge** | 3 Zeichen |
| **Verzögerung** | die Suche startet kurz nach der letzten Eingabe |

<p class="callout warning">In der Ansicht <em>Alle Artikel</em> bleibt die Tabelle leer, bis mindestens 3 Zeichen eingegeben oder ein Filter gesetzt ist. Das ist kein Fehler, sondern verhindert, dass das ganze Sortiment geladen wird.</p>

In der Ansicht über Artikelgruppen sucht das Feld dagegen innerhalb der bereits geladenen
Artikel.

## Auswählen

| Aktion | Wie |
| ---------------------------- | --------------------------------------- |
| einzelnen Artikel wählen | Häkchen oder Klick auf die Zeile |
| alle Artikel wählen | Symbol **Alle Artikel auswählen** über der Tabelle |
| Auswahl leeren | Symbol **Auswahl zurücksetzen** oder *Auswahl leeren* |
| einzelnen wieder entfernen | am Kreuz des Chips über der Tabelle |

Über der Tabelle stehen die gewählten Artikel als Chips, dazu ihre Anzahl.

<p class="callout warning">„Alle Artikel auswählen" bezieht sich auf die <strong>gerade angezeigten</strong> Artikel — also auf das Ergebnis von Suche und Filter, nicht auf das ganze Sortiment. Vorher also einen Blick auf die Zahl der Treffer werfen.</p>

<p class="callout danger">Die Auswahl ist gleichzeitig die Rechnung bei DeepL: Jeder ausgewählte Artikel wird mit allen gewählten Texten übersetzt. 500 Artikel versehentlich mit ausgewählt heißt 500 Artikel bezahlt.</p>

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

## Weiter zur Konfiguration

Die Schaltfläche **Konfigurieren** oben rechts. Sie bleibt gesperrt, solange kein Artikel
ausgewählt ist.

## Nächster Schritt

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

# Der erweiterte Filter

Hinter dem Filtersymbol über der Tabelle liegt die eigentliche Auswahlmaschine. Sie
entscheidet, welche Artikel überhaupt in der Liste erscheinen — und damit, was übersetzt und
bezahlt wird.

<!-- TODO Screenshot: images/uebersetzen-filter.png -->

<p class="callout info">Am Symbol steht die Zahl der aktiven Kriterien. Über <strong>Zurücksetzen</strong> gehen alle auf einmal zurück.</p>

## Die Kriterien

| Bereich | Möglichkeiten |
| ------------------- | ------------------------------------------------ |
| **Artikelgruppe** | eine oder mehrere Gruppen |
| **Artikelnummer** | *beginnt mit* und *endet mit* |
| **Bezeichnung** | *beginnt mit* und *endet mit* |
| **Zusatz** | *enthält* |
| **Sprachen** | eine Auswahl von Sprachen, dazu **Enthält** / **Enthält nicht** |
| | Häkchen **Nur Artikel ganz ohne Übersetzung** |

## Die Sprachauswahl ist der wichtigste Teil

Damit lässt sich die Menge auf genau die Artikel eingrenzen, die die Übersetzung brauchen:

| Einstellung | Ergebnis |
| ------------------------------------------ | -------------------------------------- |
| Sprachen `EN`, Modus **Enthält** | Artikel, die schon eine englische Fassung haben |
| Sprachen `EN`, Modus **Enthält nicht** | Artikel, denen Englisch **fehlt** |
| Häkchen **Nur Artikel ganz ohne Übersetzung** | Artikel ohne jede Fremdsprache |

<p class="callout success">Für den zweiten Durchgang eines Sortiments ist <em>Enthält nicht</em> die richtige Wahl: Sie liefert genau die Artikel, die seit dem letzten Mal dazugekommen sind. Ohne diesen Filter würde alles erneut übersetzt — und erneut bezahlt.</p>

<p class="callout warning">Das Häkchen <strong>Nur Artikel ganz ohne Übersetzung</strong> hat Vorrang und schaltet die Sprachauswahl aus. Es meint „kein Fremdsprachentext in irgendeiner Sprache" — nicht „kein Text in der ausgewählten Sprache". Wer Englisch nachziehen will, obwohl Französisch schon vorhanden ist, braucht <em>Enthält nicht</em> mit <code>EN</code>, nicht dieses Häkchen.</p>

## Die Vorschau

Rechts im Filter steht, wie viele Artikel die Kriterien treffen, mit einer Liste der Treffer.

<p class="callout success">Der Blick dorthin ist die letzte Gelegenheit, eine zu große Auswahl zu bemerken, bevor sie Geld kostet.</p>

<p class="callout warning">In der Ansicht <em>Alle Artikel</em> zeigt die Vorschau höchstens <strong>200</strong> Treffer und weist darauf hin, dass weiter eingegrenzt werden soll. Die Zahl steht dann mit einem Plus — es sind also mehr. Auch die Tabelle enthält dann nur diese 200; <em>Alle Artikel auswählen</em> wählt entsprechend nur sie aus.</p>

<p class="callout info">In der Ansicht über Artikelgruppen filtert der erweiterte Filter dagegen die bereits geladenen Artikel und zeigt „x von y Artikel".</p>

## Ein sinnvoller Ablauf

1. Artikelgruppe wählen, um den Bereich zu begrenzen.
2. Sprachen auf **Enthält nicht** und die Zielsprache setzen.
3. In die Vorschau sehen: Ist die Zahl plausibel?
4. Filter anwenden, in der Tabelle **Alle Artikel auswählen**.
5. **Konfigurieren**.

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

## Nächster Schritt

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

# Übersetzung konfigurieren

Der Dialog **Konfiguration** entscheidet, was übersetzt wird und wohin das Ergebnis geht.
Vier Angaben, dann läuft die Übersetzung.

<!-- TODO Screenshot: images/uebersetzen-konfiguration.png -->

## Die Felder

| Feld | Inhalt |
| ---------------------------------- | -------------------------------------- |
| **Quellsprache auswählen** | nur bei eingestelltem Glossar; vorbelegt mit Deutsch |
| **Zielsprache auswählen** | in welche Sprache DeepL übersetzt |
| **Zu übersetzende Texte** | welche der sechs Texte mitgehen |
| **Selectline Sprache auswählen** | in welche SelectLine-Sprache geschrieben wird |

**Übersetzung starten** bleibt gesperrt, bis alles Nötige ausgewählt ist.

## Die zwei Sprachen nicht verwechseln

Das ist der Punkt, an dem die meisten Rückfragen entstehen:

| | |
| ------------------------------ | ------------------------------------------ |
| **Zielsprache** | die Sprache, in die DeepL übersetzt — etwa *Englisch (britisch)* |
| **Selectline Sprache** | die Fremdsprache am Artikel, in die das Ergebnis geschrieben wird |

<p class="callout danger">Die beiden hängen technisch nicht zusammen. Man kann englisch übersetzen und in die SelectLine-Sprache <em>Französisch</em> schreiben — das prüft niemand, und in der Warenwirtschaft steht danach der falsche Text unter der falschen Sprache. Beim Einrichten deshalb einmal am Beispielartikel nachsehen, dass das Ergebnis dort landet, wo es hingehört.</p>

<p class="callout info">Die Zielsprachen kommen von DeepL — knapp 40, mit Varianten wie <em>Englisch (britisch)</em>, <em>Portugiesisch (brasilianisch)</em> oder <em>Chinesisch (vereinfacht)</em>. Die SelectLine-Sprachen sind die im Mandanten angelegten.</p>

Siehe [Vorbereitung in der SelectLine](https://wiki.dako-it.com/books/finntranslate/page/vorbereitung-in-der-selectline).

## Zu übersetzende Texte

Vorbelegt sind **alle sechs**:

| | |
| ------------------------ | -------------------------------------- |
| Bezeichnung | max. 80 Zeichen in der SelectLine |
| Zusatz | max. 80 Zeichen in der SelectLine |
| Langtext | |
| Bestelltext | |
| HTMLLangtext | |
| HTMLBestelltext | |

<p class="callout success">Hier gehört ausgewählt statt alles stehengelassen. Jeder Text kostet Zeichen bei DeepL, und die HTML-Fassungen enthalten praktisch denselben Inhalt wie die Nicht-HTML-Fassungen — beides zu übersetzen verdoppelt die Kosten für dasselbe Ergebnis.</p>

<p class="callout info">Welche Fassung gebraucht wird, hängt am Zielsystem: Shopanbindungen lesen meist die HTML-Texte, Belegformulare den einfachen Langtext. Im Zweifel beides — aber bewusst.</p>

<p class="callout warning">Leere Felder werden übersprungen. Ein Artikel ohne Langtext verbraucht dafür also nichts und erscheint in der Ergebnisliste nur mit den Feldern, die gefüllt waren.</p>

## Quellsprache

Erscheint nur, wenn in den Einstellungen ein **Glossar** gewählt ist — dann ist sie
Pflicht.

<p class="callout info">Ohne Glossar erkennt DeepL die Ausgangssprache selbst, je Text. Die erkannte Sprache steht anschließend in der Ergebnisliste, was bei gemischten Artikelstämmen hilfreich ist.</p>

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

## Übersetzung starten

Der Dialog schließt sich, und die Ergebnisliste öffnet sich.

<p class="callout warning">Bis dahin ist im Mandanten <strong>nichts</strong> geändert. Geschrieben wird erst beim Import.</p>

<p class="callout info">Bei vielen Artikeln dauert der Aufruf einen Moment. Wird DeepL nicht innerhalb von 20 Sekunden fertig, bricht er ab und es erscheint eine Fehlermeldung — dann die Auswahl verkleinern.</p>

## Nächster Schritt

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

# Prüfen und importieren

Die Übersetzung liegt vor, im Mandanten steht noch nichts. Dieser Schritt ist die Kontrolle —
und der einzige, der schreibt.

<!-- TODO Screenshot: images/uebersetzen-ergebnis.png -->

## Die Ergebnisliste

Die Ansicht **Übersetzung** zeigt die Texte gruppiert **je Artikel**, mit der Zahl der Felder
je Gruppe. Eine Gruppe lässt sich auf- und zuklappen.

| Spalte | Inhalt |
| ------------------ | ------------------------------------------- |
| **Feld** | Bezeichnung, Zusatz, Langtext, Bestelltext, Langtext (HTML), Bestelltext (HTML) |
| **Original** | der Text aus der SelectLine |
| **Übersetzung** | das Ergebnis von DeepL — **änderbar** |

## Die Übersetzung lässt sich ändern

Jedes Feld in der Spalte **Übersetzung** ist ein Eingabefeld. Was dort steht, wird
importiert.

<p class="callout success">Das ist der Kern des Moduls: DeepL liefert einen Vorschlag, entschieden wird im Haus. Produktnamen richtigstellen, eine zu lange Bezeichnung kürzen, eine Einheit korrigieren — alles hier, vor dem Schreiben.</p>

<p class="callout warning">Bezeichnung und Zusatz fasst die SelectLine auf <strong>80 Zeichen</strong>; längere Texte werden beim Import gekürzt. Diese Liste ist die Stelle, an der man das noch selbst in der Hand hat, statt es hinterher im Artikelstamm zu bemerken.</p>

<p class="callout info">Wird ein Feld geleert, wird es nicht importiert — der bestehende Text in der SelectLine bleibt dann unverändert. So lassen sich einzelne Felder gezielt auslassen.</p>

## Importieren

Die Schaltfläche **Importieren** oben rechts. Vorher kommt die Rückfrage:

> Alle bestehenden Übersetzungen in Selectline werden überschrieben. Fortfahren?

<p class="callout danger">Diese Rückfrage ist ernst gemeint. Für jeden Artikel wird der Fremdsprachentext der gewählten Sprache <strong>ersetzt</strong>, sofern er existiert — auch ein von Hand gepflegter, geprüfter Text. Ein Rückgängig gibt es nicht.</p>

<p class="callout success">Deshalb der Filter <em>Sprachen — Enthält nicht</em> bei der Auswahl: Er begrenzt den Durchgang auf Artikel, bei denen noch nichts zu überschreiben ist.</p>

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

## Was beim Import passiert

| Fall | Ergebnis |
| ------------------------------------------------ | -------------------------------- |
| Artikel hat die Sprache noch nicht | Fremdsprachentext wird **angelegt** |
| Artikel hat die Sprache schon | vorhandene Felder werden **überschrieben** |
| Feld in der Liste leer gelassen | bleibt unverändert |
| Artikelnummer gibt es nicht mehr | Artikel wird übersprungen, Hinweis im Protokoll |

<p class="callout info">Geschrieben wird direkt in den Artikelstamm der Datenbank, nicht über die SelectLine-API. Die Texte stehen deshalb sofort bereit — die SelectLine muss dafür nicht neu geöffnet werden. Läuft sie beim Import bereits mit dem Artikel offen, gehört die Maske einmal neu aufgerufen.</p>

Anschließend meldet die Oberfläche *Übersetzungen erfolgreich importiert*.

## Das Fenster schließen

Über das Kreuz oben links, mit Rückfrage:

> Alle Übersetzungen gehen verloren. Fortfahren?

<p class="callout warning">Wer hier schließt, verwirft das Ergebnis vollständig — auch die bereits von Hand nachgebesserten Texte. Ein zweiter Durchgang kostet erneut Zeichen bei DeepL. Also besser importieren und danach in der SelectLine korrigieren, als eine halb fertige Liste wegwerfen.</p>

## Danach prüfen

| Prüfung | Wo |
| --------------------------------------------- | ------------------------------ |
| Steht der Text an der richtigen Sprache? | am Artikel in der SelectLine |
| Ist die Bezeichnung vollständig oder gekürzt? | dort ebenfalls |
| Zeigt die Spalte **Sprachen** die Sprache? | in der Artikelliste, nach dem Neuladen |

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

## Nächster Schritt

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

# Laufender Betrieb

Fehlersuche und häufige Fragen.

# Wenn etwas nicht klappt

Die Fehlersuche läuft in dieser Reihenfolge: Ist der Zugang zu DeepL in Ordnung? Findet die
Auswahl Artikel? Kommt die Übersetzung an? Und landet sie an der richtigen Stelle?

## Der Menüpunkt Übersetzen fehlt

| Ursache | Abhilfe |
| ------------------------------------------ | ------------------------------ |
| Modul nicht lizenziert | beim Fachhändler erfragen |
| Lizenz eingetragen, aber nicht neu gestartet | Anwendung neu starten |

Siehe [Lizenz und Module](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/lizenz-und-module)
im Systemhandbuch.

## Die Oberfläche springt in die Einstellungen

Mit dem Hinweis *Bitte API Schlüssel in den Einstellungen setzen*. Dann fehlt der
API-Schlüssel. Siehe [Einstellungen](https://wiki.dako-it.com/books/finntranslate/page/einstellungen).

## Fehlermeldung von DeepL beim Übersetzen

Die Meldung wird durchgereicht und enthält den Grund von DeepL.

| Meldung sinngemäß | Ursache |
| ------------------------------------------ | -------------------------------------- |
| Anmeldung abgelehnt | Schlüssel falsch, oder **API Typ** passt nicht zum Schlüssel |
| Kontingent aufgebraucht | das Zeichenkontingent des Monats ist erschöpft |
| Zu viele Anfragen | DeepL bremst; später erneut versuchen |
| Ungültige Zielsprache | Sprachauswahl prüfen |

<p class="callout danger">Der häufigste Fall ist der zweite in der Liste: Ein Free-Schlüssel am Pro-Zugang oder umgekehrt. Free-Schlüssel enden auf <code>:fx</code>.</p>

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

## Die Anfrage ist zu groß

Meldung, dass die maximale Größe überschritten ist. Die Grenze liegt bei **128 KB** Text je
Start — rund 130.000 Zeichen.

| Abhilfe | |
| ------------------------------------ | ---------------------------------- |
| weniger Artikel auswählen | in zwei oder drei Durchgängen |
| weniger Texte auswählen | etwa nur Bezeichnung und Langtext |
| HTML-Fassungen weglassen | sie verdoppeln die Menge |

## Der Aufruf bricht nach einiger Zeit ab

Nach 20 Sekunden ohne Antwort gibt die Schnittstelle auf. Ursache ist meist eine zu große
Auswahl, seltener eine gestörte Internetverbindung.

<p class="callout info">Es ist dann nichts im Mandanten geändert — geschrieben wird erst beim Import.</p>

## Die Artikelliste bleibt leer

| Ansicht | Ursache |
| ------------------------ | ------------------------------------------------ |
| **Alle Artikel** | weniger als 3 Zeichen im Suchfeld und kein Filter gesetzt |
| **Artikelgruppen** | die gewählten Gruppen enthalten keine Artikel |
| beide | der Filter ist zu eng — Zahl in der Vorschau ansehen |

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

## Es erscheinen nur 200 Artikel

<p class="callout info">In der Ansicht <em>Alle Artikel</em> liefert der Filter höchstens 200 Treffer, mit einem Plus an der Zahl und dem Hinweis, weiter einzugrenzen. Wer mehr übersetzen will, arbeitet in Etappen — etwa Artikelgruppe für Artikelgruppe.</p>

## Kein Glossar in der Auswahl

| Ursache | Abhilfe |
| ------------------------------------------ | ---------------------------------- |
| kein API-Schlüssel gespeichert | Schlüssel eintragen und speichern |
| Glossar ohne Begriffspaar | im DeepL-Konto ein Paar anlegen |
| Glossar erst nach dem Aufruf angelegt | Einstellungen neu laden |

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

## Die SelectLine-Sprache fehlt in der Auswahl

<p class="callout danger">Dann ist sie in der SelectLine nicht angelegt. Die Liste kommt aus den Sprachen des Mandanten.</p>

Siehe [Vorbereitung in der SelectLine](https://wiki.dako-it.com/books/finntranslate/page/vorbereitung-in-der-selectline).

## Die Übersetzung steht unter der falschen Sprache

<p class="callout warning">Dann wurden <strong>Zielsprache</strong> und <strong>Selectline Sprache</strong> nicht passend gewählt. Die Schnittstelle prüft das nicht. Korrigiert wird in der SelectLine — oder mit einem erneuten Durchgang in die richtige Sprache.</p>

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

## Die Bezeichnung ist abgeschnitten

Bezeichnung und Zusatz fassen in der SelectLine **80 Zeichen**. Längere Übersetzungen werden
beim Import gekürzt — ohne Meldung.

<p class="callout success">Vorbeugen lässt sich das in der Ergebnisliste: Dort steht die Übersetzung in einem Eingabefeld und kann vor dem Import gekürzt werden.</p>

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

## Ein Artikel wurde nicht importiert

| Ursache | |
| ------------------------------------------------ | -------------------------- |
| die Artikelnummer existiert nicht mehr | Hinweis im Protokoll, Artikel wird übersprungen |
| alle Felder des Artikels waren leer gelassen | nichts zu schreiben |

Das Protokoll steht unter **Log**. Siehe
[Log Informationen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/log-informationen)
im Systemhandbuch.

## Die Texte erscheinen nicht in der SelectLine

| Prüfung | |
| ------------------------------------------------ | -------------------------- |
| War die SelectLine mit dem Artikel offen? | Maske neu aufrufen |
| Stimmt die Sprache, unter der gesucht wird? | Fremdsprachen des Artikels |
| Kam die Meldung *Übersetzungen erfolgreich importiert*? | sonst ins Protokoll sehen |

## Was der Support braucht

- das Protokoll als ZIP-Datei,
- Artikelnummer und Sprache eines betroffenen Beispiels,
- die Angabe, welcher API Typ eingestellt ist.

## Nächster Schritt

[Häufige Fragen](https://wiki.dako-it.com/books/finntranslate/page/haufige-fragen)

# Häufige Fragen

## Brauchen wir ein eigenes DeepL-Konto?

Ja, mit **API-Zugang**. Ein Abo für die Weboberfläche von DeepL genügt nicht. Siehe
[Das DeepL-Konto](https://wiki.dako-it.com/books/finntranslate/page/das-deepl-konto).

## Free oder Pro?

Free zum Ausprobieren, Pro für den Regelbetrieb. Der Schlüssel gehört zum Tarif, und die
Einstellung **API Typ** muss dazu passen. Siehe [Das DeepL-Konto](https://wiki.dako-it.com/books/finntranslate/page/das-deepl-konto).

## Was kostet ein Durchgang?

DeepL rechnet nach übersetzten Zeichen. Grob: Artikelanzahl × Länge der ausgewählten Texte.
Die HTML-Fassungen mitzunehmen verdoppelt das Ergebnis bei gleichem Inhalt. Siehe
[Das DeepL-Konto](https://wiki.dako-it.com/books/finntranslate/page/das-deepl-konto).

## Läuft das Übersetzen automatisch?

Nein. FINN.translate hat keine Zeitsteuerung — jede Übersetzung wird von Hand angestoßen und
vor dem Schreiben geprüft. Siehe [Überblick](https://wiki.dako-it.com/books/finntranslate/page/uberblick).

## Welche Felder werden übersetzt?

Bezeichnung, Zusatz, Langtext, Bestelltext und die beiden HTML-Fassungen. Sonst nichts.
Siehe [Übersetzung konfigurieren](https://wiki.dako-it.com/books/finntranslate/page/ubersetzung-konfigurieren).

## Wohin schreibt das Modul?

In die Fremdsprachentexte des Artikels, in die im Dialog gewählte SelectLine-Sprache. Siehe
[Vorbereitung in der SelectLine](https://wiki.dako-it.com/books/finntranslate/page/vorbereitung-in-der-selectline).

## Warum gibt es zwei Sprachauswahlen?

Die **Zielsprache** sagt DeepL, in welche Sprache übersetzt werden soll; die **Selectline
Sprache** sagt, in welche Fremdsprache am Artikel das Ergebnis geschrieben wird. Dass beides
zusammenpasst, prüft niemand. Siehe [Übersetzung konfigurieren](https://wiki.dako-it.com/books/finntranslate/page/ubersetzung-konfigurieren).

## Werden bestehende Übersetzungen überschrieben?

Ja, für die gewählte Sprache und die gewählten Felder — auch von Hand gepflegte. Ein
Rückgängig gibt es nicht. Siehe [Prüfen und importieren](https://wiki.dako-it.com/books/finntranslate/page/prufen-und-importieren).

## Wie finden wir die Artikel, denen eine Sprache fehlt?

Im erweiterten Filter über **Sprachen** mit dem Modus **Enthält nicht**. Siehe
[Der erweiterte Filter](https://wiki.dako-it.com/books/finntranslate/page/der-erweiterte-filter).

## Was bedeutet „Nur Artikel ganz ohne Übersetzung"?

Artikel ohne Fremdsprachentext in **irgendeiner** Sprache. Wer nur eine fehlende Sprache
nachziehen will, nimmt statt dessen *Enthält nicht*. Siehe
[Der erweiterte Filter](https://wiki.dako-it.com/books/finntranslate/page/der-erweiterte-filter).

## Können wir die Übersetzung vorher ändern?

Ja. In der Ergebnisliste ist jede Übersetzung ein Eingabefeld. Was dort steht, wird
importiert. Siehe [Prüfen und importieren](https://wiki.dako-it.com/books/finntranslate/page/prufen-und-importieren).

## Warum ist eine Bezeichnung abgeschnitten?

Weil die SelectLine bei Bezeichnung und Zusatz **80 Zeichen** fasst. Kürzen lässt sich der
Text vorher in der Ergebnisliste. Siehe [Prüfen und importieren](https://wiki.dako-it.com/books/finntranslate/page/prufen-und-importieren).

## Wozu ein Glossar?

Damit Produktnamen und Fachbegriffe verlässlich gleich — oder gar nicht — übersetzt werden.
Angelegt wird es im DeepL-Konto. Siehe [Glossare](https://wiki.dako-it.com/books/finntranslate/page/glossare).

## Warum verlangt der Dialog plötzlich eine Quellsprache?

Weil ein Glossar eingestellt ist. Ein Glossar gilt für eine Sprachrichtung, deshalb muss die
Ausgangssprache angegeben werden. Siehe [Glossare](https://wiki.dako-it.com/books/finntranslate/page/glossare).

## Können wir mehrere Glossare gleichzeitig nutzen?

Nein, es gilt genau eines. Bei mehreren Sprachen wird die Einstellung zwischen den
Durchgängen gewechselt. Siehe [Glossare](https://wiki.dako-it.com/books/finntranslate/page/glossare).

## Wie viele Artikel gehen in einem Durchgang?

Begrenzt ist nicht die Anzahl, sondern die Textmenge: 128 KB je Start. Bei langen Langtexten
sind das wenige hundert Artikel, bei kurzen Bezeichnungen mehrere tausend. Siehe
[Das DeepL-Konto](https://wiki.dako-it.com/books/finntranslate/page/das-deepl-konto).

## Warum sehen wir nur 200 Artikel?

Das ist die Obergrenze des Filters in der Ansicht *Alle Artikel*. Weiter eingrenzen oder in
Etappen arbeiten. Siehe [Der erweiterte Filter](https://wiki.dako-it.com/books/finntranslate/page/der-erweiterte-filter).

## Die Tabelle bleibt leer, obwohl es Artikel gibt.

In der Ansicht *Alle Artikel* braucht es mindestens 3 Zeichen im Suchfeld oder einen
gesetzten Filter. Siehe [Artikel auswählen](https://wiki.dako-it.com/books/finntranslate/page/artikel-auswahlen).

## Kann man Kundentexte oder Belegtexte übersetzen?

Nein, das Modul arbeitet ausschließlich auf Artikeltexten.

## Werden die Übersetzungen an den Shop übertragen?

Nicht von diesem Modul. Es schreibt in den Artikelstamm; von dort holt die jeweilige
Shopanbindung sie beim nächsten Lauf. Siehe
[FINN.ghost für Shopware6](https://wiki.dako-it.com/books/finnghost-fur-shopware6-wHZ) und
[FINN.ghost für Shopify](https://wiki.dako-it.com/books/finnghost-fur-shopify).

## Womit fangen wir an?

Mit fünf Artikeln, einer Sprache und nur der Bezeichnung — und einem Blick in die SelectLine,
ob der Text dort richtig steht. Am besten in einem Testmandanten.