diff --git a/src/content/docs/de/crowdin/integrations/figma.mdx b/src/content/docs/de/crowdin/integrations/figma.mdx
index 6e4f9a810..fa278f7b9 100644
--- a/src/content/docs/de/crowdin/integrations/figma.mdx
+++ b/src/content/docs/de/crowdin/integrations/figma.mdx
@@ -1,6 +1,6 @@
---
title: Figma Plugin
-description: Start localizing at the design stage
+description: Beginne bereits in der Designphase mit der Lokalisierung
slug: figma-plugin
sidebar:
order: 8
@@ -15,15 +15,15 @@ import stringsTab from '!/crowdin/integrations/figma_plugin_strings_tab.png';
import addStrings from '!/crowdin/integrations/figma_plugin_add_strings.png';
import pagesTab from '!/crowdin/integrations/figma_plugin_pages_tab.png';
-Mit dem Crowdin for Figma-Plugin kannst du Texte aus Crowdin in deinen Designs verwenden und so sowohl für Designer als auch für Entwickler Zeit sparen. These could include original or translated texts. Bei Bedarf kannst du neue Texte hinzufügen (z. B. Dialogtitel oder Schaltflächenbeschriftungen) und sie an Übersetzer in Crowdin senden.
+Mit dem Crowdin for Figma-Plugin kannst du Texte aus Crowdin in deinen Designs verwenden und so sowohl für Designer als auch für Entwickler Zeit sparen. Dabei kann es sich um Original- oder übersetzte Texte handeln. Bei Bedarf kannst du neue Texte hinzufügen (z. B. Dialogtitel oder Schaltflächenbeschriftungen) und sie an Übersetzer in Crowdin senden.
-## Use Cases
+## Anwendungsfälle
-* Quickly generate multilingual creative assets.
+* Erstelle schnell mehrsprachige kreative Assets.
* Übersetze Mockups, wobei die ursprüngliche Formatierung und die Stile erhalten bleiben, und teste sie in verschiedenen Sprachen, bevor die Programmierung beginnt.
* Verwende nicht mehr „Lorem Ipsum“, sondern füge stattdessen echte Texte aus Crowdin zu deinen Prototypen hinzu. Aus Crowdin hinzugefügte Strings werden mit den Textfeldern in Figma verknüpft.
* Erstelle Quellstrings in deinen Designs und lade sie in dein Crowdin-Projekt hoch. Erstellte Strings werden mit Textfeldern in Figma verknüpft. Auf diese Weise können Entwickler hochgeladene Strings verwenden und so den Zeitaufwand für die Entwicklung reduzieren.
-* Translate String variables and switch your designs to any translated language.
+* Übersetze String-Variablen und wechsle deine Designs in jede übersetzte Sprache.
* Zeige Übersetzungen und String-Schlüssel in deinen Designs in der Vorschau an.
* Lade Screenshots mit Tags in dein Crowdin-Projekt hoch.
@@ -38,20 +38,20 @@ Mit dem Crowdin for Figma-Plugin kannst du Texte aus Crowdin in deinen Designs v
6. Nachdem du es gespeichert hast, klicke auf das **Crowdin for Figma**-Plugin, um es auszuführen.
-## Configuration
+## Konfiguration
-### Setting up Credentials
+### Anmeldedaten einrichten
Gehe wie folgt vor, um deine Crowdin-Anmeldedaten in Figma anzugeben:
1. Gehe im Dateimenü zu **Plugins > Gespeicherte Plugins**. Alternativ kannst du mit der rechten Maustaste auf die Arbeitsfläche klicken und **Plugins > Gespeicherte Plugins** auswählen.
- 2. Klicke auf **Crowdin for Figma**. The plugin opens on the **Settings** tab.
- 3. Provide your Personal Access Token.
+ 2. Klicke auf **Crowdin for Figma**. Das Plugin wird auf der Registerkarte **Einstellungen** geöffnet.
+ 3. Gib dein persönliches Zugriffstoken ein.
4. Klicke auf **Verbinden**.
@@ -69,27 +69,27 @@ Gehe folgendermaßen vor, um ein neues Token in Crowdin zu generieren:
* **Screenshots** – Gewährt Zugriff auf die Liste der Screenshots, zum Hinzufügen, Abrufen, Ersetzen und Löschen von Screenshots sowie auf den Zugriff und die Bearbeitung von Screenshot-Tags.
-### Selecting a Project
+### Projekt auswählen
Gehe wie folgt vor, um das Crowdin-Projekt auszuwählen, mit dem du arbeiten möchtest:
1. Klicke im Tab **Einstellungen** auf das Dropdown-Menü unter **Crowdin-Projekt** und wähle ein Projekt aus der Liste aus.
2. Wähle den **Inhaltstyp** aus, mit dem du in diesem Projekt arbeiten wirst (z. B. UI-Lokalisierung oder Lokalisierung von Marketingvisuals), und klicke auf **Speichern**. Die ausgewählte Option bestimmt, welcher Modus des Crowdin for Figma-Plugins für dich verfügbar ist.
- 3. *(Optional)* If you work with both types of content in this project, click **Skip** instead of **Save** to have both modes available at once.
+ 3. *(Optional)* Wenn du in diesem Projekt mit beiden Inhaltstypen arbeitest, klicke statt auf **Speichern** auf **Überspringen**, damit beide Modi gleichzeitig verfügbar sind.
4. *(Optional)* Wähle im Abschnitt **Crowdin-Zweig** den spezifischen Zweig aus, in den deine Inhalte hochgeladen werden. Wenn dein Projekt Versionszweige verwendet, kannst du entweder einen vorhandenen auswählen oder direkt in Figma einen neuen erstellen. Andernfalls kannst du diesen Schritt überspringen.
* **So wählst du einen vorhandenen Zweig aus**: Wähle den gewünschten Zweig aus dem Dropdown-Menü aus.
- * **So erstellst du einen neuen Zweig**: Klicke neben dem Zweigfeld auf . Gib im Dialog **Neuer Versionszweig** einen Namen ein und klicke auf **Erstellen**. Der neue Zweig wird in deinem Crowdin-Projekt erstellt und automatisch im Plugin ausgewählt.
+ * **Zum Erstellen eines neuen Branches**: Klicke neben dem Branch-Feld auf . Gib im Dialog **Neuer Versionszweig** einen Namen ein und klicke auf **Erstellen**. Der neue Zweig wird in deinem Crowdin-Projekt erstellt und automatisch im Plugin ausgewählt.
-To switch to another project or change the content type, click **Disconnect** in the **Settings** tab and confirm, then select the project and content type again.
+Um zu einem anderen Projekt zu wechseln oder den Inhaltstyp zu ändern, klicke auf der Registerkarte **Einstellungen** auf **Trennen** und bestätige dies. Wähle anschließend erneut das Projekt und den Inhaltstyp aus.
-
-
+
+
-## UI Localization
+## UI-Lokalisierung
Verwende den Tab **Strings**, wenn du die Benutzeroberfläche lokalisierst und mit deinen Entwicklungs- und Marketingteams an dynamischen Seiten arbeitest. In diesem Tab kannst du Quellstrings mit einem Klick aus Crowdin zu deinen Designs in Figma hinzufügen. Nachdem die Texte in den Designs verwendet wurden, kannst du getaggte Screenshots für die Referenz der Übersetzer automatisch wieder in Crowdin hochladen.
@@ -97,22 +97,22 @@ Verwende den Tab **Strings**, wenn du die Benutzeroberfläche lokalisierst und m
1. Öffne das Crowdin-Plugin für Figma.
- 2. Verwende im Tab **Strings** das Feld **Suchen**, um den gewünschten Text zu finden. You can search strings by source text, string identifier, or context.
+ 2. Verwende im Tab **Strings** das Feld **Suchen**, um den gewünschten Text zu finden. Du kannst Strings nach Quelltext, String-ID oder Kontext suchen.
3. Wähle die Textebene in Figma aus, der du Text hinzufügen möchtest, und klicke im Plugin neben dem gewünschten String auf das Link-Symbol.
Nachdem du die Quellstrings aus Crowdin in deinen Designs verwendet hast, werden sie mit den Textfeldern verknüpft. Du kannst für diese Strings in Figma [Übersetzungen in der Vorschau anzeigen](#previewing-strings) und [Screenshots hochladen](#uploading-tagged-screenshots-to-crowdin) sie deinem Crowdin-Projekt zuordnen.
-Du kannst einen einzelnen Crowdin-String mit einem oder mehreren Textfeldern in Figma verknüpfen. Ein Textfeld kann jedoch nur mit einem einzigen Crowdin-String verknüpft werden. If you link a text field with an existing connection to a new Crowdin string, the previous connection will be terminated, and a new connection will be established. Um einen Crowdin-String von allen Textfeldern zu trennen, mit denen er zuvor verknüpft wurde, klicke mit der rechten Maustaste auf das Link-Symbol neben dem gewünschten String.
+Du kannst einen einzelnen Crowdin-String mit einem oder mehreren Textfeldern in Figma verknüpfen. Ein Textfeld kann jedoch nur mit einem einzigen Crowdin-String verknüpft werden. Wenn du ein Textfeld mit einer bestehenden Verbindung mit einem neuen Crowdin-String verknüpfst, wird die vorherige Verbindung beendet und eine neue Verbindung hergestellt. Um einen Crowdin-String von allen Textfeldern zu trennen, mit denen er zuvor verknüpft wurde, klicke mit der rechten Maustaste auf das Link-Symbol neben dem gewünschten String.
### Verknüpfte Strings verwalten
-Du kannst den Text, den Kontext oder andere Eigenschaften eines Strings direkt im Plugin bearbeiten. Klicke dazu in der String-Liste neben dem entsprechenden String auf das -Symbol. Nimm die gewünschten Änderungen im Bearbeitungsformular vor und klicke auf **Speichern**.
+Du kannst den Text, den Kontext oder andere Eigenschaften eines Strings direkt im Plugin bearbeiten. Klicke dazu in der String-Liste auf das Symbol daneben. Nimm die gewünschten Änderungen im Bearbeitungsformular vor und klicke auf **Speichern**.
In derselben Liste kannst du Strings auch über die entsprechenden Symbole ausblenden oder löschen. Alle von dir vorgenommenen Änderungen werden mit deinem Crowdin-Projekt synchronisiert.
### Quellstrings aus Figma zu Crowdin hinzufügen
@@ -122,18 +122,18 @@ Du kannst Strings hinzufügen, die bereits in den Designs verwendet werden.
1. Öffne das Crowdin-Plugin für Figma.
2. Um die in den Designs verwendeten Strings hinzuzufügen, wähle den gesamten Frame, mehrere Frames oder die gewünschten Textelemente in den Frames aus.
- 3. Klicke im Tab **Strings** auf .
- 4. Überprüfe im angezeigten Dialog die Liste der hinzuzufügenden Strings. Bereits mit einem Crowdin-String verknüpfte Elemente sind mit gekennzeichnet. To add such an element as a new string instead of updating the linked one, click to unlink it, or click **Unlink all** to unlink all of them. Klicke bei Bedarf auf das Filtersymbol , um das Filterfenster zu öffnen und bestimmte Elemente auszuschließen:
+ 3. Im Tab „Strings“ klicke auf .
+ 4. Überprüfe im angezeigten Dialog die Liste der hinzuzufügenden Strings. Bereits mit einem Crowdin-String verknüpfte Elemente sind mit gekennzeichnet. Um ein solches Element als neuen String hinzuzufügen, anstatt den verknüpften zu aktualisieren, klicke auf , um die Verknüpfung aufzuheben, oder klicke auf **Alle Verknüpfungen aufheben**, um die Verknüpfung für alle Elemente aufzuheben. Falls erforderlich, klicke auf das Filtersymbol , um das Filterfenster zu öffnen und bestimmte Elemente auszuschließen:
* Wähle **Ausgeblendete Elemente überspringen**, wenn einige Frames ausgeblendete Elemente enthalten, die nicht zu Crowdin hinzugefügt werden sollen.
* Wähle **Nicht übersetzbare Elemente überspringen**, wenn einige Frames nicht übersetzbare Elemente enthalten, die nicht zu Crowdin hinzugefügt werden sollen.
* Wähle **Gesperrte Elemente überspringen**, um gesperrte Textelemente davon auszuschließen, zur Übersetzung gesendet zu werden. Dies ist hilfreich, wenn bestimmte Texte für den Kontext auf Screenshots sichtbar bleiben, aber nicht als Quellstring zu Crowdin hinzugefügt werden sollen.
5. *(Optional)* Konfiguriere die String-Einstellungen. Du kannst Einstellungen für einzelne Strings anpassen oder die Einstellungen gesammelt auf alle Strings gleichzeitig anwenden:
- * **Individuelle String-Einstellungen**: Klicke neben einem bestimmten String in der Liste auf , um dessen Kontext zu aktualisieren oder die maximale Länge des übersetzten Textes für diese Zeile festzulegen.
- * **String-Standardeinstellungen**: Klicke oben rechts über der String-Liste auf , um die Standardeinstellungen zu öffnen, die auf alle Strings in der Liste angewendet werden. Hier kannst du das [Muster für die Schlüsselnamen](#key-naming-pattern-settings) und die Option **Max. Length Correction (%)** option, which automatically sets a maximum character limit by adding a specified percentage to the original string's length (for example, entering "20" means a 100-character string will have a max length of 120). This helps you avoid text truncation in the localized UI when translations run longer than the source. The changes take effect once you click **Apply**, and you can still override them per string using the individual string settings.
+ * **Individuelle String-Einstellungen**: Klicke neben einem bestimmten String in der Liste auf um dessen Kontext zu aktualisieren oder die maximale Länge des übersetzten Textes für diese Zeile festzulegen.
+ * **Standardeinstellungen für Strings**: Klicke oben rechts über der String-Liste auf um die Standardeinstellungen zu öffnen, die auf alle Strings in der Liste angewendet werden. Hier kannst du das [Muster für die Schlüsselnamen](#key-naming-pattern-settings) und die Option \*\*Max. Mit der Option **Längenkorrektur (%)** wird automatisch ein maximales Zeichenlimit festgelegt, indem ein angegebener Prozentsatz zur Länge des Originalstrings hinzugefügt wird (wenn du beispielsweise „20“ eingibst, darf ein 100 Zeichen langer String maximal 120 Zeichen enthalten). So kannst du verhindern, dass Text in der lokalisierten Benutzeroberfläche abgeschnitten wird, wenn Übersetzungen länger als der Quelltext sind. Die Änderungen werden wirksam, sobald du auf **Anwenden** klickst. Du kannst sie weiterhin für jeden String über dessen individuelle String-Einstellungen überschreiben.
6. Sobald alle benötigten Strings ausgewählt und konfiguriert sind, klicke auf **Weiter**.
7. Wähle auf der nächsten Dialogseite die gewünschten Optionen aus:
- * **Vorhandene Strings automatisch verknüpfen** – Vergleicht die hinzuzufügenden Strings automatisch mit vorhandenen Strings in Crowdin. If there's a match, the text element will be linked to the existing string instead of creating a new one.
- * **Compare strings by key instead of text** – By default, the plugin matches strings by their source text. Enable this option to match them by string identifiers (keys) instead, both when auto-linking and when merging duplicates.
+ * **Vorhandene Strings automatisch verknüpfen** – Vergleicht die hinzuzufügenden Strings automatisch mit vorhandenen Strings in Crowdin. Bei einer Übereinstimmung wird das Textelement mit dem vorhandenen String verknüpft, anstatt einen neuen zu erstellen.
+ * **Strings nach Schlüssel statt nach Text vergleichen** – Standardmäßig gleicht das Plugin Strings anhand ihres Quelltexts ab. Aktiviere diese Option, um sie stattdessen anhand von String-IDs (Schlüsseln) abzugleichen – sowohl beim automatischen Verknüpfen als auch beim Zusammenführen von Duplikaten.
* **Fehlende Schlüssel erstellen** – Nur neue Textelemente werden zu Crowdin hinzugefügt.
* **Duplikate zusammenführen** – Verknüpft identische Textelemente mit einem einzigen neuen String in Crowdin. Wenn du beispielsweise mehrere Schaltflächen mit der Beschriftung `Submit` hinzufügst, fügt das Plugin nur einen String zu deinem Crowdin-Projekt hinzu und verknüpft alle doppelten Textfelder damit.
* *(Optional)* Um den Strings Labels hinzuzufügen, wähle sie alternativ im Dropdown-Menü **Labels** aus.
@@ -153,7 +153,7 @@ Nachdem die Strings zu Crowdin hinzugefügt wurden, wird eine Zusammenfassung de
* **Erstellte Strings**: Die Anzahl der neuen Strings, die deinem Crowdin-Projekt hinzugefügt wurden.
* **Aktualisierte Strings**: Die Anzahl der vorhandenen Strings in Crowdin, die aktualisiert wurden.
* **Verknüpfte Strings**: Die Anzahl der vorhandenen Strings, die mit Elementen in Figma verknüpft wurden.
-* **Verknüpfte Figma-Elemente**: Die Gesamtzahl der Figma-Elemente, die mit Strings in Crowdin verknüpft wurden. This number can be higher than **Strings linked** if multiple elements were linked to a single string.
+* **Verknüpfte Figma-Elemente**: Die Gesamtzahl der Figma-Elemente, die mit Strings in Crowdin verknüpft wurden. Diese Zahl kann höher sein als **Verknüpfte Strings**, wenn mehrere Elemente mit einem einzelnen String verknüpft wurden.
* **Erstellte Screenshots**: Die Anzahl der neuen Screenshots, die zu Crowdin hochgeladen wurden.
* **Aktualisierte Screenshots**: Die Anzahl der vorhandenen Screenshots, die aktualisiert wurden.
@@ -166,9 +166,9 @@ Du kannst Strings mit Pluralformen hinzufügen.
1. Öffne das Crowdin-Plugin für Figma.
2. Um die in den Designs verwendeten Strings hinzuzufügen, wähle den gesamten Frame, mehrere Frames oder die gewünschten Textelemente in den Frames aus.
- 3. Klicke im Tab **Strings** auf .
+ 3. Im Tab „Strings“ klicke auf .
4. Überprüfe im angezeigten Dialog die Liste der Strings.
- 5. Klicke neben dem gewünschten String auf und dann auf **Pluralformen hinzufügen**.
+ 5. Klicke neben dem gewünschten String auf und anschließend auf **Pluralformen hinzufügen**.
6. Fülle im angezeigten Dialog die Felder für jede Pluralform aus und klicke auf **Speichern**. Je nach Ausgangssprache des verbundenen Crowdin-Projekts kann die Anzahl der anzugebenden Pluralformen unterschiedlich sein.
7. Sobald alle benötigten Strings ausgewählt und konfiguriert sind, klicke auf **Weiter**.
8. Wähle die gewünschten Optionen und die Crowdin-Datei aus, der du die Strings hinzufügen möchtest, und klicke dann auf **An Crowdin senden**.
@@ -182,46 +182,46 @@ Du kannst Strings mit Pluralformen hinzufügen.
Mehr über [Pluralformen](/online-editor/#plural-forms) erfahren.
-### Configuring ICU Source String Placeholders
+### ICU-Platzhalter für Quellstrings konfigurieren
-When using ICU strings in your design, you can set the placeholders' values, and after adding such strings to designs, they will be displayed in a formatted view with the preconfigured values.
+Wenn du ICU-Zeichenketten in deinem Design verwendest, kannst du die Werte der Platzhalter festlegen. Nachdem du solche Zeichenketten zu Designs hinzugefügt hast, werden sie in einer formatierten Ansicht mit den vorkonfigurierten Werten angezeigt.
Sobald du den benötigten ICU-String aus Crowdin [in deinem Design verwendest](#using-source-strings-from-crowdin-in-figma), kannst du seine Platzhalterwerte konfigurieren.
1. Öffne das Crowdin-Plugin für Figma.
2. Verwende im Tab **Strings** das Feld **Suchen**, um den gewünschten Text anhand des Quelltexts, der String-ID oder des Kontexts zu finden.
- 3. Click on the needed ICU string.
- 4. Click **Set placeholders**.
- 5. Type the needed values for ICU string placeholders.
+ 3. Klicke beim gewünschten ICU-String auf .
+ 4. Klicke auf **Platzhalter festlegen**.
+ 5. Gib die gewünschten Werte für die Platzhalter des ICU-Strings ein.
6. Klicke auf **Speichern**, um die eingegebenen Platzhalter zu speichern.
7. Klicke auf **Speichern**, um den Quellstringtext in den Designs zu aktualisieren.
Wenn du [Übersetzungen](#previewing-strings) für ICU-Strings in Figma in der Vorschau anzeigst, werden sie ebenfalls in einer formatierten Ansicht dargestellt, wenn die Werte zuvor vorkonfiguriert wurden.
-### Key Naming Pattern Settings
+### Einstellungen für das Schlüsselnamensmuster
-Um das Hinzufügen von Strings aus Figma zum Crowdin-Projekt zu vereinfachen, kannst du das gewünschte Schlüsselnamensmuster für die Quellstring-IDs einrichten. Das Crowdin-Plugin für Figma schlägt anhand des ausgewählten Musters String-IDs für neue Strings vor. While adding new source strings, you can always edit the suggested identifier to the preferred look.
+Um das Hinzufügen von Strings aus Figma zum Crowdin-Projekt zu vereinfachen, kannst du das gewünschte Schlüsselnamensmuster für die Quellstring-IDs einrichten. Das Crowdin-Plugin für Figma schlägt anhand des ausgewählten Musters String-IDs für neue Strings vor. Beim Hinzufügen neuer Quellstrings kannst du die vorgeschlagene ID jederzeit nach deinen Vorstellungen bearbeiten.
-Key naming is configured in the **String Defaults** panel, separately for the **Strings** and **Variables** tabs. To select the key naming pattern, follow these steps:
+Die Schlüsselbenennung wird im Bereich **String-Standardeinstellungen** separat für die Registerkarten **Strings** und **Variablen** konfiguriert. Um das Schlüsselnamensmuster auszuwählen, gehe wie folgt vor:
1. Öffne das Crowdin-Plugin für Figma.
- 2. Start sending the content to Crowdin:
- * **From the Strings tab**: Select the needed text elements and click .
- * **From the Variables tab**: Select the needed variable collections and click **Send to Crowdin**.
- 3. Klicke im angezeigten Dialog oben rechts über der String-Liste auf .
- 4. Wähle im Abschnitt **Muster für Schlüsselnamen** die gewünschte Option aus dem Dropdown-Menü aus und klicke auf **Anwenden**. The plugin regenerates the string keys in the list according to the selected pattern.
+ 2. Beginne damit, den Inhalt an Crowdin zu senden:
+ * **Über die Registerkarte „Strings“**: Wähle die benötigten Textelemente aus und klicke auf .
+ * **Über die Registerkarte „Variablen“**: Wähle die benötigten Variablensammlungen aus und klicke auf **An Crowdin senden**.
+ 3. Klicke im daraufhin angezeigten Dialog oben rechts über der String-Liste auf .
+ 4. Wähle im Abschnitt **Muster für Schlüsselnamen** die gewünschte Option aus dem Dropdown-Menü aus und klicke auf **Anwenden**. Das Plugin generiert die String-Schlüssel in der Liste entsprechend dem ausgewählten Muster neu.
-Besides the existing patterns, you can configure your own pattern. To use a custom pattern, select the **Custom key naming pattern** option from the drop-down list and specify your pattern in the **Custom Key Naming Pattern** field. Gib `[%` in das Feld ein, um die verfügbaren Platzhalter anzuzeigen.
+Neben den vorhandenen Mustern kannst du auch ein eigenes Muster konfigurieren. Um ein benutzerdefiniertes Muster zu verwenden, wähle im Dropdown-Menü die Option **Benutzerdefiniertes Benennungsmuster für Schlüssel** und gib dein Muster im Feld **Benutzerdefiniertes Benennungsmuster für Schlüssel** an. Gib `[%` in das Feld ein, um die verfügbaren Platzhalter anzuzeigen.
-The available placeholders depend on the tab. The **Strings** tab builds keys from the page, frame, and element names (for example, `[%page].[%frame].[%element]`), and the **Variables** tab from the collection, group, and variable names (for example, `[%collection].[%group].[%variable]`).
+Die verfügbaren Platzhalter hängen von der Registerkarte ab. Die Registerkarte **Strings** erstellt Schlüssel aus den Namen von Seite, Frame und Element (z. B. `[%page].[%frame].[%element]`), während die Registerkarte **Variablen** Schlüssel aus den Namen von Sammlung, Gruppe und Variable erstellt (z. B. `[%collection].[%group].[%variable]`).
Zusätzlich kannst du **Schlüsselnamen im camelCase-Stil verwenden** auswählen, um Schlüssel im camelCase-Format (z. B. `siteFooter`) statt im Standardformat snake_case (z. B. `site_footer`) zu generieren.
-### Uploading Tagged Screenshots to Crowdin
+### Getaggte Screenshots zu Crowdin hochladen
Stelle beim [Hinzufügen von in den Designs verwendeten Quellstrings](#adding-source-strings-from-figma-to-crowdin) sicher, dass **Screenshots senden** ausgewählt bleibt. Dadurch lädt das Crowdin-Plugin für Figma Screenshots zusammen mit den Quellstrings hoch.
@@ -232,20 +232,20 @@ Zusätzlich kannst du Screenshots für mit Textfeldern in Designs verknüpfte St
1. Öffne das Crowdin-Plugin für Figma.
2. Wähle einen oder mehrere Frames mit den verknüpften Strings aus.
- 3. Klicke im Tab **Strings** auf **Markierte Screenshots an Crowdin senden**, um Screenshots für die ausgewählten Frames hochzuladen.
+ 3. Im Tab **„Strings“** klicke auf **Getaggte Screenshots an Crowdin senden** um Screenshots für die ausgewählten Frames hochzuladen.
- Read more about [Screenshots](/screenshots/).
+ Weitere Informationen findest du unter [Screenshots](/screenshots/).
-### Previewing Strings
+### Strings in der Vorschau anzeigen
Zeige Übersetzungen aus Crowdin für die in den Designs verwendeten Strings direkt in Figma in der Vorschau an. Standardmäßig werden Vorschauen auf einer neuen, duplizierten Seite erstellt, damit deine ursprünglichen Designs erhalten bleiben.
#### Übersetzungen in der Vorschau anzeigen
-To preview strings populated with translations, follow these steps:
+Um Strings in der Vorschau anzuzeigen, die mit Übersetzungen gefüllt werden, gehe wie folgt vor:
1. Öffne das Crowdin-Plugin für Figma.
@@ -272,23 +272,23 @@ Um Entwicklern das Identifizieren von Strings zu erleichtern, kannst du deine De
5. Wähle die Inhalte aus, die du in Figma in der Vorschau anzeigen möchtest: **Alle Frames** oder **Ausgewählte Frames**.
-### Filtering Strings
+### Filtering Zeichenfolgen
-Du kannst Strings im Tab **Strings** nach verschiedenen Kriterien filtern, z. B. nach Datei oder Verknüpfungsstatus. Klicke auf , um das Filter-Seitenfenster zu öffnen. Hier kannst du Dateien auswählen, deren Strings angezeigt werden sollen, oder nur Strings anzeigen, die mit deiner aktuellen Textauswahl verknüpft sind (z. B. ausgewählte Textelemente, ein ganzer Frame oder mehrere Frames). Klicke auf **Zurücksetzen**, um alle Filteroptionen zu löschen.
+Du kannst Strings im Tab **Strings** nach verschiedenen Kriterien filtern, z. B. nach Datei oder Verknüpfungsstatus. Klicke auf um das Filterseitenfenster zu öffnen. Hier kannst du Dateien auswählen, deren Strings angezeigt werden sollen, oder nur Strings anzeigen, die mit deiner aktuellen Textauswahl verknüpft sind (z. B. ausgewählte Textelemente, ein ganzer Frame oder mehrere Frames). Klicke auf **Zurücksetzen**, um alle Filteroptionen zu löschen.
-## Marketing Visuals Localization
+## Lokalisierung von Marketingvisualisierungen
Verwende den Tab **Seiten**, um statische Seiten wie Broschüren und Banner zu lokalisieren. In diesem Tab kannst du Texte mit Kontext für Übersetzer an Crowdin senden und übersetzte Kopien zurück nach Figma hochladen.
-
-Nach dem Hochladen der Übersetzungen nach Figma enthält die geänderte Datei für jede Zielsprache einen separaten Frame mit den Übersetzungen. The newly uploaded translated versions won’t override the ones you uploaded previously. You can always delete the translated copies you no longer need.
+Nach dem Hochladen der Übersetzungen nach Figma enthält die geänderte Datei für jede Zielsprache einen separaten Frame mit den Übersetzungen. Die neu hochgeladenen übersetzten Versionen überschreiben die zuvor hochgeladenen Versionen nicht. Du kannst übersetzte Kopien, die du nicht mehr benötigst, jederzeit löschen.
Wenn du **Übersetzungen auf der aktuellen Seite zusammenführen** auswählst, werden die übersetzten Frames direkt zu der Seite hinzugefügt, an der du gerade arbeitest.
-If you'd like the newly uploaded translated versions to override the previously uploaded ones, open the plugin **Settings** and select **Override existing translations**.
+Wenn die neu hochgeladenen übersetzten Versionen die zuvor hochgeladenen Versionen überschreiben sollen, öffne die **Einstellungen** des Plugins und aktiviere **Vorhandene Übersetzungen überschreiben**.
-### Using the Plugin with Figma Buzz
+### Plugin mit Figma Buzz verwenden
Das Crowdin for Figma-Plugin ist vollständig mit [Figma's Buzz-Editor](https://www.figma.com/buzz/) kompatibel, einem neuen Bereich zum Erstellen von Marketing- und Werbeinhalten. Diese Integration eignet sich ideal für Teams, die Social-Media-Assets, digitale Anzeigen und andere Werbevisuals lokalisieren.
@@ -350,11 +350,11 @@ Gehe wie folgt vor, um deine Designs in Figma Buzz zu lokalisieren:
## Figma-Variablen übersetzen :badge[Neu]{variant=success}
-Wenn deine Designs [Figma-Variablen](https://help.figma.com/hc/articles/15339657135383) für UI-Texte verwenden, kannst du String-Variablen im Tab **Variablen** übersetzen. In a variable collection, the default mode holds the source text, and each target language gets its own mode. Das Plugin sendet die Werte des Standardmodus als Quellstrings an Crowdin und schreibt die Übersetzungen zurück in die Sprachmodi. Designs, die diese Variablen verwenden, können anschließend nativ in Figma auf jede übersetzte Sprache umgestellt werden.
+Wenn deine Designs [Figma-Variablen](https://help.figma.com/hc/articles/15339657135383) für UI-Texte verwenden, kannst du String-Variablen im Tab **Variablen** übersetzen. In einer Variablensammlung enthält der Standardmodus den Quelltext, und jede Zielsprache erhält ihren eigenen Modus. Das Plugin sendet die Werte des Standardmodus als Quellstrings an Crowdin und schreibt die Übersetzungen zurück in die Sprachmodi. Designs, die diese Variablen verwenden, können anschließend nativ in Figma auf jede übersetzte Sprache umgestellt werden.
-Das Plugin funktioniert mit lokalen Sammlungen von String-Variablen. It skips Color, Number, and Boolean variables, library variables, extended collections, and values that are aliases to other variables.
+Das Plugin funktioniert mit lokalen Sammlungen von String-Variablen. Farb-, Zahlen- und boolesche Variablen, Bibliotheksvariablen, erweiterte Sammlungen und Werte, die Aliase für andere Variablen sind, werden übersprungen.
-Text layers bound to a variable can still be sent as separate strings from the **Strings** tab, but their text is read-only in the string list. Previewing translations on the current page won't change them, so use **Preview in duplicated page** to see the translated text.
+An eine Variable gebundene Textebenen können weiterhin über die Registerkarte **Strings** als separate Strings gesendet werden, ihr Text ist in der String-Liste jedoch schreibgeschützt. Das Anzeigen von Übersetzungen auf der aktuellen Seite ändert diese nicht. Verwende daher **Vorschau auf duplizierter Seite**, um den übersetzten Text zu sehen.
### Variablen an Crowdin senden
@@ -362,14 +362,14 @@ Text layers bound to a variable can still be sent as separate strings from the *
1. Öffne das Crowdin-Plugin für Figma.
2. Wechsle zum Tab **Variablen**.
3. Wähle die Variablensammlungen aus, die du übersetzen möchtest, und klicke auf **An Crowdin senden**.
- 4. Überprüfe die Liste der hinzuzufügenden Strings. String-Schlüssel werden aus den Namen der Sammlung, der Gruppe und der Variablen generiert. Bereits mit einem Crowdin-String verknüpfte Variablen sind mit gekennzeichnet, und du kannst ihre Verknüpfung genauso wie bei Textelementen aufheben. You can edit each string's key and context individually or click above the list to open the same **String Defaults** panel as in the **Strings** tab, where you can configure the [key naming pattern](#key-naming-pattern-settings) and the **Max. Length Correction (%)** option.
- 5. Click **Next** and select the preferred options (the same ones as when [adding source strings from Figma to Crowdin](#adding-source-strings-from-figma-to-crowdin)). Since variable names serve as keys, consider enabling **Compare strings by key instead of text**.
- 6. Wähle im Dropdown-Menü **Datei** die Datei in Crowdin aus, der du die Strings hinzufügen möchtest, und klicke auf **An Crowdin senden**. The button becomes available once a file is selected.
+ 4. Überprüfe die Liste der hinzuzufügenden Strings. String-Schlüssel werden aus den Namen der Sammlung, der Gruppe und der Variablen generiert. Bereits mit einem Crowdin-String verknüpfte Variablen sind mit gekennzeichnet, und du kannst ihre Verknüpfung genauso wie bei Textelementen aufheben. Du kannst den Schlüssel und den Kontext jedes Strings einzeln bearbeiten oder oberhalb der Liste auf klicken, um dasselbe **String-Standardeinstellungen**-Panel wie im Tab **Strings** zu öffnen. Dort kannst du das [Benennungsschema für Schlüssel](#key-naming-pattern-settings) und die **Max. Längenkorrektur (%)** konfigurieren kannst.
+ 5. Klicke auf **Weiter** und wähle die gewünschten Optionen aus (dieselben wie beim [Hinzufügen von Quellstrings aus Figma zu Crowdin](#adding-source-strings-from-figma-to-crowdin)). Da Variablennamen als Schlüssel dienen, solltest du **Strings nach Schlüssel statt nach Text vergleichen** aktivieren.
+ 6. Wähle im Dropdown-Menü **Datei** die Datei in Crowdin aus, der du die Strings hinzufügen möchtest, und klicke auf **An Crowdin senden**. Die Schaltfläche wird verfügbar, sobald eine Datei ausgewählt wurde.
-If you select the **Send screenshots** option, the plugin generates screenshots for translators' reference from the text layers on the current page that use the sent variables.
+Wenn du die Option **Screenshots senden** auswählst, erstellt das Plugin Screenshots als Referenz für Übersetzer aus den Textebenen auf der aktuellen Seite, die die gesendeten Variablen verwenden.
-The [upload summary](#understanding-the-upload-summary) shows the same details as for source strings.
+Die [Upload-Zusammenfassung](#understanding-the-upload-summary) zeigt dieselben Details wie für Quellstrings.
### Übersetzungen mit Modi synchronisieren
@@ -381,7 +381,7 @@ The [upload summary](#understanding-the-upload-summary) shows the same details a
3. Klicke auf **Übersetzungen synchronisieren**.
-For each selected language, the plugin creates or updates a mode named after the [Crowdin language code](/developer/language-codes/) (e.g., `uk`, `zh-CN`) in the selected collections and fills it with translations. Der Standardmodus der Sammlung wird niemals überschrieben und enthält immer deinen Quelltext.
+Für jede ausgewählte Sprache erstellt oder aktualisiert das Plugin in den ausgewählten Sammlungen einen Modus, der nach dem [Crowdin-Sprachcode](/developer/language-codes/) benannt ist (z. B. `uk`, `zh-CN`), und füllt ihn mit Übersetzungen. Der Standardmodus der Sammlung wird niemals überschrieben und enthält immer deinen Quelltext.
-### Sequential Task Management
+### Verwaltung sequenzieller Aufgaben
-* When editing a pending proofreading task, changes are limited to fields that do not affect the scope of the task.
-* Pending proofreading tasks can be deleted if necessary. In this case, linked translation tasks are preserved.
-* Deleting a translation task with an associated sequential proofreading task results in the deletion of both tasks simultaneously.
+* Beim Bearbeiten einer ausstehenden Korrekturleseaufgabe sind Änderungen auf Felder beschränkt, die den Umfang der Aufgabe nicht beeinflussen.
+* Ausstehende Korrekturleseaufgaben können bei Bedarf gelöscht werden. In diesem Fall bleiben die verknüpften Übersetzungsaufgaben erhalten.
+* Durch das Löschen einer Übersetzungsaufgabe mit einer zugehörigen sequenziellen Korrekturleseaufgabe werden beide Aufgaben gleichzeitig gelöscht.
-## Task-based Access Control
+## Aufgabenbasierte Zugriffskontrolle
-Wenn die [aufgabenbasierte Zugriffskontrolle](/project-settings/privacy-collaboration/#privacy) aktiviert ist, haben Übersetzer und Korrekturleser schreibgeschützten Zugriff auf den Editor und können nur über ihnen zugewiesene Aufgaben mit Strings arbeiten. On language pages, users see a notice that active access to strings is available only through assigned tasks. If they try to open content outside those tasks in the Editor, it will be available in read-only mode.
+Wenn die [aufgabenbasierte Zugriffskontrolle](/project-settings/privacy-collaboration/#privacy) aktiviert ist, haben Übersetzer und Korrekturleser schreibgeschützten Zugriff auf den Editor und können nur über ihnen zugewiesene Aufgaben mit Strings arbeiten. Auf den Sprachseiten sehen Benutzer einen Hinweis, dass aktiver Zugriff auf Zeichenfolgen nur über zugewiesene Aufgaben verfügbar ist. Wenn sie versuchen, Inhalte außerhalb dieser Aufgaben im Editor zu öffnen, sind diese im schreibgeschützten Modus verfügbar.
-Im Tab **Aufgaben** können Benutzer weiterhin Aufgabenkarten anzeigen, aktive Aktionen (Übersetzen oder Korrekturlesen) jedoch nur innerhalb der ihnen zugewiesenen Aufgaben ausführen. Regular language permissions are not used to grant translation or approval access while this option is enabled.
+Im Tab **Aufgaben** können Benutzer weiterhin Aufgabenkarten anzeigen, aktive Aktionen (Übersetzen oder Korrekturlesen) jedoch nur innerhalb der ihnen zugewiesenen Aufgaben ausführen. Normale Sprachberechtigungen werden nicht verwendet, um Übersetzungs- oder Genehmigungszugriff zu gewähren, solange diese Option aktiviert ist.
-This restriction applies to translators and proofreaders. Project members with language coordinator permissions or higher keep access according to their roles. For example, a translator with permission to work on French who is assigned to a task in German can work in the Editor only within the assigned German task, while having read-only access to French strings.
+Diese Einschränkung gilt für Übersetzer und Korrekturleser. Projektmitglieder mit Berechtigungen eines Sprachkoordinators oder höher behalten entsprechend ihrer Rolle den Zugriff. Beispielsweise kann ein Übersetzer mit der Berechtigung, an Französisch zu arbeiten, der einer Aufgabe für Deutsch zugewiesen ist, im Editor nur innerhalb der zugewiesenen deutschen Aufgabe arbeiten und hat gleichzeitig schreibgeschützten Zugriff auf französische Zeichenfolgen.
## Siehe auch
-
+
diff --git a/src/content/docs/de/crowdin/translation-process/auto-translation.mdx b/src/content/docs/de/crowdin/translation-process/auto-translation.mdx
new file mode 100644
index 000000000..c844e3460
--- /dev/null
+++ b/src/content/docs/de/crowdin/translation-process/auto-translation.mdx
@@ -0,0 +1,189 @@
+---
+title: Auto-Übersetzung
+description: Beschleunige den Übersetzungsprozess und erleichtere die Arbeit der Übersetzer
+slug: auto-translation
+sidebar:
+ order: 4
+---
+
+import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components';
+import { Icon } from 'astro-icon/components';
+import KBD from '~/components/KBD.astro';
+import ReadMore from '~/components/ReadMore.astro';
+import { Image } from 'astro:assets';
+import preTranslation from '!/crowdin/translation-process/auto_translation.png';
+
+Die Auto-Übersetzung hilft, den Übersetzungsprozess zu beschleunigen und die Arbeit der Übersetzer zu erleichtern. Sie ermöglicht es außerdem, Kosten zu sparen, da ein Teil der Übersetzungen automatisiert werden kann. Du kannst die folgenden Arten der Auto-Übersetzung verwenden und kombinieren:
+
+* **AI Auto-Translate** – verwendet KI-Modelle zur automatischen Übersetzung von Inhalten.
+* **Machine Translation (MT) Auto-Translate** – übernimmt Übersetzungen aus unterstützten Engines für maschinelle Übersetzung (MTE) und wendet sie auf den Projektinhalt an. Du musst mindestens eine der Übersetzungs-Engines konfigurieren, um diese Funktion zu aktivieren.
+* **Translation Memory (TM) Auto-Translate** – übernimmt Übersetzungen aus dem in das System hochgeladenen TM-Speicher und wendet sie auf den Projektinhalt an.
+
+
+
+
+
+
+
+
+
+## Manuelle Auto-Übersetzung
+
+Um die Auto-Übersetzung manuell anzuwenden, gehe wie folgt vor:
+
+
+ 1. Öffne dein Projekt und gehe zum Tab **Dashboard**.
+ 2. Klicke auf **Automatische Übersetzung**.
+ 3. Konfiguriere im Dialog zur Auto-Übersetzung die folgenden Parameter:
+ * **Auto-Translation via** – Wähle deine bevorzugte Methode aus der Dropdown-Liste (**AI**, **Machine Translation** oder **Translation Memory**).
+ * **KI-Prompts** (gilt speziell für die automatische Übersetzung per KI) – Wähle den Prompt aus, der das Verhalten des KI-Modells steuern soll. Klicke auf den Link **Manage prompts**, um vorhandene Prompts zu bearbeiten oder neue hinzuzufügen, oder klicke auf , um den aktuell ausgewählten Prompt anzuzeigen und zu bearbeiten.
+ * **Benutzerdefinierte Anweisung (optional)** (gilt speziell für die automatische Übersetzung per KI) – Füge zusätzlichen Kontext oder spezielle Anweisungen hinzu, um die KI zu steuern (z. B. Ton oder Fachgebiet). Deine Eingabe wird zusammen mit dem ausgewählten Prompt einbezogen.
+ * **Translation engine** (nur bei Auto-Übersetzung über Machine Translation) – Wähle die zu verwendende Engine für maschinelle Übersetzung aus.
+ * **Translation Memories** (nur bei Auto-Übersetzung über Translation Memory) – Zeigt die Translation Memories an, aus denen vorhandene Übersetzungen auf deinen Projektinhalt angewendet werden. Klicke auf **Verwalten**, um die Einstellungen für [Translation Memories](/project-settings/translation-memories/) zu konfigurieren.
+ * **Minimale Übereinstimmungsquote** (gilt speziell für die automatische Übersetzung per Translation Memory) – Wähle **100 %** oder **Perfekt** als erforderliche Mindestähnlichkeit für TM-Übereinstimmungen.
+
+ Weitere Informationen zu [TM-Übereinstimmungstypen](/translation-memory/#tm-match-calculation).
+
+ * **Zielsprachen** – Wähle die Sprachen aus, in die automatisch übersetzt werden soll. Verwende **Search languages**, um die gewünschte Sprache schnell zu finden.
+ 4. Erweitere den Abschnitt **Advanced settings**, um den Auto-Übersetzungsprozess zu optimieren:
+ * Sobald eine Übersetzung mindestens einmal genehmigt wurde, wird dies für alle Workflow-Schritte eines Projekts entsprechend angezeigt. Standardmäßig ist die Quellsprache des Projekts vorausgewählt, du kannst jedoch jede andere Projektsprache auswählen. Dies bietet mehr Flexibilität und kann die Übersetzungsqualität verbessern, da du eine geeignetere vorhandene Übersetzung verwenden kannst (z. B. eine angepasste englische Version statt des ursprünglichen Japanischen) oder direkt zwischen verwandten Sprachen übersetzen kannst (z. B. Spanisch nach Portugiesisch).
+
+ * **Approve added translations** (nur bei Auto-Übersetzung über Translation Memory) – ermöglicht die automatische Genehmigung von Übersetzungen, die durch die Auto-Übersetzung hinzugefügt wurden. Die Optionen umfassen:
+ * Bei Bedarf kann ein Korrekturleser oder Projektmitglied mit Managerberechtigungen (oder höheren Berechtigungen) die Liste der Freigaben für Übersetzungen bearbeiten, die zweimal oder öfter genehmigt wurden, indem einzelne oder alle Freigaben entfernt werden.
+ * Übersetzung mit der zuletzt hinzugefügten Freigabe – Unter den nur einmal genehmigten Übersetzungen hat die Übersetzung mit der zuletzt hinzugefügten Freigabe höchste Priorität.
+ * **All (skip auto-substituted translations)** – Genehmige alles außer Übersetzungen, die durch Auto-Substitution verbessert wurden.
+ * **All** – Genehmige alle hinzugefügten Übersetzungen.
+ * **Filter by labels / Exclude labels** – Schließe bestimmte Strings anhand ihrer zugewiesenen Labels ein oder aus.
+
+ Mehr über [Labels](/string-management/#labels).
+
+
+ 5. Definiere im Abschnitt **Scope**, welche Strings automatisch übersetzt werden sollen:
+ * **Strings to process** – Wähle **Untranslated strings**, **Translated strings (Re-translation)** oder beide aus.
+
+ * **Re-translate only if last modified before** – Beschränke die Neuübersetzung auf Strings, deren vorhandene Übersetzung vor einem bestimmten Datum geändert wurde (Anytime, 7 days ago, 30 days ago, 1 year ago oder Custom). Durch die Auswahl von **Custom** wird eine Datums- und Zeitauswahl geöffnet. Dies ist besonders nützlich, um veraltete Übersetzungen zu aktualisieren, nachdem deinem Projekt neue kontextbezogene Ressourcen wie Screenshots, Styleguides oder Glossare hinzugefügt wurden.
+ * **Wenn bereits eine Übersetzung für diese Zeichenkette vorhanden ist** – wähle aus, wie vorhandene Übersetzungen behandelt werden sollen:
+ * **Add translation alongside existing ones** (Standard)
+ * **Replace auto-generated Übersetzungen (Keep human Übersetzungen)**
+ * **Replace alle existing Übersetzungen**
+ * **Skip approved strings** – Verhindert das Überschreiben von Strings, für die bereits genehmigte Übersetzungen vorhanden sind.
+ * **Allow duplicate translations** – Fügt Übersetzungen auch dann hinzu, wenn sie bereits vorhandenen Übersetzungen entsprechen. Nützlich zum Vergleichen von KI-Prompts oder MT-Engines im Bericht [Genauigkeit der automatischen Übersetzung](/project-reports/#auto-translation-accuracy).
+ * **Reset approval status so proofreaders can re-review** – Entfernt den Genehmigungsstatus aller ersetzten Übersetzungen, sodass sie erneut geprüft und validiert werden können.
+
+ 6. Wähle im Bereich **Dateien** (gilt speziell für [dateibasierte Projekte](/creating-project/#file-based-project)) oder im Bereich **Branches** (gilt speziell für [string-basierte Projekte](/creating-project/#string-based-project)) die Inhalte aus, die automatisch übersetzt werden sollen. Verwende die Suchleiste, um bestimmte Elemente schnell zu finden.
+
+ 7. Klicke auf **Auto-Translate**.
+
+
+
+
+### Dateien und Ordner über das Kontextmenü automatisch übersetzen
+
+Zusätzlich zur Ausführung der Auto-Übersetzung über das **Dashboard** des Projekts kannst du ausgewählte Dateien oder Ordner direkt über die Sprachseite oder **Sources > Files** mithilfe des Kontextmenüs schnell automatisch übersetzen.
+
+#### Auf der Sprachseite
+
+Um eine einzelne Datei oder einen Ordner über die Sprachseite automatisch zu übersetzen, gehe wie folgt vor:
+
+
+ 1. Öffne dein Projekt und wähle die Zielsprache aus.
+ 2. Klicke bei der gewünschten Datei oder dem gewünschten Ordner auf und wähle **Automatisch übersetzen**.
+ 3. Im Dialog zur Auto-Übersetzung sind die Zielsprache und die Datei bzw. der Ordner bereits ausgewählt. Konfiguriere die restlichen Parameter wie im Abschnitt [Manuelle automatische Übersetzung](#manual-auto-translation) beschrieben.
+ 4. Klicke auf **Auto-Translate**.
+
+
+#### Über Sources > Files
+
+Um eine oder mehrere Dateien bzw. Ordner über den Abschnitt **Sources > Files** automatisch zu übersetzen, gehe wie folgt vor:
+
+
+ 1. Öffne dein Projekt und gehe zu **Quellen > Dateien**.
+ 2. Klicke bei der gewünschten Datei oder dem gewünschten Ordner auf (oder mit der rechten Maustaste), oder wähle mit Ctrl, ⌘ oder Shift mehrere Elemente aus und klicke anschließend auf (oder mit der rechten Maustaste).
+ 3. Wähle **Auto-Translate**.
+ 4. Im Dialog zur Auto-Übersetzung sind die ausgewählten Dateien oder Ordner bereits aktiviert. Konfiguriere die restlichen Parameter wie im Abschnitt [Manuelle automatische Übersetzung](#manual-auto-translation) beschrieben.
+ 5. Klicke auf **Auto-Translate**.
+
+
+### Inhalte von Übersetzungsaufgaben automatisch übersetzen
+
+Gehe wie folgt vor, um die in einer Übersetzungsaufgabe enthaltenen Zeichenfolgen automatisch zu übersetzen:
+
+
+ 1. 59–50
+ 2. Klicke im Abschnitt **Board** oder **Alle Aufgaben** auf den Namen der gewünschten Aufgabe.
+ 3. In der Aufgabendetailansicht klicke oben rechts auf und wähle **Automatisch übersetzen**.
+ 4. Im Dialog zur automatischen Übersetzung legt die Aufgabe sowohl die zu verarbeitenden Zeichenfolgen als auch die Zielsprache fest. Konfiguriere die restlichen Parameter wie im Abschnitt [Manuelle automatische Übersetzung](#manual-auto-translation) beschrieben.
+ 5. Klicke auf **Auto-Translate**.
+
+
+
+
+### Auto-Übersetzungswarteschlange
+
+Die Auto-Übersetzungswarteschlange ermöglicht es dir, mehrere manuelle Auto-Übersetzungen über TM, MT oder KI auszulösen, jeweils mit unterschiedlichen Einstellungen. Nach dem Start einer Auto-Übersetzung wird jede Instanz mit dem Status **Pending** in eine Warteschlange aufgenommen.
+
+Beim Auslösen einer manuellen Auto-Übersetzung erhältst du eine Benachrichtigung, dass der Prozess zur Warteschlange hinzugefügt wurde. Um alle derzeit in der Warteschlange befindlichen Auto-Übersetzungen zu überprüfen, gehe in deinem Projekt zu **Tools > Auto-Translation queue**. Alternativ kannst du unten links im Dialog für die automatische Übersetzung auf **Warteschlange anzeigen** klicken, um direkt auf diese Seite weitergeleitet zu werden.
+
+Jeder Eintrag in der Tabelle der Auto-Übersetzungswarteschlange enthält die folgenden Details:
+
+* **Created at:** Zeigt das Datum und die Uhrzeit an, zu der die Auto-Übersetzung gestartet wurde.
+* **Type:** Zeigt die verwendete Methode und die jeweilige Engine oder den verwendeten Prompt an (z. B. KI, Name der MT-Engine). Bei automatischen Übersetzungen, die über eine Aufgabe gestartet werden, werden auch die Aufgabennummer und der Titel angezeigt.
+* **Priority:** Gibt die Ausführungspriorität des Auftrags an (niedrig, normal, hoch). Wenn die aktive Auto-Übersetzung abgeschlossen ist, wählt das System als Nächstes den ausstehenden Auftrag mit der höchsten Priorität aus. Wenn mehrere Aufträge dieselbe Prioritätsstufe haben, werden sie in der Reihenfolge ihrer Erstellung ausgeführt.
+* **Status:** Pending, In progress, Completed, Failed oder Canceled. Wenn ein Auftrag fehlschlägt, fährt das System automatisch mit dem nächsten ausstehenden Auftrag in der Warteschlange fort, ohne ihn zu blockieren.
+* **Started at:** Datum und Uhrzeit, zu der der Prozess begonnen hat.
+* **Finished at:** Datum und Uhrzeit, zu der der Prozess abgeschlossen wurde.
+
+Mit der Schaltfläche **Filters** kannst du die Warteschlange nach bestimmten Status, Prioritäten oder Typen filtern.
+
+Du kannst ausstehende Aufträge auch einzeln oder gesammelt verwalten. Wähle die Kontrollkästchen neben den relevanten ausstehenden Einträgen aus, um deren Priorität zu ändern oder sie gleichzeitig über die Schaltflächen **Cancel Auto-Translation Jobs** und zur Priorität in der oberen Symbolleiste abzubrechen.
+
+Bei abgeschlossenen Auto-Übersetzungen kannst du einen Bericht mit den Ergebnissen anzeigen, einschließlich der Zielsprachen, einer Liste der verarbeiteten Dateien, der Anzahl hinzugefügter Übersetzungen und der Anzahl übersprungener Übersetzungen mit einer Aufschlüsselung nach Kategorie (z. B. in TM fehlend, QA-Problem).
+
+Um eine automatische Übersetzung zu wiederholen, klicke beim entsprechenden Eintrag auf und wähle **Erneut versuchen**. Dadurch wird der Dialog zur Auto-Übersetzung mit allen ursprünglichen Einstellungen geöffnet, sodass du den Prozess schnell erneut starten kannst, ohne ihn manuell neu zu konfigurieren. Dies ist besonders hilfreich, wenn ein Versuch der Auto-Übersetzung fehlschlägt oder du dieselbe Konfiguration erneut anwenden musst.
+
+
+
+## Neue Inhalte automatisch übersetzen
+
+Du kannst die automatische Übersetzung unter **Einstellungen > Automatisch übersetzen** im Projekt automatisieren. In diesem Fall löst das System jedes Mal, wenn du neue Inhalte in dein Projekt hochlädst, automatisch die Übersetzung aus und wendet Übersetzungen auf noch nicht übersetzte Inhalte an.
+
+
+ Mehr über [Neue Inhalte automatisch übersetzen](/project-settings/auto-translate/) erfährst du hier.
+
+
+## QA-Probleme bei der Auto-Übersetzung über KI behandeln
+
+Wenn der KI-Anbieter während der automatischen Übersetzung Übersetzungen mit QA-Problemen zurückgibt, sammelt Crowdin die Strings, auf die diese fehlerhaften Übersetzungen angewendet wurden, und startet die automatische Übersetzung automatisch erneut. Die betroffenen Strings werden zusammen mit Details zu den erkannten QA-Problemen an den KI-Anbieter zurückgesendet, damit die Übersetzungen korrigiert werden und den Qualitätsstandards entsprechen.
+
+## Priorität der Translation Memory bei der Auto-Übersetzung über TM
+
+Bei der automatischen Übersetzung über TM und aktivierter Option **TMs teilen** wendet Crowdin Übersetzungen aus Translation Memories nach einer festgelegten Prioritätsreihenfolge an. Diese Priorität stellt sicher, dass Übersetzungen aus der relevantesten Quelle stammen und Konsistenz und Qualität der Übersetzungen optimiert werden.
+
+Die Prioritätsreihenfolge lautet:
+
+1. **Default TM**: Übereinstimmungen werden zuerst im Standard-TM des Projekts gesucht.
+2. **Assigned TMs**: Wenn im Standard-TM keine Übereinstimmung gefunden wird, sucht das System in den TMs weiter, die dem Projekt speziell zugewiesen wurden.
+3. **Shared TMs**: Wenn im Standard-TM oder in den zugewiesenen TMs keine Übereinstimmung gefunden wird, werden Übersetzungen aus gemeinsam genutzten TMs abgerufen, die für das Projekt verfügbar sind.
+
+Diese Reihenfolge ermöglicht es Crowdin, Übersetzungen zuerst aus der relevantesten TM-Quelle anzuwenden, sodass bei mehreren verfügbaren TMs hochwertige Übereinstimmungen bevorzugt werden.
diff --git a/src/content/docs/de/crowdin/translation-process/crowdin-ai.mdx b/src/content/docs/de/crowdin/translation-process/crowdin-ai.mdx
new file mode 100644
index 000000000..91af46997
--- /dev/null
+++ b/src/content/docs/de/crowdin/translation-process/crowdin-ai.mdx
@@ -0,0 +1,567 @@
+---
+title: Crowdin AI
+description: Leistungsstarke KI-Funktionen zur Verbesserung von Lokalisierungsabläufen
+slug: crowdin-ai
+sidebar:
+ order: 1
+---
+
+import { Steps, Aside, LinkCard } from '@astrojs/starlight/components';
+import { Icon } from 'astro-icon/components';
+import { Badge } from '@astrojs/starlight/components';
+import ReadMore from '~/components/ReadMore.astro';
+
+Crowdin lässt sich mit führenden KI-Anbietern wie OpenAI, Google Gemini, Microsoft Azure OpenAI und weiteren integrieren. So kannst du fortschrittliche KI-gestützte Übersetzungen nutzen, die zusätzlichen Kontext auf verschiedenen Ebenen berücksichtigen. Diese Übersetzungen kannst du mit wenigen Klicks mithilfe der [automatischen Übersetzung über KI](#auto-translation-via-ai) auf deine Inhalte anwenden. Außerdem kann KI in Crowdin für [KI-Vorschläge im Editor](#using-ai-in-the-editor), [KI-QA-Prüfungen](#ai-qa-check) und die [Überprüfung der Qualität des Zeichenfolgenkontexts](#advisor-string-context-review) verwendet werden.
+
+Du kannst deine Auswahl an KI-Anbietern erweitern, indem du die entsprechenden Anwendungen aus dem Crowdin [Store](https://store.crowdin.com/tags/ai) installierst.
+
+## KI konfigurieren
+
+Die Crowdin-AI-Integration bietet leistungsstarke Funktionen zur Verbesserung von Lokalisierungsabläufen. Zur Konfiguration von KI gehören das [Einrichten von Anbietern](#configuring-ai-providers) und das [Erstellen von Prompts](#configuring-ai-prompts).
+
+
+
+### KI-Prompts konfigurieren
+
+Prompt Engineering ist entscheidend, um die KI beim Verständnis von Kontext zu unterstützen und genaue Übersetzungen bereitzustellen. Durch die Anpassung von Prompts innerhalb von Crowdin können KI-Algorithmen die Besonderheiten deines Projekts besser verstehen, was zu einer höheren Übersetzungsqualität führt.
+
+* **Kontextbezogene Prompts** – Passe Prompts an, um Kontextinformationen wie projektspezifische Terminologie, Stileinstellungen und die Anforderungen der Zielgruppe bereitzustellen. Füge beispielsweise Anweisungen hinzu, um technische Begriffe konsistent zu übersetzen oder den Markenstil über verschiedene Sprachen hinweg beizubehalten.
+* **Platzhalter verwenden** – Baue Platzhalter ein, um kontextspezifische Informationen dynamisch in Prompts einzufügen, sodass die KI Übersetzungen erstellen kann, die auf die Projektanforderungen abgestimmt sind.
+* **Kontext auf Dateiebene** – Verwende Kontext auf Dateiebene, um Anweisungen und kontextbezogene Informationen bereitzustellen und so das Verständnis der KI für die inhaltlichen Besonderheiten zu verbessern. Füge Dateibeschreibungen, Zusammenfassungen oder Verweise auf Glossare und Style Guides hinzu.
+
+Führe die folgenden Schritte aus, um KI-Prompts zu konfigurieren:
+
+
+ 1. Öffne dein Profil und wähle links in der Seitenleiste **KI** aus.
+ 2. Klicke im Tab **Prompts** auf **Prompt hinzufügen**. Wenn noch keine Prompts erstellt wurden, kannst du auf **Standard-Prompts erstellen** klicken, um schnell vorkonfigurierte Beispiele einzurichten, die du an deine persönlichen Präferenzen anpassen kannst.
+ 3. Lege im geöffneten Dialog die Prompt-Parameter fest:
+ * Wähle den Prompt-Typ aus (z. B. [Automatische Übersetzung und KI-Vorschlag](#auto-translation-via-ai), [QA-Prüfung](#ai-qa-check), [Überprüfung des Zeichenfolgenkontexts durch Advisors](#advisor-string-context-review) oder benutzerdefinierten Typ erstellen).
+ * Name des benutzerdefinierten Typs (gilt nur für den benutzerdefinierten Prompt-Typ)
+ * Verwende diesen Prompt als Standard-Prompt für KI-Vorschläge im Editor (gilt nur für den Prompt-Typ „Automatische Übersetzung und KI-Vorschlag“).
+ * Titel
+ * Modell (einschließlich des KI-Anbieters)
+ * Erweiterte Einstellungen:
+ * Sichtbarkeit – Wähle Projekte aus, in denen ein Prompt verwendet werden kann:
+ * Alle Projekte – Der Prompt ist in allen Projekten verfügbar.
+ * Ausgewählte Projekte – Der Prompt ist nur in den von dir ausgewählten Projekten verfügbar. Wenn keine Projekte ausgewählt sind oder alle zugewiesenen Projekte später gelöscht werden, ist der Prompt in keinem Projekt verfügbar.
+ * Automatischer erneuter Versuch bei QA-Problemen – Ermöglicht, automatisch eine zusätzliche Anfrage an die KI zu senden, wenn die erhaltene Übersetzung die QA-Prüfungen nicht besteht.
+ * Prompt-Editor-Modus (z. B. Einfach oder Erweitert)
+ * Zusätzlicher Kontext (Einfach-Modus) – Lege fest, welche Daten mithilfe der folgenden Felder in den Prompt aufgenommen werden:
+
+ * Übersetzungen anderer Sprachen – Wähle bestimmte Sprachübersetzungen aus, die von der KI als zusätzlicher Kontext berücksichtigt werden sollen, oder lasse dieses Feld unverändert, um Übersetzungen aus allen Sprachen zu verwenden.
+ * Glossarbegriffe – Ermöglicht der KI, domänenspezifische Glossarbegriffe zu berücksichtigen.
+ * TM-Vorschläge – Ermöglicht der KI, TM-Vorschläge zu berücksichtigen.
+ * Style Guides – Ermöglicht der KI, die in den dem Projekt zugewiesenen Style Guides definierten Regeln, den Ton und die sprachlichen Präferenzen zu berücksichtigen.
+ * Vorherige und nächste Zeichenfolgen – Ermöglicht der KI, vorherige und nächste Zeichenfolgen als zusätzlichen Kontext zu berücksichtigen.
+ * Dateikontext – Ermöglicht der KI, eine Textbeschreibung der in den [Dateieinstellungen](/file-management/#file-context) oder im [Editor](/online-editor/#file-context) hinzugefügten Datei zu berücksichtigen.
+ * Von der KI generierter Dateikontext – Generiert automatisch Dateikontext, wenn dieser fehlt. Wenn der Dateikontext nicht manuell bereitgestellt wird, analysiert die KI den Quellinhalt und erstellt eine kontextbezogene Zusammenfassung. Diese Zusammenfassung wird sowohl bei der automatischen Übersetzung als auch als Referenzmaterial im Editor verwendet.
+ * Screenshots – Ermöglicht der KI, visuellen Kontext aus Screenshots zu berücksichtigen, in denen die Zeichenfolgen gekennzeichnet sind. Dies verbessert die Genauigkeit und das Kontextverständnis. Weitere Informationen zu [Screenshots](/screenshots/).
+ * Projektkontext – ermöglicht es der KI, den Namen und die Beschreibung des Projekts zu berücksichtigen. Dadurch erhält die KI ein übergeordnetes Verständnis Ihres Produkts und kann passende Terminologie und einen geeigneten Ton wählen.
+ * Snippets – Wähle wiederverwendbare Inhalte aus, die zuvor in deinem Crowdin-Konto unter **KI > Snippets** erstellt wurden, um schnell Standardtextbausteine in deinen Prompt einzufügen.
+ * Evaluierungsschritte (gilt nur für den Prompt-Typ „QA-Prüfung“) – Definiere die Kriterien, anhand derer die KI Übersetzungen bewertet. Du kannst Schritte anpassen, entfernen oder neue Schritte erstellen, die auf deine Qualitätsanforderungen zugeschnitten sind.
+ * Erweiterter Modus – Klicke auf **Erweiterter Modus**, um deinen Prompt mit höherer Präzision zu erstellen. Verwende die folgenden Platzhalter, um Kontext einzufügen:
+ * `%sourceLanguage%` – Die Quellsprache des Projekts.
+ * `%targetLanguages%` – Eine Liste aller Zielsprachen des Projekts.
+ * `%targetLanguage%` – Die Sprache, in die der Inhalt übersetzt wird.
+ * `%pluralForms%` – Eine Liste der Pluralformen für die Zielsprache.
+ * `%strings%` – Eine Sammlung von Zeichenfolgen für das aktuelle Segment, einschließlich Zeichenfolgenbezeichner (Schlüssel), Kontext, Text, maximaler Länge und Übersetzungen in andere Sprachen (sofern der Platzhalter für Übersetzungen angegeben ist).
+ * `%translationUnits%` – Eine Liste von Übersetzungseinheiten (Quelle und Übersetzung), die die KI während der QA-Prüfungen bewertet.
+ * `%contextStrings%` – Eine Sammlung von Zeichenfolgen mit ihrem Kontext, die die KI bei der Überprüfung des Zeichenfolgenkontexts durch Advisors überprüft.
+ * `%fileName%` – Der Dateiname des aktuellen Segments.
+ * `%fileContext%` – Der Dateikontext des aktuellen Segments (über das Modal mit den Dateieinstellungen im Tab „Dateien“ bereitgestellt).
+ * `%siblingsStrings%` – Die vorherigen und nächsten Segmente in der Datei, die eine kontextbezogene Übersetzung ermöglichen.
+ * `%filteredStrings%` – Zeichenfolgen, die dem aktuellen Filter im Editor entsprechen und der KI für eine genauere und effizientere Bewertung bereitgestellt werden.
+ * `%projectName%` – Der Projektname.
+ * `%projectDescription%` – Die Projektbeschreibung.
+ * `%assignedStyleGuides%` – Die dem Projekt zugewiesenen Style Guides.
+ * Snippets – Füge zuvor in deinem Crowdin-Konto unter **KI > Snippets** definierte wiederverwendbare Inhalte mithilfe des Formats `%custom:snippetName%` ein.
+
+ 4. Klicke auf **Erstellen**.
+
+
+
+
+
+
+#### Prompts in den Projekteinstellungen erstellen
+
+Du kannst Prompts auch direkt im Bereich **Einstellungen > KI** eines Projekts erstellen. Bei dieser Methode erstellte Prompts sind standardmäßig nur für dieses bestimmte Projekt sichtbar.
+
+
+ Weitere Informationen zu [KI-Einstellungen in einem Projekt](/project-settings/ai/).
+
+
+### KI-Prompts verwalten
+
+Die Verwaltung von KI-Prompts in Crowdin umfasst verschiedene Vorgänge wie Filtern und Suchen, Bearbeiten, Klonen und Löschen von KI-Prompts. Nachfolgend findest du Anweisungen für jeden Vorgang.
+
+#### KI-Prompts anzeigen und filtern
+
+Nachdem du die **KI**-Seite geöffnet hast, kannst du im Tab **Prompts** Prompts anzeigen und suchen.
+
+Du kannst die Liste der hinzugefügten Prompts mit den folgenden Details anzeigen:
+
+* **Name** – Der Name des Prompts.
+* **Sichtbarkeit** – Zeigt einen Zähler der Projekte an, in denen der Prompt verfügbar ist, zusammen mit der Liste der Projekte (mit anklickbaren Links).
+* **Typ** – Der Typ des Prompts (z. B. automatische Übersetzung und KI-Vorschlag, QA-Prüfung, benutzerdefinierter Typ).
+* **Modell** – Das vom Prompt verwendete KI-Modell. Eine Statusanzeige neben dem Modellnamen zeigt, ob der Prompt einsatzbereit ist:
+ * Ein **grüner Punkt** zeigt an, dass der Prompt korrekt konfiguriert und einsatzbereit ist.
+ * Ein **roter Punkt** zeigt an, dass ein Problem mit der Konfiguration des Prompts vorliegt (z. B. der ausgewählte Anbieter ist deaktiviert). Bewege den Mauszeiger über den Modellnamen, um die konkrete Fehlermeldung anzuzeigen.
+* **Erstellt** – Das Datum, an dem der Prompt erstellt wurde.
+* **Erstellt von** – Der Benutzer, der den Prompt erstellt hat.
+* **Zuletzt geändert** – Das Datum, an dem der Prompt zuletzt aktualisiert wurde.
+* **Geändert von** – Der Benutzer, der den Prompt zuletzt geändert hat.
+* **Zuletzt verwendet von** – Der Benutzer, der den Prompt zuletzt verwendet hat.
+* **Zuletzt verwendet** – Das Datum, an dem der Prompt zuletzt verwendet wurde.
+* **Anzahl der Verwendungen** – Die Gesamtzahl der Verwendungen des Prompts.
+
+
+
+Um einen bestimmten Prompt zu finden, verwende das Feld **Suchen**. Um die Liste einzugrenzen, klicke auf die Schaltfläche **Filter**. Damit kannst du nach **Typ**, **Erstellungsdatum**, **Erstellt von**, **Datum der letzten Änderung**, **Geändert von**, **Zuletzt verwendet von** und **Datum der letzten Verwendung** filtern.
+
+#### KI-Prompts bearbeiten
+
+Wenn du einen bereits konfigurierten Prompt anpassen musst, kannst du ihn einfach bearbeiten.
+
+Führe die folgenden Schritte aus, um KI-Prompts zu bearbeiten:
+
+
+ 1. Öffne dein Profil und wähle links in der Seitenleiste **KI** aus.
+ 2. Klicke im Tab **Prompts** bei dem gewünschten Prompt auf und wähle **Bearbeiten**.
+ 3. Passe den Prompt nach Bedarf an und klicke auf **Aktualisieren**, um die Änderungen zu speichern.
+
+
+Beim Bearbeiten eines Prompts findest du den Bereich **Prompt-Metadaten**. Diese Informationen bieten eine klare Prüfungsspur für die Zusammenarbeit und Fehlerbehebung. Durch die Erfassung von Erstellungs-, Änderungs- und Nutzungsdaten kannst du erkennen, welche Prompts am effektivsten sind, beliebte Prompts zur Optimierung identifizieren und Kosten effizienter verwalten. Der Bereich enthält die folgenden schreibgeschützten Details:
+
+* **Erstellt von** – Der Benutzer, der den Prompt erstellt hat.
+* **Erstellt** – Datum und Uhrzeit, zu denen der Prompt erstellt wurde.
+* **Geändert von** – Der Benutzer, der den Prompt zuletzt geändert hat.
+* **Zuletzt geändert** – Datum und Uhrzeit, zu denen der Prompt zuletzt geändert wurde.
+* **Zuletzt verwendet von** – Der Benutzer, der den Prompt zuletzt verwendet hat.
+* **Zuletzt verwendet** – Datum und Uhrzeit, zu denen der Prompt zuletzt verwendet wurde.
+* **Anzahl der Verwendungen** – Die Gesamtzahl der an die KI über diesen Prompt gesendeten Anfragen.
+
+Durch das Bearbeiten von Prompts kannst du sie nach Bedarf aktualisieren und verbessern, damit sie effektiv bleiben und deinen Anforderungen entsprechen. Wenn du die aktuelle Prompt-Konfiguration nicht verlieren möchtest und bei den Änderungen unsicher bist, kannst du deinen Prompt [klonen](#cloning-ai-prompts) und mit der Kopie experimentieren.
+
+#### KI-Prompts klonen
+
+Durch das Klonen von KI-Prompts kannst du mit Prompt-Konfigurationen experimentieren und sie verfeinern, ohne das Original zu verändern. Diese Funktion eignet sich besonders zum Testen verbesserter Prompt-Versionen, während die ursprüngliche Konfiguration erhalten bleibt.
+
+Führe die folgenden Schritte aus, um KI-Prompts zu klonen:
+
+
+ 1. Öffne dein Profil und wähle links in der Seitenleiste **KI** aus.
+ 2. Klicke im Tab **Prompts** bei dem gewünschten Prompt auf und wähle **Klonen**.
+ 3. Daraufhin erscheint eine Kopie des Prompts in der Prompt-Liste.
+
+
+Du kannst den geklonten Prompt anschließend [bearbeiten](#editing-ai-prompts), um verschiedene Konfigurationen auszuprobieren. So kannst du Verbesserungen sicher testen und die Leistung optimieren, ohne den Verlust der ursprünglichen Prompt-Konfiguration zu riskieren.
+
+#### KI-Prompts löschen
+
+Das Löschen von KI-Prompts ist unkompliziert, sollte aber mit Vorsicht erfolgen, um den Verlust wertvoller Konfigurationen zu vermeiden. Diese Aktion ist nützlich, wenn du einen bestimmten Prompt nicht mehr benötigst oder ungenutzte Prompts bereinigen möchtest.
+
+Führe die folgenden Schritte aus, um KI-Prompts zu löschen:
+
+
+ 1. Öffne dein Profil und wähle links in der Seitenleiste **KI** aus.
+ 2. Klicke im Tab **Prompts** bei dem gewünschten Prompt auf und wähle **Entfernen**.
+ 3. Bestätige den Löschvorgang.
+
+
+
+
+### KI-Anbieter konfigurieren
+
+Crowdin unterstützt verschiedene KI-Anbieter, die jeweils eigene Modelle und Funktionen für Übersetzungsaufgaben anbieten. Durch die Konfiguration von Anbietern kannst du die KI-Funktionen an deine spezifischen Lokalisierungsanforderungen anpassen. Unabhängig davon, ob du von Crowdin verwaltete Dienste verwendest oder eigene API-Schlüssel integrierst, ermöglicht Crowdin eine nahtlose Integration mit KI-Diensten.
+
+Im Tab **Anbieter** kannst du die Liste der Anbieter mit den folgenden Details anzeigen:
+
+* **Name**
+* **Status**: Aktiviert, Deaktiviert.
+* **Von Crowdin verwaltet**: Ja, Nein.
+* **Anzahl der Prompts**: Wenn ein oder mehrere Prompts für einen bestimmten Anbieter konfiguriert sind, wird die tatsächliche Anzahl der Prompts angezeigt. Andernfalls wird die Schaltfläche **Erstellen** angezeigt, die zum Dialog zum Erstellen eines Prompts führt.
+
+Crowdin-AI-Anbieter werden in zwei Typen unterteilt. Systemanbieter (z. B. OpenAI, Microsoft Azure OpenAI, Google Gemini) sind integriert und können sofort konfiguriert werden. Außerdem kannst du deine Möglichkeiten erweitern, indem du weitere KI-Anbieter aus dem Crowdin Store installierst.
+
+Crowdin unterstützt derzeit die folgenden KI-Anbieter:
+
+* Crowdin AI
+* OpenAI
+* Microsoft Azure OpenAI
+* Microsoft Foundry
+* Google Gemini (Vertex AI)
+* Google Gemini (AI Studio)
+* Mistral AI
+* Anthropic
+* xAI
+* IBM Watsonx
+* DeepSeek
+* [Groq](https://store.crowdin.com/groq)
+* [Cloudflare Workers AI](https://store.crowdin.com/cloudflare-workers-ai)
+* [Fireworks AI](https://store.crowdin.com/fireworks-ai)
+* [Together AI](https://store.crowdin.com/together-ai)
+* [OpenRouter](https://store.crowdin.com/openrouter)
+* [Cohere](https://store.crowdin.com/cohere)
+* [Replicate](https://store.crowdin.com/replicate)
+* [Credal](https://store.crowdin.com/credal)
+* [AWS Bedrock](https://store.crowdin.com/aws-bedrock)
+* [Alibaba Cloud Model Studio](https://store.crowdin.com/alibaba-cloud-model-studio)
+* [Xiaomi MiMo](https://store.crowdin.com/xiaomi-mimo)
+* [NVIDIA NIM](https://store.crowdin.com/ndivia-nim-ai-models)
+
+Neue KI-Anbieter werden regelmäßig hinzugefügt.
+
+Bei der Konfiguration von KI-Anbietern kannst du zwischen zwei Optionen wählen:
+
+* **Eigene API-Schlüssel verwenden** – Crowdin empfiehlt diese Option, wenn Datensicherheit eine Rolle spielt und du mehr Datenschutz und Kontrolle über die Daten benötigst. Für diese Option ist eine externe Registrierung erforderlich, um API-Schlüssel/Zugangsdaten von KI-Anbietern zu erhalten.
+* **Von Crowdin verwalteten Dienst verwenden** – vereinfachte KI-Integration, ohne dass du eigene API-Schlüssel verwalten musst. Damit kannst du die Standardeinstellungen und Infrastruktur von Crowdin nutzen, um bequem auf KI-Funktionen zuzugreifen. Ideal für einfache, schnelle Aufgaben. Um mit von Crowdin verwalteten KI-Anbietern zu beginnen, musst du lediglich Guthaben auf dein Konto einzahlen.
+
+Führe die folgenden Schritte aus, um einen KI-Anbieter zu konfigurieren:
+
+
+ 1. Öffne dein Profil und wähle links in der Seitenleiste **KI** aus.
+ 2. Klicke im Tab **Anbieter** bei dem gewünschten Anbieter auf und wähle **Bearbeiten**. Alternativ kannst du einfach auf den gewünschten Anbieter doppelklicken.
+ 3. Wähle **Aktiviert** aus.
+ 4. Wähle deinen Anmeldedatentyp:
+ * Um den [von Crowdin verwalteten Dienst](/crowdin-credits/) zu verwenden, wähle **\{Provider} von Crowdin verwaltet**. In diesem Fall musst du [Guthaben auf dein Kontoguthaben einzahlen](#adding-funds-to-account-balance).
+ * Um dein eigenes Konto zu verwenden, wähle **Eigenen API-Schlüssel verwenden** und gib die erforderlichen Zugangsdaten ein. Anweisungen zum Erstellen eines API-Schlüssels findest du in der offiziellen Dokumentation deines KI-Anbieters. Einige KI-Anbieter benötigen möglicherweise zusätzliche spezifische Zugangsdaten. Weitere Informationen findest du im Abschnitt [Anbieterspezifische Zugangsdaten](#provider-specific-credentials) weiter unten.
+ 5. *(Optional)* Klicke auf **Erweiterte Einstellungen**, um zusätzliche Optionen aufzurufen:
+ * **Basis-URL überschreiben** – Ermöglicht es dir, Anfragen an den KI-Anbieter statt an die Standard-URL an einen benutzerdefinierten oder regionsspezifischen Endpunkt zu senden. Dies ist nützlich, wenn du einen Proxy verwendest oder KI über einen Drittanbieterdienst nutzt, der einen benutzerdefinierten Endpunkt bereitstellt. Andernfalls kannst du dieses Feld leer lassen.
+
+ * **Headers** – Füge benutzerdefinierte HTTP-Header hinzu, die mit jeder Anfrage an den KI-Anbieter gesendet werden. Dies ist nützlich, wenn ein selbst gehosteter Proxy oder ein Gateway zusätzliche Header für die Authentifizierung oder Weiterleitung benötigt. Gib den Namen und den Wert des Headers ein und klicke dann auf , um einen weiteren hinzuzufügen. Die Autorisierungs-Header werden von Crowdin verwaltet und können nicht überschrieben werden, es sei denn, du wählst **Nur benutzerdefinierte Header senden**.
+ * **Nur benutzerdefinierte Header senden** – Sendet ausschließlich deine benutzerdefinierten Header und überspringt die von Crowdin für den Anbieter hinzugefügten Header, einschließlich der Autorisierung. Wähle diese Option, wenn dein Proxy oder Gateway die Authentifizierung selbst übernimmt und die von dir eingegebenen Header alle vom Endpunkt des Anbieters benötigten Angaben enthalten.
+
+ 6. Klicke auf **Aktualisieren**.
+
+
+#### Anbieterspezifische Zugangsdaten
+
+Einige KI-Anbieter benötigen für die Authentifizierung zusätzliche Informationen über einen Standard-API-Schlüssel hinaus, wenn du deine eigenen Zugangsdaten verwendest.
+
+##### Google Gemini (Vertex AI)
+
+Bei der Konfiguration von Google Gemini (Vertex AI) musst du die folgenden Zugangsdaten angeben:
+
+* **Projekt-ID**: Die eindeutige ID deines Google-Cloud-Projekts. Du findest sie im Dashboard deiner Google Cloud Console.
+* **Region**: Die Region, in der dein Modell gehostet wird. Stelle sicher, dass das von dir geplante Modell in der ausgewählten Region verfügbar ist. Du findest diese Information in deinem Vertex-AI-Dashboard. Eine Liste der [verfügbaren Gemini-Modelle und Regionen](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations) findest du in der offiziellen Dokumentation von Google Cloud.
+* **Autorisierungsmethode**: Die Art und Weise, wie Crowdin auf Vertex AI zugreift:
+ * **Dienstkonto**: Verwendet eine JSON-Schlüsseldatei, die du im Feld **Dienstkonto-Schlüssel** hochlädst.
+ * **Workload-Identity-Föderation**: Verwendet von Google Cloud ausgestellte kurzlebige Zugriffstoken anstelle einer gespeicherten Schlüsseldatei. Erfordert die **Workload-Identity-Föderations-Zielgruppe** und optional die **E-Mail-Adresse des Dienstkontos für die Workload-Identity-Föderation**, damit Crowdin dieses Dienstkonto übernehmen kann.
+
+###### Dienstkonto-Schlüssel einrichten
+
+Führe die folgenden Schritte aus, um die JSON-Schlüsseldatei zu erstellen und zu Crowdin hinzuzufügen:
+
+
+ 1. Gehe in deinem Google-Cloud-Projekt zu **IAM & Admin > Dienstkonten**.
+ 2. Erstelle ein neues Dienstkonto oder wähle ein vorhandenes aus.
+ 3. Weise ihm die Rolle **Vertex AI User** (`roles/aiplatform.user`) zu. Um Screenshots als Prompt-Kontext zu verwenden, weise ihm zusätzlich die Rolle **Storage Admin** (`roles/storage.admin`) zu. Crowdin lädt die Screenshots in einen temporären Bucket in deinem Google-Cloud-Projekt hoch.
+ 4. Gehe zum Tab **Schlüssel** des Dienstkontos, klicke auf **Schlüssel hinzufügen > Neuen Schlüssel erstellen**, wähle **JSON** und klicke auf **Erstellen**. Der Schlüssel wird automatisch heruntergeladen.
+ 5. Klicke in Crowdin auf **Datei auswählen**, um diesen JSON-Schlüssel hochzuladen.
+
+
+###### Workload-Identity-Föderation einrichten
+
+Die Workload-Identity-Föderation erfordert in deinem Google-Cloud-Projekt einen Workload-Identity-Pool, der der AWS-Rolle von Crowdin vertraut. Folge der Google-Cloud-Anleitung zum [Konfigurieren der Workload-Identity-Föderation mit AWS](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds) und verwende die folgenden Werte:
+
+* **AWS-Konto-ID**: `459083373173`. Gib sie ein, wenn du den [Workload-Identity-Pool und -Anbieter erstellst](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds#create-the-workload-identity-pool-and-provider).
+* **Attributbedingung**: `assertion.arn == 'arn:aws:sts::459083373173:assumed-role/crowdin-federated-identity/SESSION_NAME'`. Dadurch wird das Vertrauen auf dein Crowdin-Konto beschränkt. Crowdin zeigt den Wert `SESSION_NAME` als **Sitzungsname** im Feld **E-Mail-Adresse des Dienstkontos für die Workload-Identity-Föderation** an.
+* **Rollen**: **Vertex AI User** (`roles/aiplatform.user`) sowie **Storage Admin** (`roles/storage.admin`), um Screenshots als Prompt-Kontext zu verwenden. Weise sie entweder über [direkten Ressourcenzugriff](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds#direct-resource-access) oder über [Dienstkonto-Impersonation](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds#service-account-impersonation) zu.
+* **APIs**: die Vertex-AI-API (`aiplatform.googleapis.com`) sowie die von der Anleitung aktivierten APIs.
+
+Wenn der Anbieter bereit ist, gib seine Zielgruppe im Feld **Workload-Identity-Föderations-Zielgruppe** in Crowdin ein:
+
+```text
+//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
+```
+
+Wenn du den Zugriff über Dienstkonto-Impersonation gewährt hast, gib außerdem die E-Mail-Adresse dieses Kontos im Feld **E-Mail-Adresse des Dienstkontos für die Workload-Identity-Föderation** ein.
+
+##### Microsoft Azure OpenAI
+
+Bei der Konfiguration von Microsoft Azure OpenAI musst du die folgenden Zugangsdaten angeben:
+
+* **Ressourcenname**: Der Name deiner Azure-OpenAI-Dienstressource, den du in deinem Azure-Hauptportal findest.
+* **Bereitstellungsname**: Der Name, den du deiner Bereitstellung zugewiesen hast.
+* **API-Version**: Die für dein Modell erforderliche API-Version. Die empfohlene Version findest du normalerweise in den Eigenschaften der Bereitstellung oder in den von Azure bereitgestellten Codebeispielen. Zum Beispiel: `2024-02-01`.
+
+##### IBM Watsonx
+
+Bei der Konfiguration von IBM Watsonx musst du die folgenden Zugangsdaten angeben:
+
+* **Projekt-ID**: Deine Watsonx.ai-Projekt-ID. Um sie zu finden, navigiere zu deinem Projekt, öffne den Tab **Verwalten** und kopiere die **Projekt-ID** aus dem Bereich **Allgemein**.
+* **Region**: Die Region, in der sich dein Watsonx-Projekt befindet. Du findest diese Information im Dashboard deines Projekts. Eine Liste der [verfügbaren Regionen für watsonx.ai](https://dataplatform.cloud.ibm.com/docs/content/wsj/getting-started/regional-datactr.html) findest du in der offiziellen IBM-Cloud-Dokumentation.
+
+### KI-Anbieter deaktivieren
+
+Bei Bedarf kannst du zuvor aktivierte Anbieter jederzeit deaktivieren.
+
+Führe die folgenden Schritte aus, um den KI-Anbieter zu deaktivieren:
+
+
+ 1. Öffne dein Profil und wähle links in der Seitenleiste **KI** aus.
+ 2. Klicke im Tab **Anbieter** beim gewünschten Anbieter auf und wähle **Deaktivieren**. Alternativ kannst du auf den gewünschten Anbieter doppelklicken und in den Anbietereinstellungen **Aktiviert** deaktivieren.
+
+
+### Guthaben zum Kontoguthaben hinzufügen
+
+MT-Engines und von Crowdin verwaltete KI-Modelle sind kostenpflichtige Dienste. Um sie zu verwenden, musst du zunächst Guthaben auf dein Crowdin-Kontoguthaben einzahlen.
+
+
+ Weitere Informationen zum [Hinzufügen von Guthaben zum Kontoguthaben](/crowdin-credits/#adding-funds-to-account-balance).
+
+
+### Snippets für KI-Prompts
+
+Snippets sind wiederverwendbare Informationsbausteine, die der KI helfen, dein Projekt besser zu verstehen. Sie liefern Kontext zu deinem Unternehmen, Produkt oder spezifischen Anforderungen wie Markenstimme und Zielgruppe. Die Verwaltung dieser Informationen als Snippets spart Zeit und hilft dabei, bessere und konsistentere Übersetzungen zu erstellen.
+
+Im Tab **Snippets** kannst du Snippets mit den folgenden Details anzeigen:
+
+* **Name** – die eindeutige Kennung, mit der das Snippet in Prompts eingefügt wird.
+* **Beschreibung** – eine kurze Erklärung des Zwecks des Snippets.
+* **Erstellt am** – das Datum, an dem das Snippet erstellt wurde.
+
+Verwende das Feld **Suchen**, um bestimmte Snippets schnell zu finden.
+
+#### Snippets erstellen
+
+Führe die folgenden Schritte aus, um ein neues Snippet zu erstellen:
+
+
+ 1. Klicke im Tab **Snippets** auf **Snippet hinzufügen**.
+ 2. Fülle im Dialog **Snippet hinzufügen** die folgenden Felder aus:
+ * **Name** – Eine eindeutige Kennung für dein Snippet (z. B. `company-description` oder `target-audience`).
+ * **Beschreibung** – Eine kurze Zusammenfassung des Zwecks des Snippets zur einfachen Identifizierung.
+ * **Inhalt** – Der Text, der beim Verwenden des Snippets in Prompts eingefügt wird.
+ 3. Klicke auf **Erstellen**.
+
+
+#### Snippets in Prompts verwenden
+
+Nach der Erstellung können Snippets in jeden KI-Prompt eingefügt werden:
+
+* Wähle im **Einfach-Modus** im Bereich **Snippets** ein oder mehrere Snippets aus dem Dropdown-Menü aus.
+* Füge im **Erweiterten Modus** ein Snippet mithilfe seines Platzhalterformats `%custom:snippetName%` ein. Ein Snippet mit dem Namen `company-description` würde beispielsweise als `%custom:company-description%` eingefügt.
+
+#### Vorhandene Snippets verwalten
+
+Um ein Snippet zu bearbeiten oder zu löschen, klicke in der Spalte **Aktionen** beim gewünschten Snippet auf und wähle **Bearbeiten** oder **Löschen**. Alternativ kannst du einfach darauf doppelklicken, um es zu bearbeiten.
+
+### KI-Nutzungslimits
+
+Im Tab **Limits** kannst du über tägliche und monatliche Budgets festlegen, wie viel dein Konto für KI-Funktionen ausgibt. Du kannst Limits für das gesamte Konto, als Basiswert pro Benutzer und für bestimmte Benutzer festlegen. Die Limits gelten für deine Projektmitglieder, die KI-Funktionen verwenden.
+
+Hier sind einige Punkte, die du beachten solltest:
+
+* Für unterstützte KI-Anbieter und deren Modelle gelten Limits. Um unerwartete Kosten zu vermeiden, werden Modelle ohne Preisangaben vorübergehend deaktiviert, solange ein Limit aktiv ist. Klicke im Banner auf **Unterstützte Modelle anzeigen**, um Modelle mit bekannten Preisen anzuzeigen, die auf aktive Limits angerechnet werden.
+* Für benutzerdefinierte KI-Anbieter kann kein Preis ermittelt werden. Sie bleiben daher verfügbar und werden nicht auf dein Limit angerechnet.
+* Die Ausgaben werden anhand der Standardpreise der Modelle geschätzt, daher können die tatsächlichen Kosten leicht abweichen.
+* Tageslimits werden jeden Tag um 00:00 UTC zurückgesetzt. Monatslimits werden am ersten Tag jedes Monats um 00:00 UTC zurückgesetzt.
+* Wenn ein Limit erreicht ist, werden die betroffenen KI-Anfragen pausiert, bis der Zeitraum zurückgesetzt wird.
+
+Für jedes Limit kannst du einen **Tagesbetrag**, einen **Monatsbetrag** oder beides festlegen. Wenn du ein Feld leer lässt, gibt es für diesen Zeitraum kein Limit. Ein Tageslimit darf nicht höher sein als das Monatslimit.
+
+#### Kontoweite Limits
+
+Das Gesamtbudget für KI-Funktionen über alle deine Projekte hinweg. Wenn ein Limit erreicht ist, werden KI-Anfragen für alle Projektmitglieder pausiert, bis der Zeitraum zurückgesetzt wird. Unter jedem Feld zeigt ein Nutzungsbalken an, wie viel im aktuellen Zeitraum ausgegeben wurde.
+
+#### Standardlimits pro Benutzer
+
+Diese gelten für jedes Projektmitglied, für das keine benutzerbezogene Überschreibung eingerichtet ist. Verwende diese Felder, um einen Basiswert für dein Konto festzulegen, indem du die Standardwerte erhöhst oder verringerst. Wenn ein Mitglied sein Limit erreicht, werden nur die eigenen KI-Anfragen pausiert, bis der Zeitraum zurückgesetzt wird.
+
+Standardlimits pro Benutzer dürfen nicht höher sein als die kontoweiten Limits.
+
+#### Benutzerbezogene Überschreibungen
+
+Lege für bestimmte Projektmitglieder ein individuelles Limit fest, das die Standardlimits pro Benutzer ersetzt. Dies ist nützlich für Power-User, Evaluatoren oder Nutzer, die strengere Limits als die Standardwerte benötigen.
+
+Im Bereich **Benutzerbezogene Überschreibungen** kannst du die Benutzer mit einer Überschreibung mit den folgenden Details anzeigen:
+
+* **User** – der Nutzer, für den die Überschreibung gilt.
+* **Daily limit** – das für den Nutzer festgelegte Tageslimit.
+* **Monthly limit** – das für den Nutzer festgelegte Monatslimit.
+* **Today usage** – wie viel der Nutzer heute ausgegeben hat.
+* **Month usage** – wie viel der Nutzer in diesem Monat ausgegeben hat.
+
+Verwende das Feld **Search**, um bestimmte Nutzer schnell zu finden.
+
+Um eine Überschreibung hinzuzufügen, gehe wie folgt vor:
+
+
+ 1. Klicke im Abschnitt **Per-user overrides** auf **Add user override**.
+ 2. Wähle im Dialog **Benutzerüberschreibung hinzufügen** im Feld **Benutzer** einen oder mehrere Benutzer aus. In der Liste werden nur Mitglieder deiner Projekte angezeigt. Benutzer, für die bereits eine Überschreibung besteht, können nicht ausgewählt werden.
+ 3. Wähle aus, wie die ausgewählten Nutzer eingeschränkt werden sollen:
+ * Gib ein **Tageslimit**, ein **Monatslimit** oder beides ein. Wenn du ein Feld leer lässt, wird das benutzerbezogene Limit für diesen Zeitraum entfernt. Wenn beide Felder leer bleiben, können diese Mitglieder KI ohne persönliches Limit verwenden (die kontoweiten Limits gelten weiterhin).
+ * Alternativ kannst du **Diesen Benutzer von der KI-Nutzung ausschließen** aktivieren, um die ausgewählten Benutzer für alle KI-Anfragen zu sperren, unabhängig von Limits. Dies gilt auch für benutzerdefinierte KI-Anbieter.
+ 4. Klicke auf **Speichern**.
+
+
+Um eine bestehende Überschreibung zu bearbeiten oder zu entfernen, klicke neben dem Benutzer auf und wähle **Bearbeiten** oder **Entfernen**. Alternativ kannst du einfach auf den Benutzer doppelklicken, um seine Überschreibung zu bearbeiten.
+
+
+
+### KI-Einstellungen für das Konto
+
+Um die Standard-KI-Einstellungen für dein Crowdin-Konto zu konfigurieren, öffne dein Profil und gehe zu **KI > Einstellungen**. Diese globalen Einstellungen werden standardmäßig auf alle neuen Projekte angewendet, können aber für jedes Projekt im Bereich **Einstellungen > KI** überschrieben werden.
+
+Für jede Einstellung kannst du entweder einen vorhandenen Prompt aus dem Dropdown-Menü auswählen oder auf klicken, um einen neuen zu erstellen. Durch Klicken auf das Plus-Symbol wird der Dialog zum Erstellen eines Prompts geöffnet, wobei der passende Prompt-Typ bereits ausgewählt ist.
+
+#### Automatische Übersetzung
+
+Wähle einen Standard-Prompt vom Typ **Automatische Übersetzung und KI-Vorschlag**. Dieser Prompt wird automatisch ausgewählt, wenn du in einem Projekt eine automatische Übersetzung über KI ausführst, wodurch die Konfiguration beschleunigt wird. Du kannst vor dem Start der automatischen Übersetzung weiterhin einen anderen Prompt auswählen.
+
+#### KI-Vorschläge im Editor
+
+Wähle für KI-Vorschläge im Editor einen Standard-Prompt vom Typ **Automatische Übersetzung und KI-Vorschlag**. Wenn kein Prompt ausgewählt ist, werden im Bereich **Kontext & Übersetzungen** keine KI-Vorschläge angezeigt.
+
+#### KI-QA-Prüfung {#ai-qa-check-account-settings}
+
+Wähle den Standard-Prompt vom Typ **QA-Prüfung**, der für die KI-gestützte Qualitätssicherung in allen Projekten verwendet werden soll. Wenn kein kontoweiter Prompt konfiguriert ist, wird die KI-gestützte Prüfung nicht angewendet, es sei denn, in den Einstellungen eines bestimmten Projekts wurde ein Prompt ausgewählt.
+
+#### Advisor-Prüfung des String-Kontexts {#advisor-string-context-review-account-settings}
+
+Wähle einen Standard-Prompt vom Typ **Überprüfung des Zeichenfolgenkontexts durch Advisors**, der die Qualität des für Quellzeichenfolgen bereitgestellten Kontexts projektübergreifend überprüft. Es kennzeichnet Strings, deren Kontext fehlt oder Übersetzern nicht dabei hilft zu verstehen, wie ein String verwendet wird.
+
+
+
+### KI-Protokolle
+
+Der Tab **Protokolle** zeichnet KI-Anfragen auf, die über dein Crowdin-Konto gestellt wurden, und hilft dir dabei, die KI-Nutzung projektübergreifend zu überwachen, fehlgeschlagene Anfragen zu beheben und den Token-Verbrauch zu verfolgen. Protokolle sind für die letzten 30 Tage verfügbar. Ältere Einträge werden automatisch entfernt.
+
+Im Tab **Protokolle** kannst du die Liste der KI-Anfragen mit den folgenden Details anzeigen:
+
+* **Datum** – Das Datum und die Uhrzeit, zu der die Anfrage gestellt wurde.
+* **Status** – Der Status der Anfrage (z. B. Erfolg, Fehler, Timeout, Ausstehend).
+* **Benutzer** – Der Benutzer, der die Anfrage initiiert hat.
+* **Modell** – Das für die Anfrage verwendete KI-Modell.
+* **Prompt-Typ** – Der Typ des verwendeten Prompts (z. B. automatische Übersetzung und KI-Vorschlag, QA-Prüfung).
+* **Projekt** – Das Projekt, auf das sich die Anfrage bezieht.
+* **Aktion** – Die von der KI ausgeführte Aktion (z. B. KI-Vorschlag, QA-Prüfung).
+* **Dauer** – Die Zeit, die die Anfrage bis zum Abschluss benötigt hat, in Millisekunden.
+* **Eingabetoken** – Die Anzahl der in der Anfrage gesendeten Token.
+* **Ausgabetoken** – Die Anzahl der in der Antwort empfangenen Token.
+* **HTTP-Status** – Der vom KI-Anbieter zurückgegebene HTTP-Statuscode.
+* **Von Crowdin verwaltet** – Gibt an, ob die Anfrage einen von Crowdin verwalteten Anbieter verwendet hat.
+* **Prompt** – Der für die Anfrage verwendete Prompt.
+
+
+
+Um die Liste einzugrenzen, klicke auf **Filter**. Damit kannst du nach **Datum**, **Status**, **Aktion**, **Modell**, **Prompt-Typ**, **Projekt**, **Benutzer**, **Von Crowdin verwaltet**, **Token** und **OAuth-Anwendung** filtern.
+
+Um die vollständigen Details einer bestimmten Anfrage anzuzeigen, klicke in der Spalte **Aktionen** auf **Details**. Der Dialog **Protokolldetails** zeigt alle oben aufgeführten Details sowie:
+
+* **Initiiert von** – Gibt an, ob die Anfrage manuell von einem Benutzer (Benutzer) oder automatisch ausgelöst wurde.
+* **Autorisierungstyp** – Die Art, wie die Anfrage autorisiert wurde (z. B. Benutzersitzung, persönlicher Zugriffstoken, OAuth-Anwendung).
+* **IP** – Die IP-Adresse, von der die Anfrage stammt.
+* **User-Agent** – Der verwendete Browser oder Client.
+* **Fehlermeldung** – Der Grund, warum die Anfrage fehlgeschlagen ist (wird für fehlgeschlagene Anfragen angezeigt).
+
+## Automatische Übersetzung über KI
+
+Die automatische Übersetzung über KI ermöglicht es dir, deine Inhalte mithilfe von KI-Modellen mit hochwertigen, kontextbezogenen Übersetzungen automatisch zu übersetzen.
+
+
+
+
+
+## KI im Editor verwenden
+
+Um KI im Editor zu verwenden, konfiguriere einen Prompt vom Typ **Automatische Übersetzung und KI-Vorschlag** und wähle ihn unter **KI > Einstellungen > KI-Vorschläge im Editor** aus.
+
+Nach der Konfiguration können Übersetzer im Bereich **Kontext & Übersetzungen** für jede Zeichenfolge KI-gestützte Übersetzungsvorschläge verwenden.
+
+Für erweiterte Chat-basierte Unterstützung im Editor kannst du die Crowdin-Copilot-Anwendung verwenden:
+
+
+
+## KI-QA-Prüfung
+
+Die KI-QA-Prüfung verwendet KI, um Übersetzungen automatisch anhand festgelegter Qualitätsstandards zu bewerten. Sie hilft Übersetzern, Probleme schnell zu erkennen und zu beheben, und gewährleistet Genauigkeit, Konsistenz und die Einhaltung projektspezifischer Anforderungen. Die KI-QA-Prüfung ergänzt und erweitert die standardmäßigen QA-Prüfungen, bietet umfassende Flexibilität, reduziert den manuellen Prüfaufwand und verbessert die allgemeine Übersetzungsqualität.
+
+### So funktioniert die KI-QA-Prüfung
+
+Wenn die KI-QA-Prüfung aktiviert ist, bewertet sie jede eingereichte Übersetzung anhand anpassbarer Bewertungskriterien (Evaluierungsschritte), die im konfigurierten QA-Prüfungs-Prompt definiert sind. Von der KI erkannte Probleme werden direkt im Editor als Warnungen angezeigt, zusammen mit kurzen Vorschlägen zur Korrektur.
+
+Die Evaluierungsschritte können Folgendes umfassen:
+
+* **Genauigkeit** – Stellt sicher, dass kein Inhalt ausgelassen, hinzugefügt oder falsch übersetzt wird.
+* **Sprachliche Qualität** – Prüft Grammatik, Rechtschreibung, Zeichensetzung und Lesbarkeit.
+* **Terminologie** – Bestätigt die konsistente und korrekte Verwendung projektspezifischer Begriffe.
+* **Stil** – Prüft, ob Übersetzungen den festgelegten Stilrichtlinien entsprechen.
+* **Design** – Stellt sicher, dass Übersetzungen die Designvorgaben einschließlich Länge und Markup einhalten.
+* **Lokale Konventionen** – Passt Formate für Datumsangaben, Währungen, Adressen und mehr an.
+* **Kulturelle Anpassung (Verity)** – Lokalisiert kulturspezifische Verweise angemessen.
+* **Allgemeine Probleme** – Identifiziert sonstige Probleme mit der Übersetzungsqualität.
+
+Wenn eine Übersetzung beispielsweise von festgelegten Glossarbegriffen abweicht oder lokale Formatierungsstandards nicht erfüllt, hebt die KI dies hervor und gibt Empfehlungen, damit Übersetzer Konformität und Konsistenz erreichen.
+
+### KI-QA-Prüfung einrichten
+
+Um die KI-QA-Prüfung zu verwenden, erstelle und konfiguriere einen [QA-Prüfungs-Prompt](#configuring-ai-prompts). Jeder QA-Prüfungs-Prompt enthält klar definierte Evaluierungsschritte, denen die KI folgt, um Übersetzungsprobleme zu erkennen. Im Gegensatz zu anderen KI-Prompts enthält der QA-Prüfungs-Prompt einen eigenen Bereich **Evaluierungsschritte**, in dem du vordefinierte Prüfungen anpassen, bearbeiten oder erweitern kannst.
+
+Du kannst die Genauigkeit der KI-Analyse außerdem verbessern, indem du verschiedene Arten von zusätzlichem Kontext einbeziehst, der für den Inhalt deines Projekts relevant ist.
+
+Nach der Konfiguration kannst du einen QA-Prüfungs-Prompt als Standard für alle Projekte deines Kontos oder für einzelne Projekte festlegen.
+
+### KI-QA-Prüfung in Projekten anwenden
+
+Führe die folgenden Schritte aus, um die KI-QA-Prüfung in deinen Projekten zu aktivieren:
+
+
+ 1. [Erstelle und aktiviere einen QA-Prüfungs-Prompt](#configuring-ai-prompts).
+ 2. Lege ihn als Standard-QA-Prompt unter **Einstellungen > KI > Einstellungen** des Projekts fest.
+ 3. Aktiviere die **KI-gestützte Prüfung** unter **Einstellungen > QA-Prüfungen** des Projekts.
+
+
+Nach der Einrichtung prüft die KI eingereichte Übersetzungen kontinuierlich und stellt so die Einhaltung deiner Qualitätsrichtlinien sicher.
+
+## Advisor-Prüfung des String-Kontexts
+
+Die Prüfung des String-Kontexts durch den Advisor verwendet KI, um die Qualität des für deine Quell-Strings bereitgestellten Kontexts zu bewerten, und kennzeichnet Strings, bei denen der Kontext fehlt oder Übersetzern nicht dabei hilft zu verstehen, wie ein String verwendet wird. Sie unterstützt die Prüfung **Low string context coverage** auf der Registerkarte **Advisors** des Projekts.
+
+
+
+## Einschränkungen von KI-Übersetzungen
+
+KI-gestützte Übersetzungen basieren auf großen Sprachmodellen. Ihre Ausgabe ist daher probabilistisch, und ihre Genauigkeit kann je nach Sprachpaar und Komplexität des Inhalts variieren. Beachte bei der Verwendung der automatischen Übersetzung und von KI-Vorschlägen die folgenden Verhaltensweisen.
+
+### Ausgabe in falscher Sprache und Halluzinationen
+
+Gelegentlich kann ein KI-Modell eine Übersetzung in der falschen Sprache oder Schrift zurückgeben oder Text erzeugen, der die Quelle nicht korrekt wiedergibt (eine Halluzination). Dies ist eine allgemeine Einschränkung großer Sprachmodelle und kein spezifisches Crowdin-Problem. Sie tritt bei weniger verbreiteten Sprachpaaren oder bei wenig bereitgestelltem Kontext häufiger auf. Bei einer Übersetzung in eine Zielsprache, die eine nichtlateinische Schrift verwendet, kann ein Modell beispielsweise gelegentlich Zeichen aus einer anderen Schrift zurückgeben.
+
+**Bewährte Vorgehensweisen:**
+
+* Wähle für den Prompt ein anderes Modell oder einen anderen KI-Anbieter aus.
+* [Gib dem Prompt mehr Kontext](#configuring-ai-prompts), z. B. Dateikontext, Projektkontext, vorherige und nächste Zeichenfolgen, Glossarbegriffe, TM-Vorschläge und Style Guides.
+* Überprüfe KI-generierte Übersetzungen immer vor der Genehmigung und verwende [QA-Prüfungen](/project-settings/qa-checks/) (einschließlich [KI-QA-Prüfung](#ai-qa-check)), um Probleme zu erkennen.
+
+### Identische Ausgabe bei verschiedenen Modellen
+
+Verschiedene Modelle erzeugen nicht immer unterschiedliche Übersetzungen. Bei derselben Prompt-Konfiguration und demselben Kontext können verschiedene Modelle identische Ausgaben liefern, insbesondere bei kurzen, eindeutigen oder klar definierten Zeichenfolgen. Wenn du Modelle vergleichst, um das passende auszuwählen, teste sie mit repräsentativen Inhalten deines Projekts, damit identische Ergebnisse nicht fälschlicherweise als Fehlkonfiguration angesehen werden.
+
+## Siehe auch
+
+
diff --git a/src/content/docs/de/developer/crowdin-apps/security.mdx b/src/content/docs/de/developer/crowdin-apps/security.mdx
new file mode 100644
index 000000000..becc4bee8
--- /dev/null
+++ b/src/content/docs/de/developer/crowdin-apps/security.mdx
@@ -0,0 +1,115 @@
+---
+title: Sicherheit für Crowdin-Apps
+description: Gewährleiste ein hohes Maß an Sicherheit für Crowdin-Apps
+slug: developer/crowdin-apps-security
+---
+
+import { Aside } from '@astrojs/starlight/components';
+
+Wenn du eine selbst gehostete App erstellst, die mit Daten von Crowdin arbeitet, authentifiziert sie sich mit [`crowdin_app`](/developer/crowdin-apps-app-descriptor/#authentication) und erhält bei jeder von Crowdin gesendeten Anfrage ein signiertes JWT-Token. Durch die Überprüfung dieses Tokens kann die App erkennen, ob eine Anfrage tatsächlich von der erwarteten Quelle stammt.
+
+Beide SDKs übernehmen das für dich: Das [Crowdin Apps SDK](/developer/crowdin-apps-sdk/) validiert das Token und extrahiert den Kontext, während eine [serverlose App](/developer/crowdin-apps-serverless/) überhaupt kein Token erhält. Der folgende Abschnitt richtet sich an Apps, die Anfragen selbst überprüfen, beispielsweise eine App, die in einer anderen Sprache geschrieben wurde.
+
+
+
+## Was Crowdin sendet
+
+Crowdin öffnet eine Modulseite mit dem Token und seinem Kontext in der Query-Zeichenfolge:
+
+```shell wrap
+https://example.com/app-module?jwtToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJCcjRhMmhwUW……MX0.yt-lbv3Z8JyIGX4jG405mjZvX8lwc1q0EfWdTtm9GCc&origin=https://{domain}.crowdin.com&clientId=your-client-id
+```
+
+Query-Parameter:
+
+
+
+
+
jwtToken
+
+
Typ:string
+
Beschreibung: JWT-Token, das zur Autorisierung verwendet wird.
+
+
+
+
origin
+
+
Typ:string (url)
+
Beschreibung: Host, der zum Öffnen einer Modulseite verwendet wird.
+
+
+
+
clientId
+
+
Typ:string
+
Beschreibung: Die ID des für die Autorisierung verwendeten OAuth-Clients.
+
+
+
+
+
+Das Token ist mit dem OAuth-Client-Secret signiert, das nur Crowdin und deine App kennen. Eine gültige Signatur ist daher ein Nachweis dafür, woher die Anfrage stammt. Überprüfe die Signatur und den Ablaufzeitpunkt jedes Tokens, das deine App erhält, beispielsweise in einer Middleware, die vor dem restlichen Code ausgeführt wird. Jede der [vorhandenen Bibliotheken](https://jwt.io/) übernimmt das für dich.
+
+## Token-Payload
+
+```json
+{
+ "aud": "Br4a2hpQiNW96anuuO4a",
+ "sub": "1",
+ "domain": null,
+ "context": {},
+ "iat": 1600000000,
+ "exp": 1600000900
+}
+```
+
+Eigenschaften:
+
+
+
+
+
aud
+
+
Typ:string
+
Beschreibung: ID des OAuth-Clients, der das Token ausgestellt hat.
+
+
+
+
sub
+
+
Typ:string
+
Beschreibung: Kennung des Benutzers, der eine Anfrage an die Crowdin-App stellt.
+
+
+
+
domain
+
+
Typ:string|null
+
Beschreibung: Die Organisation, über die auf die App zugegriffen wird. Immer vorhanden und in Crowdin immer null.
+
+
+
+
context
+
+
Typ:object
+
Beschreibung: Die Umgebung, in der das Modul geöffnet wird, z. B. das Projekt, das Gebietsschema und die Zeitzone des Benutzers.
+
+
+
+
iat
+
+
Typ:integer
+
Beschreibung: Gibt den Ausstellungszeitpunkt des Tokens an.
+
+
+
+
exp
+
+
Typ:integer
+
Beschreibung: Gibt den Ablaufzeitpunkt des Tokens an.
+
+
+
+
diff --git a/src/content/docs/de/developer/dev-tools/configuration-file.mdx b/src/content/docs/de/developer/dev-tools/configuration-file.mdx
new file mode 100644
index 000000000..9ad8bd9e2
--- /dev/null
+++ b/src/content/docs/de/developer/dev-tools/configuration-file.mdx
@@ -0,0 +1,877 @@
+---
+title: Konfigurationsdatei
+description: Entdecke die Möglichkeiten der crowdin.yml-Konfigurationsdatei
+slug: developer/configuration-file
+---
+
+import { Aside, CardGrid, LinkCard, FileTree } from '@astrojs/starlight/components';
+import ReadMore from '~/components/ReadMore.astro';
+import Include from '~/components/Include.astro';
+
+Die verschiedenen Crowdin-Tools verwenden eine `crowdin.yml`-Konfigurationsdatei, in der die zu verwaltenden Ressourcen festgelegt werden, darunter die Dateien, die zu Crowdin hochgeladen werden sollen, und die Speicherorte der zugehörigen Übersetzungen.
+
+
+
+
+
+
+
+
+## Struktur der Konfigurationsdatei
+
+Eine gültige `crowdin.yml`-Konfigurationsdatei hat die folgende Struktur. Stelle daher sicher, dass du alle erforderlichen Informationen ausfüllst:
+
+* Kopfbereich der Datei mit Projektanmeldedaten, Einstellungen und Zugriffsinformationen.
+* Ein Element des `files`-Arrays, das einen Satz von Quell- und Übersetzungsdateien beschreibt, die du verwalten möchtest.
+* Erforderliche Felder im `files`-Array: `source`, das Filter für die Quelldateien definiert, und `translation` mit Angaben dazu, wo die übersetzten Dateien gespeichert werden sollen oder wo vorhandene Übersetzungen zu finden sind, wenn du sie bei der Einrichtung der CLI hochladen möchtest.
+
+## Eine einfache Konfigurationsdatei erstellen
+
+Eine typische Konfiguration sieht beispielsweise so aus:
+
+```yml title="crowdin.yml"
+"project_id": "projectId"
+"api_token": "personal-access-token"
+"base_path": "."
+"base_url": "https://api.crowdin.com"
+
+"preserve_hierarchy": true
+
+"files": [
+ {
+ "source": "/locale/en/folder1/[0-2].txt",
+ "translation": "/locale/%two_letters_code%/folder1/%original_file_name%"
+ },
+]
+```
+
+
+
+
+
Name
+
Beschreibung
+
+
+
+
+
project_id
+
Numerische ID des Crowdin-Projekts
+
+
+
api_token
+
Persönliches Zugriffstoken für die Crowdin-Api. Der Inhaber des Tokens sollte mindestens über Manager-Berechtigungen im Projekt verfügen
+
+
+
base_path
optional
+
Pfad zu deinem Projektverzeichnis auf dem lokalen Rechner, relativ zur `crowdin.yml`-Konfigurationsdatei
+
+
+
base_url
optional
+
Crowdin-API-Basis-URL. Optional für crowdin.com. Für Crowdin Enterprise verwende `https://{organization-name}.api.crowdin.com`
+
+
+
preserve_hierarchy
optional
Wenn true festgelegt ist, bleibt die Verzeichnisstruktur auf dem Server erhalten. Wenn `false` festgelegt ist, wird die Verzeichnisstruktur abgeflacht.
+
+
+
source
+
Filter für die Ausgangsdateien. Wildcards werden unterstützt.
+
+
+
translation
+
Pfad zum Speichern der übersetzten Dateien. Wildcards werden unterstützt.
+
+
+
+
+## API-Anmeldedaten aus Umgebungsvariablen
+
+Du kannst die API-Anmeldedaten aus einer Umgebungsvariablen laden, zum Beispiel:
+
+```yml title="crowdin.yml"
+"project_id_env": "CROWDIN_PROJECT_ID"
+"api_token_env": "CROWDIN_PERSONAL_TOKEN"
+"base_path_env": "CROWDIN_BASE_PATH"
+"base_url_env": "CROWDIN_BASE_URL"
+```
+
+Wenn gemischt, haben *api_token* und *project_id* Vorrang:
+
+```yml title="crowdin.yml"
+"project_id_env": "CROWDIN_PROJECT_ID" # Low priority
+"api_token_env": "CROWDIN_PERSONAL_TOKEN" # Low priority
+"base_path_env": "CROWDIN_BASE_PATH" # Low priority
+"base_url_env": "CROWDIN_BASE_PATH" # Low priority
+"project_id": "projectId" # High priority
+"api_token": "personal-access-token" # High priority
+"base_path": "." # High priority
+"base_url": "https://api.crowdin.com" # High priority
+```
+
+## Allgemeine Konfiguration
+
+Das oben angegebene Beispiel enthält bei den Attributen `source` und `translation` standardmäßige Platzhalter (auch Glob-Muster genannt), damit du einfacher mit mehreren Dateien arbeiten kannst.
+
+Hier sind Muster, die du verwenden kannst:
+
+---
+
+**\*** (Sternchen)
+
+Passt zu jedem Zeichen im Datei- oder Verzeichnisnamen. Wenn du `*.json` angibst, werden alle Dateien wie `messages.json`, `about_us.json` und alle Dateien mit der Endung `.json` einbezogen.
+
+---
+
+**\*\*** (doppeltes Sternchen)
+
+Passt rekursiv zu jeder Zeichenfolge (einschließlich Unterverzeichnissen). Beachte, dass du `**` sowohl in den Quell- als auch in den Übersetzungsmustern verwenden kannst. Wenn du `**` im Übersetzungsmuster verwendest, enthält es für eine bestimmte Datei immer einen Teilpfad aus der Quelle. Du kannst beispielsweise `source: /en/**/*.po` verwenden, um rekursiv alle `*.po`-Dateien zu Crowdin hochzuladen. Das Übersetzungsmuster lautet `/%two_letters_code%/**/%original_file_name%`.
+
+---
+
+**?** (Fragezeichen)
+
+Passt zu genau einem Zeichen.
+
+---
+
+**[set]**
+
+Passt zu genau einem Zeichen aus einer Menge. Verhält sich genau wie Zeichensätze in regulären Ausdrücken, einschließlich der Verneinung (`[^a-z]`).
+
+---
+
+\**\** (Backslash)
+
+Maskiert das nächste Metazeichen.
+
+## Variablen
+
+Crowdin CLI ermöglicht die Verwendung der folgenden Platzhalter, um passende Variablen in den resultierenden Dateinamen einzusetzen:
+
+
+
+Du kannst auch den Pfad für Dateien im resultierenden Archiv festlegen, indem du am Anfang des Musters einen Schrägstrich (`/`) setzt.
+
+## Verwendung von Platzhaltern
+
+Struktur der Dateien und Verzeichnisse auf dem lokalen Rechner:
+
+
+* base_path
+ * folder
+ * 1.xml
+ * 1.txt
+ * 123.txt
+ * 123_test.txt
+ * a.txt
+ * a1.txt
+ * crowdin?test.txt
+ * crowdin_test.txt
+ * 1.xml
+ * 1.txt
+ * 123.txt
+ * 123_test.txt
+ * a.txt
+ * a1.txt
+ * crowdin?test.txt
+ * crowdin_test.txt
+ * 3.txt
+
+
+Beispiel 1. Verwendung von Platzhaltern im Quellpfad:
+
+```yml title="crowdin.yml" wrap
+"files": [
+ {
+ "source": "/**/?[0-9].txt", # upload a1.txt, folder/a1.txt
+ "translation": "/**/%two_letters_code%_%original_file_name%"
+ },
+ {
+ "source": "/**/*\?*.txt", # upload crowdin?test.txt, folder/crowdin?test.txt
+ "translation": "/**/%two_letters_code%_%original_file_name%"
+ },
+ {
+ "source": "/**/[^0-2].txt", # upload 3.txt, folder/3.txt, a.txt, folder/a.txt (ignore 1.txt, folder/1.txt)
+ "translation": "/**/%two_letters_code%_%original_file_name%"
+ }
+]
+```
+
+Beispiel 2. Verwendung von Platzhaltern zum Ignorieren von Dateien:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/**/*.*", #upload all files that the base_path contains
+ "translation": "/**/%two_letters_code%_%original_file_name%",
+ "ignore": [
+ "/**/%two_letters_code%_%original_file_name%", #ignore the translated files
+ "/**/?.txt", #ignore 1.txt, a.txt, folder/1.txt, folder/a.txt
+ "/**/[0-9].txt", #ignore 1.txt, folder/1.txt
+ "/**/*\?*.txt", #ignore crowdin?test.txt, folder/crowdin?test.txt
+ "/**/[0-9][0-9][0-9].txt", #ignore 123.txt , folder/123.txt
+ "/**/[0-9]*_*.txt" #ignore 123_test.txt, folder/123_test.txt
+ ]
+ }
+]
+```
+
+## Übersetzungsdatei umbenennen
+
+Wenn du eine Datei mit Übersetzungen umbenennen oder Teile des Pfads nach dem Export ersetzen musst, kannst du den Parameter `translation_replace` verwenden.
+
+Wenn die Datei beispielsweise `strings_en.po` heißt, kann sie in `strings.po` umbenannt werden. Alternativ kannst du Ordnernamen im Übersetzungspfad ersetzen:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/locale/**/*_en.po",
+ "translation": "/locale/**/%original_file_name%_%two_letters_code%",
+ "translation_replace": {
+ "_en": "",
+ "de/locale": "de/lokalisierung",
+ "fr/locale": "fr/paramètres"
+ }
+ }
+]
+```
+
+In diesem Fall wird `_en` aus dem Dateinamen entfernt und die Ordnernamen `de/locale` und `fr/locale` werden durch `de/lokalisierung` bzw. `fr/paramètres` ersetzt.
+
+## Dateien und Verzeichnisse ignorieren
+
+Von Zeit zu Zeit gibt es Dateien und Verzeichnisse, die du in Crowdin nicht übersetzen musst. In solchen Fällen kannst du lokale Regeln pro Datei zur Konfigurationsdatei in deinem Projekt hinzufügen.
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/**/*.properties",
+ "translation": "/**/%file_name%_%two_letters_code%.%file_extension%",
+ "ignore": [
+ "/test/file.properties",
+ "/example.properties"
+ ]
+ },
+ {
+ "source": "/locale/en/**/*.po",
+ "translation": "/locale/%two_letters_code%/**/%original_file_name%",
+ "ignore": [
+ "/locale/en/templates",
+ "/locale/en/workflow"
+ ]
+ }
+]
+```
+
+Du kannst auch [Platzhalter](#usage-of-wildcards) verwenden, um Dateien zu ignorieren.
+
+## Zielsprachen für Quelldateien ausschließen
+
+Standardmäßig stehen Quelldateien zur Übersetzung in alle Zielsprachen des Projekts zur Verfügung. Wenn einige Quelldateien nicht in bestimmte Zielsprachen übersetzt werden sollen, kannst du sie mithilfe des Parameters `excluded_target_languages` ausschließen.
+
+Beispiel für eine Konfigurationsdatei:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/resources/en/*.json",
+ "translation": "/resources/%two_letters_code%/%original_file_name%",
+ "excluded_target_languages": [
+ "uk",
+ "fr"
+ ]
+ }
+]
+```
+
+## Exportsprachen
+
+Standardmäßig werden alle Sprachen exportiert. Wenn du bestimmte Sprachen exportieren möchtest, gib sie mit dem Parameter `export_languages` an.
+
+```yml title="crowdin.yml"
+"export_languages": [
+ "uk",
+ "ja"
+]
+```
+
+## Mehrsprachige Tabelle
+
+Wenn eine CSV- oder XLS/XLSX-Datei die Übersetzungen für alle Zielsprachen enthält, solltest du die passenden Sprachcodes im Schema angeben.
+
+Beispiel für eine CSV-Datei:
+
+```csv
+identifier,source_phrase,context,Ukrainian,Spanish (Mexico),French
+ident1,Source 1,Context 1,,,
+ident2,Source 2,Context 2,,,
+ident3,Source 3,Context 3,,,
+```
+
+Beispiel für eine Konfigurationsdatei:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "multicolumn.csv",
+ "translation": "multicolumn.csv",
+ "first_line_contains_header": true,
+ "scheme": "identifier,source_phrase,context,uk,es-MX,fr"
+ }
+]
+```
+
+Wenn deine CSV- oder XLS/XLSX-Datei Spalten enthält, die beim Import übersprungen werden sollen, verwende `none` für diese Spalten im Schema, zum Beispiel:
+
+```yml title="crowdin.yml"
+"scheme" : "identifier,source_phrase,context,uk,none,es-MX,none,fr"
+```
+
+##### Schema-Konstanten
+
+Um das Schema für deine CSV- oder XLS/XLSX-Datei zu erstellen, verwende die folgenden Konstanten:
+
+* `identifier` – Spalte enthält Zeichenfolgen-IDs.
+* `source_phrase` – Spalte enthält Quellzeichenfolgen.
+* `source_or_translation` – Spalte enthält Quellzeichenfolgen, wird beim Export jedoch in derselben Spalte mit Übersetzungen gefüllt. Beim Hochladen vorhandener Übersetzungen werden die Werte aus dieser Spalte als Übersetzungen verwendet.
+* `translation` – Spalte enthält Übersetzungen.
+* `context` – Spalte enthält Kommentare oder Kontextinformationen zu den Quellzeichenfolgen.
+* `max_length` – Spalte enthält Werte für die maximale Länge der Übersetzungen der Zeichenfolgen.
+* `labels` – Spalte enthält Labels für die Quellzeichenfolgen.
+* `none` – Spalte, die beim Import übersprungen wird.
+
+## Verzeichnisstruktur auf dem Server beibehalten
+
+Mit der Option `preserve_hierarchy` kannst du die Verzeichnisstruktur deiner Quelldateien im Crowdin-Projekt beibehalten oder abflachen.
+
+Beispiel für die Konfigurationsdatei mit der Option `preserve_hierarchy`:
+
+```yml title="crowdin.yml"
+"preserve_hierarchy": true
+
+"files": [
+ {
+ "source": "/locale/en/**/*.po",
+ "translation": "/locale/%two_letters_code%/**/%original_file_name%"
+ }
+]
+```
+
+Nehmen wir an, die Datei-/Ordnerstruktur auf deinem Rechner sieht so aus:
+
+
+* locale
+ * en
+ * emails/
+ * app
+ * foo.po
+ * bar.po
+
+
+Wenn du die Option `"preserve_hierarchy": true` in deiner Konfigurationsdatei überhaupt nicht verwendest oder den Wert `false` setzt, werden alle gemeinsamen Verzeichnisse übersprungen und die Dateistruktur in Crowdin wird wie folgt dargestellt:
+
+
+* (root)/
+ * foo.po
+ * bar.po
+
+
+
+
+Bei Verwendung der Option `"preserve_hierarchy": true` wird die Dateistruktur in Crowdin wie folgt dargestellt:
+
+
+* locale
+ * en
+ * app
+ * foo.po
+ * bar.po
+
+
+Verzeichnisse, die keine zu übersetzenden Dateien enthalten, werden in Crowdin nicht erstellt (z. B. das Verzeichnis `emails` im obigen Beispiel).
+
+## Dateien mit angegebenem Pfad und angegebenem Typ hochladen
+
+Diese Funktion fügt im Abschnitt der YML-Datei zwei optionale Parameter hinzu: `dest` und `type`. Sie wird typischerweise für Projekte verwendet, bei denen der hochgeladene Name anders sein muss, damit Crowdin den Typ korrekt erkennen kann.
+
+Mit dem Parameter `dest` kannst du einen Dateinamen in Crowdin angeben. Er funktioniert für mehrere Dateien gleichzeitig und unterstützt die folgenden Platzhalter: `%original_file_name%`, `%original_path%`, `%file_extension%`, `%file_name%`.
+
+
+
+Beispiel für die Konfigurationsdatei mit beiden Parametern:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/conf/**/*.txt",
+ "dest": "/conf/**/%file_name%.properties",
+ "translation": "/conf/**/%two_letters_code%/%file_name%.properties",
+ "type": "properties"
+ },
+ {
+ "source": "/app/*.txt",
+ "dest": "/app/%file_name%.xml",
+ "translation": "/res/values-%android_code%/%original_file_name%",
+ "type": "android"
+ }
+]
+```
+
+## Änderungen an Zeichenfolgen aktualisieren
+
+Mit dem Parameter `update_option` kannst du Übersetzungen für geänderte Zeichenfolgen bei der Aktualisierung der Datei beibehalten. Wenn er nicht gesetzt ist, gehen die Übersetzungen geänderter Zeichenfolgen verloren. Nützlich für Tippfehlerkorrekturen und kleinere Änderungen an Quellzeichenfolgen.
+
+Je nach Wert wird `update_option` verwendet, um Übersetzungen beizubehalten und Validierungen geänderter Zeichenfolgen während der Dateiaktualisierung beizubehalten oder zu entfernen.
+
+Zulässige Werte:
+
+* `update_as_unapproved` – Übersetzungen geänderter Zeichenfolgen beibehalten und vorhandene Validierungen dieser Übersetzungen entfernen
+* `update_without_changes` – Übersetzungen und Validierungen geänderter Zeichenfolgen beibehalten
+
+Beispiel für eine Konfiguration mit dem Parameter `update_option`:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/*.csv",
+ "translation": "/%three_letters_code%/%file_name%.csv",
+ "first_line_contains_header": true,
+ "scheme": "identifier,source_phrase,translation,context",
+ "update_option": "update_as_unapproved"
+ },
+ {
+ "source": "/**/*.xlsx",
+ "translation": "/%three_letters_code%/folder/%file_name%.xlsx",
+ "update_option": "update_without_changes"
+ }
+]
+```
+
+## Benutzerdefinierte Segmentierung
+
+Lade deine XML-, HTML-, MD- oder andere Quelldateien ohne Schlüssel-Wert-Struktur mit eigenen Segmentierungsregeln hoch.
+Wenn nichts angegeben ist, werden die vordefinierten Segmentierungsregeln (SRX 2.0) für die automatische Inhaltssegmentierung verwendet.
+
+Beispiel für die Konfiguration einer benutzerdefinierten Segmentierung:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/emails/sample1.html",
+ "translation": "/emails/%locale%/%original_file_name%",
+ "custom_segmentation": "/rules/sample.srx.xml"
+ }
+]
+```
+
+## Importoptionen
+
+Du kannst zusätzliche Parameter verwenden, um den Importprozess für bestimmte Dateitypen anzupassen.
+
+### Importoptionen für XML-Dateien
+
+
+
+
+
Option
+
Typ
+
Beschreibung
+
+
+
+
+
translate_content
optional
+
bool
+
Legt fest, ob Texte innerhalb der Tags übersetzt werden. Akzeptierte Werte sind 0 oder 1. Standardmäßig ist der Wert 1.
+
+
+
translate_attributes
optional
+
bool
+
Legt fest, ob die Attribute von Tags übersetzt werden. Akzeptierte Werte sind 0 oder 1. Standardmäßig ist der Wert 1.
+
+
+
content_segmentation
optional
+
bool
+
+
+ Legt fest, ob lange Texte in kleinere Textsegmente aufgeteilt werden. Akzeptierte Werte sind 0 oder 1. Standardwert ist 1.
+ Hinweis! Wenn die Inhaltssegmentierung aktiviert ist, wird der Upload der Übersetzungen mithilfe einer experimentellen Technologie für maschinelles Lernen durchgeführt.
+
+
+
+
+
translatable_elements
optional
+
array
+
+
+ Dies ist ein Array von Zeichenfolgen, wobei jedes Element ein XPath zu einem DOM-Element ist, das importiert werden soll.
+ Beispielpfad: /path/to/node oder /path/to/attribute[@attr]
+ Hinweis! Wenn dieser Parameter definiert ist, werden die Parameter translate_content und translate_attributes beim Import nicht berücksichtigt.
+
+
+
+
+
+
+Beispiel für die Konfiguration mit zusätzlichen Parametern:
+
+```yml title="crowdin.yml" wrap
+"files": [
+ {
+ "source": "/app/sample1.xml",
+ "translation": "/app/%locale%/%original_file_name%",
+ "translate_attributes": 1,
+ "translate_content": 0
+ },
+ {
+ "source": "/app/sample2.xml",
+ "translation": "/app/%locale%/%original_file_name%",
+ "translatable_elements": [
+ "/content/text", # translatable texts are stored in 'text' nodes of parent node 'content'
+ "/content/text[@value]" # translatable texts are stored in 'value' attribute of 'text' nodes
+ ]
+ }
+]
+```
+
+### Weitere Importoptionen für Dateien
+
+
+
+
+
Option
+
Typ
+
Beschreibung
+
+
+
+
+
content_segmentation
optional
+
bool
+
+
+ Legt fest, ob lange Texte in kleinere Textsegmente aufgeteilt werden. Nur für TXT, DOCX, DITA, IDML, MEDIAWIKI, HTML, Front Matter HTML, Markdown, Front Matter Markdown, XML, XLIFF und XLIFF 2.0
+ Zulässige Werte sind 0 oder 1. Standardwert ist 1.
+ Hinweis: Wenn die Inhaltssegmentierung aktiviert ist, wird der Upload der Übersetzungen von einer experimentellen Technologie für maschinelles Lernen verarbeitet.
+
+
+
+
+
+
+Beispiel für die Konfiguration mit zusätzlichen Parametern:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/emails/sample1.html",
+ "translation": "/emails/%locale%/%original_file_name%",
+ "content_segmentation": 1
+ }
+]
+```
+
+## Exportoptionen
+
+Du kannst zusätzliche Parameter verwenden, um den Exportprozess für bestimmte Dateitypen anzupassen.
+
+### Java-.properties-Dateiformat
+
+##### Anführungszeichen maskieren
+
+Legt fest, ob ein einfaches Anführungszeichen in exportierten Übersetzungen durch ein weiteres einfaches Anführungszeichen oder einen Backslash maskiert werden soll. Du kannst die dateispezifische Option `escape_quotes` hinzufügen.
+
+Zulässige Werte:
+
+* `0` – einfaches Anführungszeichen nicht maskieren
+* `1` – einfaches Anführungszeichen mit einem weiteren einfachen Anführungszeichen maskieren
+* `2` – einfaches Anführungszeichen mit einem Backslash maskieren
+* `3` – einfaches Anführungszeichen nur in Zeichenfolgen mit Variablen durch ein weiteres einfaches Anführungszeichen maskieren (Standard)
+
+##### Sonderzeichen maskieren
+
+Legt fest, ob Sonderzeichen (`=`, `:`, `!` und `#`) in exportierten Übersetzungen mit einem Backslash maskiert werden sollen.
+Du kannst die dateispezifische Option `escape_special_characters` hinzufügen.
+
+Zulässige Werte:
+
+* `0` – Sonderzeichen nicht maskieren
+* `1` – Sonderzeichen mit einem Backslash maskieren (Standard)
+
+Beispiel für die Konfiguration:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source": "/en/strings.properties",
+ "translation": "/%two_letters_code%/%original_file_name%",
+ "escape_quotes": 1,
+ "escape_special_characters": 0
+ }
+]
+```
+
+## Konfigurationsdatei für VCS-Integrationen
+
+VCS-Integrationen erfordern dieselbe Konfigurationsdatei wie das CLI-Tool, d. h. dieselbe Struktur wird unterstützt. Der einzige Unterschied besteht darin, dass du aus Sicherheitsgründen die Projektanmeldedaten nicht im Kopfbereich der Datei speichern solltest. Außerdem kannst du einige zusätzliche Parameter verwenden.
+
+### Titel und Labels von Pull Requests
+
+Der Standardtitel eines Pull Requests lautet `New Crowdin updates`. Um einen eigenen Pull-Request-Titel festzulegen und Labels zum Pull Request hinzuzufügen, kannst du die folgenden Parameter in der Konfigurationsdatei verwenden: `pull_request_title`, `pull_request_labels`.
+
+```yml title="crowdin.yml"
+"pull_request_title": "Custom PR title"
+
+"pull_request_labels": [
+ "crowdin",
+ "l10n"
+]
+```
+
+
+
+### Commit-Nachricht
+
+Jedes Mal, wenn die Integration Übersetzungen committet, verwendet sie die folgende Standard-Commit-Nachricht:
+
+```
+Neue Übersetzungen {fileName} ({languageName})
+[ci skip]
+```
+
+Das Tag `[ci skip]` wird standardmäßig hinzugefügt, damit beim Synchronisieren vieler Dateien auf einmal nicht für jede Datei ein separater CI-Build ausgelöst wird. Deine CI läuft weiterhin wie erwartet, sobald diese Änderungen über einen Pull Request in deinen Hauptbranch übernommen wurden.
+
+Um der Commit-Nachricht eigenen Text hinzuzufügen, verwende den Parameter `commit_message`. Standardmäßig wird dein Text unterhalb der Standardnachricht angefügt (entspricht der Einstellung `append_commit_message` auf `true`):
+
+```yml title="crowdin.yml"
+"commit_message": "Fix: New translations from Crowdin"
+```
+
+Die resultierende Commit-Nachricht sieht so aus:
+
+```
+New translations {fileName} ({languageName})
+[ci skip]
+Fix: New translations from Crowdin
+```
+
+Um anstelle der Standardnachricht nur deine eigene Nachricht zu verwenden, setze `append_commit_message` auf `false`:
+
+```yml title="crowdin.yml"
+"commit_message": "Fix: New translations %original_file_name% from Crowdin"
+"append_commit_message": false
+```
+
+Du kannst die Platzhalter `%original_file_name%` und `%language%` in deiner Commit-Nachricht verwenden, um den Dateinamen und die Sprache einzufügen.
+
+
+
+### Zuständiger für Pull Requests
+
+Wenn du einen Pull Request bestimmten Benutzern zuweisen musst, verwende den Parameter `pull_request_assignees`, um sie anzugeben.
+
+**GitHub/GitHub Server:**
+
+```yml title="crowdin.yml"
+"pull_request_assignees": [
+ "login1",
+ "login2"
+]
+```
+
+**GitLab/GitLab Self-Managed:**
+
+```yml title="crowdin.yml"
+"base_path": "."
+"pull_request_assignees": [
+ "user_id1", # numeric ID
+ "user_id2" # numeric ID
+]
+```
+
+
+
+### Pull-Request-Reviewer
+
+Wenn du eine Pull-Request-Prüfung von bestimmten Benutzern anfordern musst, verwende den Parameter `pull_request_reviewers`, um sie anzugeben.
+
+**GitHub/GitHub Server:**
+
+```yml title="crowdin.yml"
+"pull_request_reviewers": [
+ "login1",
+ "login2"
+]
+```
+
+**GitLab/GitLab Self-Managed:**
+
+```yml title="crowdin.yml"
+"pull_request_reviewers": [
+ "user_id1", # numeric ID
+ "user_id2" # numeric ID
+]
+```
+
+**Bitbucket:**
+
+```yml title="crowdin.yml"
+"pull_request_reviewers": [
+ "uuid1", # user uuid
+ "uuid2" # user uuid
+]
+```
+
+**Bitbucket Server:**
+
+```yml title="crowdin.yml"
+"pull_request_reviewers": [
+ "username1",
+ "username2"
+]
+```
+
+**Azure Repos:**
+
+```yml title="crowdin.yml"
+"pull_request_reviewers": [
+ "guid1", # user ID
+ "guid2" # user ID
+]
+```
+
+## Labels zu Quellzeichenfolgen hinzufügen
+
+Um vorhandene oder neue Labels zu den Quellzeichenfolgen hinzuzufügen, verwende den Parameter `labels`.
+Labels werden den Quellzeichenfolgen nur beim ersten Upload in das Crowdin-Projekt hinzugefügt.
+
+Zeichenfolgen, die vor der Verwendung des Parameters `labels` in das Crowdin-Projekt hochgeladen wurden, erhalten keine Labels.
+Wenn du das beim ersten Upload hinzugefügte Label direkt in Crowdin entfernst, wird es bei den nächsten Synchronisierungen nicht erneut hinzugefügt.
+
+Example:
+
+```yml title="crowdin.yml"
+"files": [
+ {
+ "source" : "/resources/en/*.json",
+ "translation" : "/resources/%two_letters_code%/%original_file_name%",
+ "labels" : [
+ "android",
+ "emails"
+ ]
+ }
+]
+```
+
+
+
+
+ Mehr über [Labels](/project-settings/labels/) erfahren.
+
+
+## Sprachzuordnung
+
+Oft haben Softwareprojekte eigene Namen für Locales-Verzeichnisse. Crowdin ermöglicht es dir, deine eigenen Sprachen so zuzuordnen, dass sie in deinen Projekten erkannt werden.
+
+Nehmen wir an, deine Locale-Verzeichnisse heißen `en`, `uk`, `fr`, `de`. Alle diese Verzeichnisse können durch den Platzhalter `%two_letters_code%` dargestellt werden. Du hast jedoch ein Verzeichnis namens `zh_CH`. Du kannst auch Sprachcodes für andere Platzhalter wie `%android_code%`, `%locale%` usw. überschreiben.
+
+
+ Mehr über die [Konfiguration der Sprachzuordnung für die CLI](https://crowdin.github.io/crowdin-cli/advanced#languages-mapping-configuration) erfahren.
+
+
+Damit es mit Crowdin ohne Änderungen an deinem Projekt funktioniert, kannst du die Sprachzuordnung über die Benutzeroberfläche einrichten.
+
+* [Sprachzuordnung in Crowdin](/project-settings/languages/#adding-custom-language-codes)
+* [Sprachzuordnung in Crowdin Enterprise](/enterprise/project-settings/languages/#language-mapping)
+
+## Eine Konfigurationsdatei für VCS-Integrationen und CLI verwenden
+
+Es gibt Fälle, in denen es notwendig ist, VCS-Integration und CLI für ein Projekt zu verwenden. In solchen Situationen benötigst du meistens zwei separate Konfigurationsdateien: eine für die VCS-Integration und eine für die CLI. Du kannst jedoch eine einzige Konfigurationsdatei für beide Fälle verwenden.
+
+Da die Konfigurationsdatei der VCS-Integration die für die CLI erforderlichen Anmeldedaten `project_id` und `api_token` nicht enthält, kannst du sie direkt im Befehl mit den folgenden Parametern übergeben: `-i/--project-id`, `-T/--token`.
+
+Dein Befehl zum Herunterladen der Übersetzungen über die CLI sieht dann wie folgt aus:
+
+```shell
+crowdin download -i {your-project-id} -T {your-token}
+```
+
+
+ Alternativ kannst du [Umgebungsvariablen](#api-credentials-from-environment-variables) oder [Projektkonfiguration und API-Anmeldedaten aufteilen](https://crowdin.github.io/crowdin-cli/configuration#split-project-configuration-and-api-credentials).
+
+
+## Beispielkonfigurationen
+
+##### CSV-Dateien hochladen
+
+```yml title="crowdin.yml"
+"project_id": "projectId"
+"api_token": "personal-access-token"
+"base_path": "."
+"base_url": "https://api.crowdin.com"
+
+"files": [
+ {
+ "source": "/*.csv",
+ "translation": "/%two_letters_code%/%original_file_name%",
+ # Specifies whether first line should be imported or it contains columns headers
+ "first_line_contains_header": true,
+ # Used only when uploading CSV file to define data columns mapping
+ "scheme": "identifier,source_phrase,translation,context,max_length"
+ }
+]
+```
+
+##### GetText-Projekt
+
+```yml title="crowdin.yml"
+"project_id": "projectId"
+"api_token": "personal-access-token"
+"base_path": "."
+"base_url": "https://api.crowdin.com"
+
+"files" : [
+ {
+ "source" : "/locale/en/**/*.po",
+ "translation" : "/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%",
+ "languages_mapping" : {
+ "two_letters_code" : {
+ "zh-CN" : "zh_CH",
+ "fr-QC": "fr"
+ }
+ }
+ }
+]
+```
+
+##### Android-Projekt
+
+```yml title="crowdin.yml"
+"project_id": "projectId"
+"api_token": "personal-access-token"
+"base_path": "."
+"base_url": "https://api.crowdin.com"
+
+"files" : [
+ {
+ "source" : "/res/values/*.xml",
+ "translation" : "/res/values-%android_code%/%original_file_name%",
+ "languages_mapping" : {
+ "android_code" : {
+ "de" : "de"
+ }
+ }
+ }
+]
+```
diff --git a/src/content/docs/de/developer/guides/shopify-apps-localization.mdx b/src/content/docs/de/developer/guides/shopify-apps-localization.mdx
new file mode 100644
index 000000000..ee28e9183
--- /dev/null
+++ b/src/content/docs/de/developer/guides/shopify-apps-localization.mdx
@@ -0,0 +1,104 @@
+---
+title: Lokalisierung von Shopify-Apps
+description: Erfahre, wie du deine Shopify-App mit Crowdin lokalisierst, um deine App auf neue Märkte und für neue Nutzer auszuweiten.
+slug: developer/shopify-apps-localization
+hero:
+ title: Lokalisierung von Shopify-Apps
+ tagline: Willkommen, Shopify-Partner! Wenn du die Reichweite deiner App auf neue Märkte und für neue Nutzer ausweiten und deine bestehende globale Nutzererfahrung verbessern möchtest, hilft dir diese Anleitung dabei, deine Shopify-App mit Crowdin zu übersetzen.
+tableOfContents: false
+---
+
+import { Image } from 'astro:assets';
+import { Steps, Aside, CardGrid, Card } from '@astrojs/starlight/components';
+import shopifyAppsHero from '~/assets/images/shopify-apps-hero.png';
+import aiTranslations from '~/assets/images/ai-translations.png';
+import HelpBanner from '~/components/HelpBanner.astro';
+
+
+
+
+
+## Übersicht
+
+Der Übersetzungsprozess selbst ist mit Crowdin einfach. Dazu integrierst du dein Github-(oder ein anderes GIT-Server-)Repository mit Crowdin. Anschließend werden die Sprachressourcendateien deiner App in Crowdin importiert, wo sie in verschiedene Sprachen übersetzt werden können. Sobald die Übersetzungen fertig sind, kannst du sie problemlos wieder in dein Github-Repository exportieren. Noch wichtiger: Wenn es Aktualisierungen in deiner App gibt, übernimmt Crowdin die Änderungen und ermöglicht es dir, die neuen Inhalte problemlos zu übersetzen.
+
+
+
+ Wenn du dein Crowdin-Projekt einrichtest, werden sowohl die Ausgangstexte zu Crowdin übertragen als auch die übersetzten Inhalte zurück. Du kannst einen Übersetzungsdienstleister auswählen, bei dem du Übersetzungen einkaufst.
+
+ Als Shopify-Partner hast du möglicherweise Anspruch darauf, dass Shopify die Kosten für die Lokalisierung deiner App übernimmt. Kontaktiere unbedingt [support@shopify.com](mailto:support@shopify.com), bevor du Übersetzungen kaufst.
+
+ Um für eine Erstattung berechtigt zu sein, solltest du Übersetzungen bei den folgenden Übersetzungsdienstleistern kaufen:
+
+ * [BLEND](https://store.crowdin.com/partners/blend)
+ * [Translated](https://store.crowdin.com/partners/translated)
+
+
+
+
+ Crowdin bietet eine große Auswahl an Integrationen mit KI-Übersetzungstools und maschinellen Übersetzungs-Engines.
+
+ Wenn du dich entscheidest, einen Teil deiner Inhalte mit KI zu übersetzen, sieh dir den entsprechenden Bereich des [Crowdin Store](https://store.crowdin.com/categories/ai) an.
+
+ Erfahre mehr über [Crowdin AI](https://crowdin.com/ai-localization) und wie du damit deine Shopify-App übersetzen kannst.
+
+
+
+
+
+
+
✅ Mehrsprachige Geschäftsabläufe
+
Wenn du deine Anwendung lokalisierst, werden voraussichtlich auch weitere Bereiche deiner Geschäftsabläufe mehrsprachig. Zum Beispiel E-Mails, die du versendest, oder Hilfeseiten, die du deinen Kunden anbietest.
+
Crowdin dient als dein LangOps-Tool für deine globalen Geschäftsabläufe. Wenn du Marketinginhalte, Inhalte aus der Wissensdatenbank oder andere Materialien übersetzen musst, solltest du dir unbedingt den Crowdin Store ansehen, um eine Integration mit deinem Marketing-Automatisierungssystem oder Helpdesk einzurichten.
+
+
+
✅ Kontinuierliche Lokalisierung
|
Wenn du deine Shopify-App ständig weiterentwickelst, hast du möglicherweise mehrere Branches in deinem Repository.
+
Alle Branches können mit Crowdin synchronisiert und parallel zum Entwicklungsprozess übersetzt werden. So wird sichergestellt, dass die Lokalisierung deine Veröffentlichung nicht verzögert.
+
+
+
✅ Kontext und hochwertige Übersetzungen
+
Da Ressourcendateien normalerweise nicht genügend Kontextinformationen für Linguisten enthalten, wird empfohlen, immer Textinformationen für deine Schlüssel (UI-Texte) bereitzustellen, Screenshots deiner App hochzuladen und auf Anfragen der Linguisten nach Kontext zu antworten, wenn sie dein Projekt übersetzen.
+
+
+
+
+## Für Entwickler: Schritte zur Integration von GitHub mit Crowdin {#integration}
+
+Hier findest du eine Schritt-für-Schritt-Anleitung, wie du mit der Übersetzung deiner Shopify-App in Crowdin beginnst:
+
+
+ 1. **Crowdin-Konto erstellen**. Erstelle [hier](https://crowdin.com/pricing) ein kostenloses Crowdin-Konto (wähle den kostenlosen Tarif).
+
+ 2. **Neues Projekt erstellen**. Nach der Registrierung gehst du zu deiner Profilseite und klickst auf [Projekt erstellen](https://crowdin.com/createproject). Gib dem Projekt einen Namen und wähle deine Ausgangs- und Zielsprachen aus.
+
+ 3. **GitHub-Repository verbinden**. Gehe zu den Projekteinstellungen, klicke auf **Integrationen** und wähle **GitHub** aus. | Du musst dein GitHub-Konto authentifizieren und Crowdin autorisieren. Besuche diese Seite, um mehr über die [GitHub-Integration von Crowdin](https://store.crowdin.com/github) zu erfahren. Wenn du einen anderen Code-Hosting-Dienst verwendest, findest du hier alle verfügbaren Integrationstools, einschließlich Integrationen mit anderen Git-Diensten und einem CLI-Tool für fortgeschrittene Setups.
+
+ 4. **Übersetzung starten**. Deine Zeichenfolgen werden in Crowdin importiert und du kannst nun mit dem Übersetzungsprozess beginnen.
+
+
+## Übersetzungen kaufen
+
+
+ 1. **Zu deinem Projekt navigieren**. Navigiere zur Crowdin-Seite deiner App.
+
+ 2. **Zu den Aufgaben gehen**. Klicke in der oberen Navigationsleiste auf **Aufgaben**. Dadurch gelangst du zur Aufgabenverwaltung.
+
+ 3. **GitHub-Repository verbinden**. Klicke auf die Schaltfläche **Aufgabe erstellen**, die sich normalerweise oben rechts auf dem Bildschirm befindet.
+
+ 4. **Aufgabenparameter festlegen**. Ein Formular wird angezeigt, in dem du Angaben zur Aufgabe ausfüllen musst:
+ * **Sprachen:** Wähle die Zielsprachen für diese Aufgabe aus.
+ * **Aktivitätsart:** Wähle aus, ob die Aufgabe Übersetzung, Korrekturlesen oder beides umfasst.
+ * **Zu übersetzende Dateien:** Wähle die Dateien aus, die übersetzt werden müssen.
+ * **Beauftragter:** Wähle die gewünschte Übersetzungsagentur aus.
+ * **Frist:** Lege bei Bedarf ein Fälligkeitsdatum für die Aufgabe fest.
+
+ 5. **Aufgabe erstellen**. Nachdem du die erforderlichen Angaben ausgefüllt hast, klicke auf die Schaltfläche **Erstellen**.
+
+
+
diff --git a/src/content/docs/de/developer/modules/ai-modules/ai-prompt-provider.mdx b/src/content/docs/de/developer/modules/ai-modules/ai-prompt-provider.mdx
new file mode 100644
index 000000000..a1d647634
--- /dev/null
+++ b/src/content/docs/de/developer/modules/ai-modules/ai-prompt-provider.mdx
@@ -0,0 +1,761 @@
+---
+title: AI-Prompt-Provider-Modul
+description: Externe Auto-Übersetzungs- und Assist-Prompts erstellen
+slug: developer/crowdin-apps-module-ai-prompt-provider
+sidebar:
+ order: 2
+ label: AI-Prompt-Provider
+---
+
+import { Aside } from '@astrojs/starlight/components';
+
+Das AI-Prompt-Provider-Modul wurde entwickelt, um die Erstellung von Prompts für benutzerdefinierte und nativ unterstützte AI-Anbieter zu vereinfachen. Durch die Integration dieses Moduls in deine App kannst du externe Auto-Übersetzungs- und Assist-Prompts erstellen, die verschiedene Arten von Kontextinformationen aus deinen Crowdin-Projekten nutzen. Mit dem Modul kannst du Prompts extern zusammenstellen und sicherstellen, dass sie ohne weitere Änderungen zur Ausführung durch den AI-Anbieter bereit sind. Dieser Ansatz ist besonders hilfreich für Nutzer mit fein abgestimmten Modellen, die bestimmte Prompt-Strukturen benötigen, die von den in Crowdin generierten Strukturen abweichen. So wird eine nahtlose Integration und optimale Leistung ermöglicht.
+
+## Zugriff
+
+Du kannst Zugriff auf dieses Modul für eine der folgenden Benutzerkategorien gewähren:
+
+Für Crowdin:
+
+* Nur ich (also der Projektinhaber)
+* Alle Projektmitglieder
+* Ausgewählte Benutzer
+
+Für Crowdin Enterprise:
+
+* Nur Organisationsadministratoren
+* Alle Benutzer in den Projekten der Organisation
+* Ausgewählte Benutzer
+
+## Struktur
+
+```json title="manifest.json"
+{
+ "modules": {
+ "ai-prompt-provider": [
+ {
+ "key": "ai-prompt-provider",
+ "name": "AI prompt provider",
+ "logo": "/logo.png",
+ "configuratorUrl": "/configurator",
+ "compileUrl": "/compile",
+ "environments": [
+ "crowdin",
+ "crowdin-enterprise"
+ ]
+ }
+ ]
+ }
+}
+```
+
+## Eigenschaften
+
+
+
+
+
key
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Kennung des Moduls innerhalb der Crowdin-App.
+
+
+
+
name
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Der für Menschen lesbare Name des Moduls.
+
+
+
+
logo
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Die relative URL zum Logo der benutzerdefinierten KI, das in der Crowdin-Benutzeroberfläche angezeigt wird.
+ Die empfohlene Auflösung beträgt 48×48 Pixel.
+
+
+
+
configuratorUrl
+
+
Typ:string
+
Erforderlich: nein
+
Beschreibung: Die relative URL für ein iframe, das eine Reihe von Optionen bereitstellt, die im Prompt gespeichert und dem AI-Anbieter zur Verfügung gestellt werden.
+
+
+
+
compileUrl
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Die relative URL des API-Endpunkts, der zum Zusammenstellen des Prompts verwendet wird.
+
+
+
+
environments
+
+
Typ:string
+
Zulässige Werte:crowdin, crowdin-enterprise
+
Beschreibung: Menge der Umgebungen, in denen ein Modul installiert werden kann.
+ Dieser Parameter wird für produktübergreifende Anwendungen benötigt.
Beschreibung: Kennung des Moduls innerhalb der Crowdin-App.
+
+
+
+
name
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Der für Menschen lesbare Name des Moduls.
+
+
+
+
logo
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Die relative URL zum Logo der benutzerdefinierten KI, das in der Crowdin-Benutzeroberfläche angezeigt wird.
+ Die empfohlene Auflösung beträgt 48×48 Pixel.
+
+
+
+
url
+
+
Typ:String
+
Erforderlich: nein
+
Beschreibung: Die relative URL zur Seite mit den Moduleinstellungen (z. B. Einstellungen für die Zugangsdaten des KI-Anbieters usw.).
+
+
+
+
chatCompletionsUrl
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Die relative URL zum Abrufen von Chat-Vervollständigungen.
+
+
+
+
modelsUrl
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Die relative URL zum Abrufen der Liste der vom AI-Anbieter unterstützten Modelle.
+
+
+
+
environments
+
+
Typ:string
+
Zulässige Werte:crowdin, crowdin-enterprise
+
Beschreibung: Menge der Umgebungen, in denen ein Modul installiert werden kann.
+ Dieser Parameter wird für produktübergreifende Anwendungen benötigt.
+
+
+
+
restrictAiToSameApp
+
+
Typ:boolean
+
Beschreibung: Wenn deine Anwendung sowohl die Module AI Provider als auch AI Prompt Provider implementiert und du sie auf die Verwendung als Paar beschränken musst, kannst du diese Eigenschaft aktivieren, um dieses Verhalten sicherzustellen. Wenn diese Eigenschaft aktiviert ist, können Prompts, die den KI-Anbieter der Anwendung verwenden, nur gespeichert werden, wenn sie denselben KI-Prompt-Anbieter der Anwendung verwenden, und umgekehrt.
+
+
+
+
+
+## Kommunikation zwischen der benutzerdefinierten AI-App und Crowdin
+
+Crowdin sendet Prompts über `chatCompletionsUrl` an die App. Die App verarbeitet diese Prompts anschließend und antwortet Crowdin.
+
+Für eine bessere Erfahrung bei der Verwendung deiner benutzerdefinierten AI als Assistent im Crowdin Editor wird empfohlen, den Parameter `stream` mithilfe von [Server-Sent Events](https://developer.mozilla.org/docs/Web/API/Server-sent_events) zu implementieren.
+
+Wenn Streaming unterstützt wird, können AI-generierte Inhalte schrittweise bereitgestellt werden und Nutzern Echtzeit-Feedback geben. Dadurch wird der Workflow verbessert, da sofortige Vorschläge oder Korrekturen angeboten werden, ohne auf eine vollständige Antwort warten zu müssen. So entsteht eine reibungslose, interaktive Erfahrung bei Aufgaben wie der Bestätigung von Terminologie und der Überprüfung der Konsistenz.
+
+Crowdin fügt Anfragen an die App für `chatCompletions` den Parameter `stream` mit dem Wert `true` hinzu und erwartet eine Antwort [im entsprechenden Format](#expected-response-from-the-app-streaming).
+
+Beim Konfigurieren eines benutzerdefinierten AI-Anbieters auf der Seite **AI > Providers** sendet Crowdin mithilfe von `modelsUrl` eine Anfrage an die App, um verfügbare Modelle im entsprechenden Eingabefeld des Anbieters für benutzerdefinierte AI anzuzeigen. Du kannst die benötigten Modelle auswählen und speichern. Sie werden anschließend für die automatische Übersetzung von Inhalten und die Kommunikation mit dem Assistenten über `chatCompletionsUrl` verwendet.
+
+### Anfrage von Crowdin an die App für `chatCompletions`
+
+**HTTP-Anfrage:**
+
+```shell
+https://{AppBaseUrl}/chat/completions/
+```
+
+**Anfrage-Header**
+
+Die Anfrage an `chatCompletionsUrl` enthält Autorisierungs-Header (z. B. `Authorization: Bearer \`).
+
+Beispiel für die Nutzlast der Anfrage:
+
+```json {"Optional; used to enable streaming responses if set to true":3-4}
+{
+ "model": "gpt-3.5-turbo",
+
+ "stream": false,
+ "messages": [
+ {
+ "role": "user",
+ "content": [
+ {
+ "type": "text",
+ "text": "Prompt"
+ },
+ {
+ "type": "image",
+ "mimeType": "image/png",
+ "url": "https://picsum.photos/200/300"
+ }
+ ]
+ },
+ {
+ "role": "assistant",
+ "content": "Reply"
+ },
+ {
+ "role": "user",
+ "content": "New prompt"
+ }
+ ]
+}
+```
+
+### Erwartete Antwort der App
+
+Beispiel für die Nutzlast der Antwort:
+
+```json
+{
+ "choices": [
+ {
+ "message": {
+ "role": "assistant",
+ "content": "New reply"
+ }
+ }
+ ]
+}
+```
+
+### Erwartete Antwort der App (Streaming)
+
+Beispiel für die Nutzlast der Antwort:
+
+```json
+data: {"choices":[{"delta":{"role":"assistant","content":"Your"}}]}
+
+data: {"choices":[{"delta":{"role":"assistant","content":" rephrased"}}]}
+
+....
+
+data: {"choices":[{"delta":{"role":"assistant","content":" translation"}}]}
+
+[DONE]
+```
+
+### Antwort der App an Crowdin für `modelsUrl`
+
+Beispiel für die Nutzlast der Antwort:
+
+```json
+{
+ "data": [
+ {
+ "id": "gpt-3.5-turbo",
+ "supportsJsonMode": true,
+ "supportsFunctionCalling": true,
+ "supportsVision": false,
+ "contextWindowLimit": 16385,
+ "outputLimit": 4096
+ },
+ {
+ "id": "gpt-4-turbo",
+ "supportsJsonMode": true,
+ "supportsFunctionCalling": true,
+ "supportsVision": true,
+ "contextWindowLimit": 128000,
+ "outputLimit": 4096
+ },
+ {
+ "id": "gpt-5-power",
+ "supportsJsonMode": true,
+ "supportsFunctionCalling": true,
+ "supportsVision": true,
+ "contextWindowLimit": 1000000,
+ "outputLimit": 8192
+ },
+ {
+ "id": "gpt-6-devil",
+ "supportsJsonMode": true,
+ "supportsFunctionCalling": true,
+ "supportsStreaming": true,
+ "supportsVision": true,
+ "contextWindowLimit": 1000000,
+ "outputLimit": 8192
+ },
+ {
+ "id": "gpt-7-magic",
+ "supportsJsonMode": true,
+ "supportsFunctionCalling": true,
+ "supportsStreaming": true,
+ "supportsVision": true,
+ "contextWindowLimit": 1000000,
+ "outputLimit": 8192
+ }
+ ]
+}
+```
+
+Standardwerte:
+
+* **supportsJsonMode**: `false`
+* **supportsFunctionCalling**: `false`
+* **supportsStreaming**: `false`
+* **supportsVision**: `false`
+* **contextWindowLimit**: `4096`
+* **outputLimit**: `4096`
+
+Die Struktur der Antworten der App muss den dargestellten Beispielen entsprechen. Andernfalls betrachtet Crowdin sie als ungültig.
diff --git a/src/content/docs/de/developer/modules/file-processing-modules/custom-bundle-generator.mdx b/src/content/docs/de/developer/modules/file-processing-modules/custom-bundle-generator.mdx
new file mode 100644
index 000000000..4cb4aa717
--- /dev/null
+++ b/src/content/docs/de/developer/modules/file-processing-modules/custom-bundle-generator.mdx
@@ -0,0 +1,325 @@
+---
+title: Modul zum Generieren benutzerdefinierter Bundles
+description: Unterstützung für neue benutzerdefinierte Bundles in Crowdin hinzufügen
+slug: developer/crowdin-apps-module-custom-bundle-generator
+sidebar:
+ order: 2
+ label: Custom Bundle Generator
+---
+
+import { Aside } from '@astrojs/starlight/components';
+
+Verwende dieses Modul, um benutzerdefinierte Formate von [Zieldatei-Bundles](/bundles/) zu unterstützen. Der Generierungsprozess wird an deine Crowdin-App delegiert, die ein Modul zum Generieren benutzerdefinierter Bundles implementiert. Wenn die Übersetzungen bereit sind, sendet Crowdin die Übersetzungsdaten an deine App, die das generierte Bundle im gewünschten Format zurückgibt.
+
+## Zugriff
+
+Du kannst Zugriff auf dieses Modul für eine der folgenden Benutzerkategorien gewähren:
+
+Für Crowdin:
+
+* Nur ich (also der Projektinhaber)
+* Alle Projektmitglieder
+* Ausgewählte Benutzer
+
+Für Crowdin Enterprise:
+
+* Nur Organisationsadministratoren
+* Alle Benutzer in den Projekten der Organisation
+* Ausgewählte Benutzer
+
+## Struktur
+
+```json title="manifest.json"
+{
+ "modules": {
+ "custom-file-format": [
+ {
+ "key": "your-module-key-type-xyz",
+ "type": "type-xyz",
+ "url": "/process",
+ "multilingualExport": true,
+ "stringsExport": true,
+ "extensions": [
+ ".resx"
+ ]
+ }
+ ]
+ }
+}
+```
+
+## Eigenschaften
+
+
+
+
+
key
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Kennung des Moduls innerhalb der Crowdin-App.
+
+
+
+
type
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Kennung des benutzerdefinierten Bundle-Typs. Kann in der API verwendet werden, um die Verarbeitung dieses Moduls beim Generieren von Übersetzungs-Bundles auszulösen.
+
+
+
+
url
+
+
Typ:String
+
Erforderlich: ja
+
Beschreibung: Die relative URL, die während des Übersetzungsexports aufgerufen wird. Crowdin sendet eine Anfrage an diese URL, um die Generierung des benutzerdefinierten Bundles zu starten.
+
+
+
+
multilingualExport
+
+
Typ:bool
+
Erforderlich: nein
+
Zulässige Werte:true, false. Standardwert ist false
+
Beschreibung: Ermöglicht den Export von Strings für mehrere Zielsprachen in einer einzigen Anfrage. Nützlich für Dateiformate, die mehrere Sprachen innerhalb desselben Bundles unterstützen.
+
+
+
+
stringsExport
+
+
Typ:bool
+
Erforderlich: ja
+
Beschreibung: Muss für Bundle-Generator-Module auf true gesetzt werden. Gibt an, dass die App exportierte Strings von Crowdin erwartet, um ein benutzerdefiniertes Bundle zu generieren.
+
+
+
+
extensions
+
+
Typ:array
+
Erforderlich: ja
+
Beschreibung: Liste der Dateierweiterungen, die den generierten Bundles zugeordnet sind (z. B. .resx, .json). Definiert das erwartete Ausgabeformat und wird für Dateibenennung und Exportverarbeitung in Crowdin verwendet.
+
+
+
+
+
+## Kommunikation zwischen der App zum Generieren benutzerdefinierter Bundles und Crowdin
+
+Wenn ein Benutzer den Export eines Übersetzungs-Bundles anfordert, sendet Crowdin eine HTTP-Anfrage an die konfigurierte URL der App (`$baseUrl`. `$url`) mit den erforderlichen Projekt-, Sprach- und Übersetzungsdaten. Die App verarbeitet die Daten und antwortet mit der generierten Bundle-Datei.
+
+Für Anfragen und Antworten von und zu Apps zum Generieren benutzerdefinierter Bundles gilt ein Timeout von zwei Minuten. Die maximale Größe von Request- und Response-Payloads ist auf 5 MB begrenzt.
+
+### Anfrage an die App
+
+Beispiel für die Nutzlast der Anfrage:
+
+```json
+// max request payload - 5 MB
+// wait timeout - 2 minutes
+{
+ "jobType": "build-file",
+ "organization": {
+ "id": 1,
+ "domain": "{domain}",
+ "baseUrl": "https://{domain}.crowdin.com",
+ "apiBaseUrl": "https://{domain}.api.crowdin.com"
+ },
+ "project": {
+ "id": 1,
+ "identifier": "your-project-identifier",
+ "name": "Your Project Name"
+ },
+ "sourceLanguage": {
+ "id": "es",
+ "name": "Spanish",
+ "editorCode": "es",
+ "twoLettersCode": "es",
+ "threeLettersCode": "spa",
+ "locale": "es-ES",
+ "androidCode": "es-rES",
+ "osxCode": "es.lproj",
+ "osxLocale": "es",
+ "pluralCategoryNames": ["one"],
+ "pluralRules": "(n != 1)"
+ },
+ "targetLanguages": [
+ {
+ // same structure as for sourceLanguage
+ }
+ ],
+ "strings": [...], // array of segments
+ "stringsUrl": "https://tmp.downloads.crowdin.com/strings.ndjson" // file with segments, in new-line delimited json format
+}
+```
+
+Eigenschaften:
+
+
+
+
+
jobType
+
+
Typ:string
+
Mögliche Werte:build-file
+
Beschreibung: Gibt die Aktion an, die von der App ausgeführt werden soll. Für Bundle-Generator-Module immer auf build-file setzen. Crowdin sendet Übersetzungsdaten und erwartet im Gegenzug ein generiertes Bundle.
+
+
+
+
strings, stringsUrl
+
+
Typ(strings):array
+
Typ(stringsUrl):string
+
Beschreibung: Enthält die Übersetzungsstrings für die Bundle-Generierung. Entweder strings (Inline-Array) oder stringsUrl (öffentlicher Link zu NDJSON) kann verwendet werden.
+
+
Beschreibung: Verwende entweder data.content (base64-codiert) oder data.contentUrl (öffentlich zugängliche URL), um den generierten Inhalt der Übersetzungsdatei zurückzugeben. Nur eines von beiden darf in der Antwort vorhanden sein.
+
Das Format der Datei hängt von deiner Implementierung ab.
+
+
+
+
+
error.message
+
+
Typ:string
+
Beschreibung: Eine Fehlermeldung, die von der App an Crowdin übergeben wird und für einen Benutzer in der Benutzeroberfläche sichtbar ist.
+
+
+
+
+
+### Struktur der Übersetzungsstrings
+
+Unten siehst du ein Beispiel für die Struktur, die verwendet wird, um Übersetzungsstrings zur Generierung benutzerdefinierter Bundles an die App zu übergeben.
+
+Payload Beispiel:
+
+```json
+// strings should be in "new-line delimited json" format if they passed by URL
+[
+ { // non plural string
+ "id": 1, // numeric identifier of the string in Crowdin
+ "identifier": "string-key-1", // required: unique string key
+ "context": "Some context", // optional: additional info for translators
+ "customData": "max 4 KB of custom data", // optional: preserved on export
+ "maxLength": 10, // optional, default null
+ "isHidden": false, // optional, default null
+ "hasPlurals": false, // optional, default false
+ "labels": ["label-one", "label-two"], // optional, default []
+ "text": "String source text", // required: source content
+ "translations": { // required: grouped by target language ID
+ "uk": { // targetLanguage.id
+ "text": "Переклад стрічки", // required: translation text
+ "status": "untranslated | translated | approved" // optional, default "translated"
+ },
+ // can be other languages for multilingual, check "targetLanguages" in the request payload
+ }
+ },
+ { // plural string
+ "id": 2,
+ "identifier": "string-key-2",
+ "context": "Some optional context",
+ "customData": "max 4 KB of custom data",
+ "maxLength": 15,
+ "isHidden": false,
+ "hasPlurals": true,
+ "labels": [],
+ "text": { // keys from sourceLanguage.pluralCategoryNames
+ "one": "One file",
+ "other": "%d files",
+ },
+ "translations": {
+ "uk": {
+ "text": { // keys from targetLanguage.pluralCategoryNames
+ "one": "One file",
+ "few": "%d файла",
+ "many": "%d файлів",
+ },
+ "status": {
+ "one": "untranslated",
+ "few": "translated",
+ "many": "approved",
+ }
+ }
+ }
+ }
+]
+```
+
+Eigenschaften:
+
+
+
+
+
id
+
+
Typ:integer
+
Erforderlich: ja
+
Beschreibung: Numerische ID des Strings in deinem Crowdin-Projekt. Für die Zuordnung von Übersetzungen erforderlich.
+
+
+
+
identifier
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Eindeutiger String-Schlüssel innerhalb der Datei. Erforderlich.
+
+
+
+
text
+
+
Typ:string (nicht plural) oder object (plural)
+
Beschreibung: Source-String-Text. Erforderlich zum Generieren von Übersetzungen. Bei Strings mit Pluralformen ist dies ein Objekt mit den Pluralformschlüsseln aus sourceLanguage.pluralCategoryNames.
+
+
+
+
customData
+
+
Typ:string
+
Erforderlich: nein
+
Beschreibung: Beliebige benutzerdefinierte Daten, die mit dem String verknüpft werden müssen. Hinzugefügte benutzerdefinierte Daten werden zusammen mit den entsprechenden Strings beim Übersetzungsexport exportiert.
+
+
+
+
translations
+
+
Typ:object
+
Erforderlich: ja
+
Beschreibung: Erforderliche Übersetzungen für jede Zielsprache. Jede Sprach-ID wird einem Objekt mit einem Feld text und optional status zugeordnet. Bei Strings mit Pluralformen sind auch text und status Objekte mit Schlüsseln für die jeweiligen Pluralkategorien.
+
+
+
+
diff --git a/src/content/docs/de/developer/modules/file-processing-modules/custom-file-format.mdx b/src/content/docs/de/developer/modules/file-processing-modules/custom-file-format.mdx
new file mode 100644
index 000000000..8d0da7364
--- /dev/null
+++ b/src/content/docs/de/developer/modules/file-processing-modules/custom-file-format.mdx
@@ -0,0 +1,475 @@
+---
+title: Modul für benutzerdefinierte Dateiformate
+description: Unterstützung für neue benutzerdefinierte Dateiformate in Crowdin hinzufügen
+slug: developer/crowdin-apps-module-custom-file-format
+sidebar:
+ order: 1
+ label: Benutzerdefiniertes Dateiformat
+---
+
+import { Aside } from '@astrojs/starlight/components';
+
+Verwende dieses Modul, um Unterstützung für neue benutzerdefinierte Dateiformate hinzuzufügen. Crowdin überträgt das Parsen von Source-Dateien an eine App, die über ein Modul für benutzerdefinierte Dateiformate verfügt. Wenn die Übersetzungen abgeschlossen sind, übergibt Crowdin eine Source-Datei und ein String-Array mit Übersetzungen an die App für benutzerdefinierte Dateiformate, damit diese Übersetzungsdateien generiert.
+
+## Zugriff
+
+Du kannst Zugriff auf dieses Modul für eine der folgenden Benutzerkategorien gewähren:
+
+Für Crowdin:
+
+* Nur ich (also der Projektinhaber)
+* Alle Projektmitglieder
+* Ausgewählte Benutzer
+
+Für Crowdin Enterprise:
+
+* Nur Organisationsadministratoren
+* Alle Benutzer in den Projekten der Organisation
+* Ausgewählte Benutzer
+
+## Struktur
+
+```json title="manifest.json"
+{
+ "modules": {
+ "custom-file-format": [
+ {
+ "key": "your-module-key-type-xyz",
+ "type": "type-xyz",
+ "url": "/process",
+ "multilingual": true,
+ "customSrxSupported": true,
+ "signaturePatterns": {
+ "fileName": "^.+\.xyz$",
+ "fileContent": "\s*"
+ }
+ }
+ ]
+ }
+}
+```
+
+## Eigenschaften
+
+
+
+
+
key
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Kennung des Moduls innerhalb der Crowdin-App.
+
+
+
+
type
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Kennung des benutzerdefinierten Dateiformats. Kann in der API verwendet werden, um die Verarbeitung von Dateien durch die App für benutzerdefinierte Dateiformate zu erzwingen. Wenn der Parameter type in der API verwendet wird, wird signaturePatterns ignoriert. Über diese Eigenschaft definierte Werte können auch von anderen Modulen referenziert werden, beispielsweise über attributes.crowdinType im [Modul zur Verarbeitung nach dem Dateiimport](/developer/crowdin-apps-module-file-post-import-processing/).
+
+
+
+
url
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Die relative URL, die beim Dateiimport, bei Aktualisierungen, beim Hochladen von Übersetzungen und beim Export aufgerufen wird.
+
+
+
+
multilingual
+
+
Typ:bool
+
Erforderlich: nein
+
Zulässige Werte:true, false. Standardwert ist false
+
Beschreibung: Dieser Parameter wird verwendet, um den Inhalt mehrerer Sprachen in einer Anfrage zusammenzufassen, wenn Übersetzungen in deinem Crowdin-Projekt hoch- oder heruntergeladen werden.
+
+
+
+
customSrxSupported
+
+
Typ:bool
+
Erforderlich: nein
+
Zulässige Werte:true, false. Standardwert ist false
+
Beschreibung: Gibt an, ob die App benutzerdefinierte Segmentierungsregeln (SRX 2.0) für ihr Dateiformat unterstützt. Wenn aktiviert, können Segmentierungsregeln für die von diesem Modul verarbeiteten Dateien definiert werden und Crowdin übergibt sie im Parameter customSrxContents an die App. Siehe Inhaltssegmentierung.
+
+
+
+
signaturePatterns
+
+
Typ:Objekt
+
Beschreibung: Enthält reguläre Ausdrücke für fileName und/oder fileContent, die zur Erkennung des Dateityps beim Hochladen einer neuen Ausgangsdatei über die Benutzeroberfläche (oder über die API ohne angegebenen type-Parameter) verwendet werden. Wenn die Datei den regulären Ausdrücken entspricht, wird sie als Datei im benutzerdefinierten Format gekennzeichnet.
+
+
+
+
+
+
+## Kommunikation zwischen der App für benutzerdefinierte Dateiformate und Crowdin
+
+Beim ersten Dateiimport erkennt Crowdin anhand der Parameter `signaturePatterns` oder `type` ein benutzerdefiniertes Dateiformat und sendet eine HTTP-Anfrage an die URL der App (`$baseUrl`. $url\`), damit die Datei weiterverarbeitet werden kann. Die App verarbeitet anschließend die Datei und antwortet Crowdin. Für Anfragen und Antworten von und zu Apps für benutzerdefinierte Dateiformate gilt ein Timeout von zwei Minuten. Die maximale Größe von Request- und Response-Payloads ist auf 5 MB begrenzt.
+
+### Anfrage an die App
+
+Beispiel für die Nutzlast der Anfrage:
+
+```json
+// max request payload - 5 MB
+// wait timeout - 2 minutes
+{
+ "jobType": "parse-file | build-file",
+ "organization": {
+ "id": 1,
+ "domain": "{domain}",
+ "baseUrl": "https://{domain}.crowdin.com",
+ "apiBaseUrl": "https://{domain}.api.crowdin.com"
+ },
+ "project": {
+ "id": 1,
+ "identifier": "your-project-identifier",
+ "name": "Your Project Name"
+ },
+ "file": {
+ "id": 1,
+ "name": "file.xml",
+ "content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // base64 encoded source file content
+ "contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=..." // source file public URL
+ },
+ "sourceLanguage": {
+ "id": "es",
+ "name": "Spanish",
+ "editorCode": "es",
+ "twoLettersCode": "es",
+ "threeLettersCode": "spa",
+ "locale": "es-ES",
+ "androidCode": "es-rES",
+ "osxCode": "es.lproj",
+ "osxLocale": "es",
+ "pluralCategoryNames": ["one"],
+ "pluralRules": "(n != 1)"
+ },
+ "targetLanguages": [
+ {
+ // same structure as for sourceLanguage, empty when uploading a new source file, one element for import_translations & export, can be more for multilingual files
+ }
+ ],
+ "strings": [...], // for the build-file jobs, array of segments
+ "stringsUrl": "https://tmp.downloads.crowdin.com/strings.ndjson", // for the build-file jobs, file with segments, in new-line delimited json format
+ "customSrxContents": "..." // segmentation rules defined for the file, null if there are none
+}
+```
+
+Eigenschaften:
+
+
+
+
+
jobType
+
+
Typ:string
+
Mögliche Werte:parse-file, build-file
+
Beschreibung: Gibt die Aktion an, die von der App ausgeführt werden soll.
+ Der Auftrag parse-file wird für den erstmaligen Upload von Source-Dateien, die Aktualisierung von Source-Dateien und den Upload von Übersetzungen verwendet. Für parse-file-Aufträge übergibt Crowdin der App eine Source-Datei und erwartet im Antwortkörper ein geparstes Source-String-Array.
+ Der Auftrag build-file wird für den Übersetzungsdownload verwendet. Für build-file-Aufträge übergibt Crowdin der App eine Source-Datei und ein String-Array mit Übersetzungen und erwartet im Antwortkörper eine generierte Übersetzungsdatei.
+
+
+
+
file.content, file.contentUrl
+
+
Typ:string
+
Beschreibung: Parameter zur Übergabe des base64-codierten Inhalts der Source-Datei (file.content) oder einer öffentlichen URL zur Source-Datei (file.contentUrl).
+ Beide Parameter können verwendet werden.
+
+
+
+
strings, stringsUrl
+
+
Typ(strings):array
+
Typ(stringsUrl):string
+
Beschreibung: Parameter für den Übersetzungsdownload (nur für den Auftragstyp build-file). strings – Array mit Übersetzungsstrings. stringsUrl – öffentliche URL zu einem Newline-delimited-JSON mit Übersetzungsstrings.
+ Beide Parameter können verwendet werden.
+
+
+
+
customSrxContents
+
+
Typ:string
+
Beschreibung: Inhalt der für die Source-Datei definierten SRX-2.0-Segmentierungsregeldatei. Wird sowohl für parse-file- als auch build-file-Aufträge übergeben, wenn im Modul die Eigenschaft customSrxSupported aktiviert ist. Wenn keine Segmentierungsregeln für die Datei definiert sind, lautet der Parameter null. Siehe Inhaltssegmentierung.
+
+
+
+
+
+### Erwartete Antwort der App für den Auftragstyp `parse-file`
+
+Beispiel für die Nutzlast der Antwort:
+
+```json
+// max response payload - 5 MB
+// wait timeout - 2 minutes
+{
+ "data": {
+ "strings": [...], // segments array
+ "stringsUrl": "https://app.example.com/jKe8ujs7a-segments.ndjson", // new-line delimited json file with parsed strings
+ "preview": "VGhpbmdzIGFyZSBvbmx5IGltcG9zc2libGUgdW50aWwgdGhleSdyZSBub3Qu", // optional, base64 encoded content of preview html file, not supported if there are plural strings
+ "previewUrl": "https://app.example.com/LN3km2K6M-preview.html", // optional, URL of preview html file, not supported if there are plural strings
+ },
+ "error": {
+ "message": "Your error message"
+ }
+}
+```
+
+Eigenschaften:
+
+
+
+
+
data.strings, data.stringsUrl
+
+
Typ(data.strings):array
+
Typ(data.stringsUrl):string
+
Beschreibung: Parameter zur Übergabe des Inhalts der geparsten Strings.
+ data.strings – Array mit geparsten Strings.
+ data.stringsUrl – öffentliche URL zu einem Newline-delimited-JSON mit geparsten Strings.
+ Beide Parameter können verwendet werden.
+
+
+
+
data.preview, data.previewUrl
+
+
Typ(data.preview):string
+
Typ(data.previewUrl):string
+
Beschreibung: Parameter zur Übergabe der optionalen HTML-Vorschau des geparsten String-Inhalts, die von der App generiert werden kann. Die generierte HTML-Vorschau wird im Editor angezeigt. Siehe das Beispiel für eine HTML-Vorschau der Datei.
+
+
+
+
error.message
+
+
Typ:string
+
Beschreibung: Eine Fehlermeldung, die von der App an Crowdin übergeben wird und für einen Benutzer in der Benutzeroberfläche sichtbar ist.
+
+
+
+
+
+### Erwartete Antwort der App für den Auftragstyp `build-file`
+
+Beispiel für die Nutzlast der Antwort:
+
+```json
+// max response payload - 5 MB
+// wait timeout - 2 minutes
+{
+ "data": {
+ "content": "TWF5IHRoZSBGb3JjZSBiZSB3aXRoIHlvdS4=", // base64 encoded translation file content
+ "contentUrl": "https://app.example.com/p5uLEpq8p-result.xml", // translation file public URL
+ },
+ "error": {
+ "message": "Your error message"
+ }
+}
+```
+
+Eigenschaften:
+
+
+
+
+
data.content, data.contentUrl
+
+
Typ(data.content):String
+
Typ(data.contentUrl):String
+
Beschreibung: Parameter, die zum Übergeben des Base64-codierten Inhalts der Übersetzungsdatei (data.content) oder einer öffentlichen URL der Übersetzungsdatei (data.contentUrl) verwendet werden.
+ Beide Parameter können verwendet werden.
+
+
+
+
error.message
+
+
Typ:string
+
Beschreibung: Eine Fehlermeldung, die von der App an Crowdin übergeben wird und für einen Benutzer in der Benutzeroberfläche sichtbar ist.
+
+
+
+
+
+### Struktur des String-Arrays
+
+Unten siehst du ein Beispiel für die erwartete Struktur der Strings für den Auftragstyp `parse-file`, die bei einem Auftragstyp `build-file` an die App übergeben wird.
+
+Payload Beispiel:
+
+```json
+// strings should be in "new-line delimited json" format if they passed by URL
+[
+ { // non plural string
+ "previewId": 1, // only for "parse-file" jobType, required when the HTML preview of the file is generated
+ "id": 1, // only for "build-file" jobType
+ "identifier": "string-key-1", // required
+ "context": "Some context", // optional
+ "customData": "max 4 KB of custom data", // optional
+ "maxLength": 10, // optional, default null
+ "isHidden": false, // optional, default null
+ "hasPlurals": false, // optional, default false
+ "labels": ["label-one", "label-two"], // optional, default []
+ "attributes": { // optional
+ "crowdinType": "html" // the string content is re-parsed with the HTML parser
+ },
+ "text": "String source text", // required
+ "translations": { // optional
+ "uk": { // targetLanguage.id
+ "text": "Переклад стрічки", // required
+ "status": "untranslated | translated | approved" // optional, default "translated"
+ },
+ // can be other languages for multilingual, check "targetLanguages" in the request payload
+ }
+ },
+ { // plural string
+ "previewId": 2,
+ "id": 2,
+ "identifier": "string-key-2",
+ "context": "Some optional context",
+ "customData": "max 4 KB of custom data",
+ "maxLength": 15,
+ "isHidden": false,
+ "hasPlurals": true,
+ "labels": [],
+ "text": { // keys from sourceLanguage.pluralCategoryNames
+ "one": "One file",
+ "other": "%d files",
+ },
+ "translations": {
+ "uk": {
+ "text": { // keys from targetLanguage.pluralCategoryNames
+ "one": "One file",
+ "few": "%d файла",
+ "many": "%d файлів",
+ },
+ "status": {
+ "one": "untranslated",
+ "few": "translated",
+ "many": "approved",
+ }
+ }
+ }
+ }
+]
+```
+
+Eigenschaften:
+
+
+
+
+
previewId
+
+
Typ:string oder number
+
Erforderlich: ja (nur für den Auftrag parse-file, wenn die HTML-Vorschau der Datei generiert wird)
+
Beschreibung: Eindeutige Kennung, die den String mit seinem Element in der HTML-Vorschau verknüpft. Ihr Wert muss exakt dem Token \{previewId} entsprechen, das im entsprechenden Element in id="string_preview_id_\{previewId}" verwendet wird (siehe HTML-Vorschau der Datei). Wird nur für den Auftragstyp parse-file verwendet.
+
+
+
+
id
+
+
Typ:integer
+
Beschreibung: Numerische ID des Strings in deinem Crowdin-Projekt. Wird nur für den Auftragstyp build-file verwendet.
+
+
+
+
identifier
+
+
Typ:string
+
Beschreibung: Eindeutiger String-Schlüssel innerhalb der Datei.
+
+
+
+
customData
+
+
Typ:string
+
Beschreibung: Beliebige benutzerdefinierte Daten, die mit dem String verknüpft werden müssen. Hinzugefügte benutzerdefinierte Daten werden zusammen mit den entsprechenden Strings beim Übersetzungsexport exportiert.
+
+
+
+
attributes.crowdinType
+
+
Typ:String
+
Zulässige Werte: Entsprechen größtenteils den für die Add File API-Methode akzeptierten type-Werten, mit Ausnahme der folgenden: auto, xml, csv, docx, xlsx, dita, idml, mif, svg. Zusätzlich werden benutzerdefinierte Werte unterstützt, die über die type-Eigenschaft dieses Moduls definiert wurden.
+
Beschreibung: Wird verwendet, um bei erforderlicher Nachbearbeitung den Dateiformattyp eines Strings anzugeben. Wenn ein von der App zurückgegebener String beispielsweise eingebettetes HTML enthält, kannst du durch Setzen von crowdinType auf html den String mithilfe des HTML-Parsers erneut parsen. Crowdin parst und segmentiert solche Inhalte genauso wie eine Datei dieses Formats und führt die Übersetzungen beim Erstellen der Übersetzungsdatei wieder mit dem ursprünglichen String zusammen. Wird nur für den Auftragstyp parse-file verwendet. Siehe Inhaltssegmentierung.
+
+
+
+
+
+## Inhaltssegmentierung
+
+Der Inhalt eines benutzerdefinierten Dateiformats kann auf zwei Arten in kleinere Segmente aufgeteilt werden: Deine App segmentiert den Inhalt selbst mit den von Crowdin übergebenen Regeln oder Crowdin segmentiert den Inhalt mit einem seiner eigenen Parser. Segmentiere ihn in der App, wenn nur deine App den Inhalt parsen kann, und überlasse die Segmentierung einem Crowdin-Parser, wenn ein String Inhalt in einem Format enthält, das Crowdin bereits unterstützt, z. B. HTML oder Markdown.
+
+### Inhalte in deiner App segmentieren
+
+Setze die Eigenschaft `customSrxSupported` in der Modulkonfiguration auf `true`. [Segmentierungsregeln (SRX 2.0)](/custom-segmentation/) können anschließend für die von diesem Modul verarbeiteten Dateien festgelegt werden, beispielsweise über den Parameter `importOptions.srxStorageId` der APIs [Add File](/developer/api/v2/#operation/api.projects.files.post) und [Update File](/developer/api/v2/#operation/api.projects.files.patch).
+
+Crowdin übergibt den Inhalt der für eine Datei definierten Regeln im Parameter `customSrxContents` sowohl bei `parse-file`- als auch bei `build-file`-Anfragen. Die App führt die Segmentierung selbst durch:
+
+* Beim Auftrag `parse-file` teilt die App den Text anhand dieser Regeln auf und gibt jedes Segment als separaten String mit eigener `identifier` (und eigener `previewId`, wenn die App die HTML-Vorschau der Datei generiert) zurück.
+* Beim Auftrag `build-file` empfängt die App diese Segmente mit ihren Übersetzungen und setzt sie beim Generieren der Übersetzungsdatei wieder zusammen.
+
+Wenn für eine Datei keine Regeln definiert sind, ist `customSrxContents` gleich `null`.
+
+Auch beim Übersetzungsexport wird der Auftrag `parse-file` verwendet. Gib daher beim Parsen einer Übersetzungsdatei dieselben IDs pro Segment zurück. Andernfalls stimmen die hochgeladenen Übersetzungen nicht mit den vorhandenen Segmenten überein.
+
+### Inhalte mit einem Crowdin-Parser segmentieren
+
+Setze das Attribut [`attributes.crowdinType`](#strings-array-structure) eines Strings auf das Format seines Inhalts. Crowdin parst einen solchen String anschließend genauso wie eine Datei dieses Formats. Dadurch wird der Inhalt anhand der Projekteinstellungen für dieses Format oder anhand der Standardssegmentierung dieses Formats segmentiert.
+
+Jedes Segment wird zu einem separaten String im Projekt. Beim Auftrag `build-file` führt Crowdin die Übersetzungen wieder mit dem ursprünglichen String zusammen, sodass die App denselben String erhält, den sie beim Parsen der Datei zurückgegeben hat.
+
+Strings mit Pluralformen werden nicht erneut geparst; in stringbasierten Projekten hat das Attribut keine Auswirkung.
+
+
+
+## HTML-Vorschau der Datei
+
+Die HTML-Vorschau rendert im Editor eine [WYSIWYG-Ansicht der Datei](/online-editor/#wysiwyg-file-preview). Umschließe jeden übersetzbaren String mit einem Element, das beide folgenden Attribute enthält:
+
+* `id="string_preview_id_{previewId}"`, wobei `{previewId}` mit der `previewId` des entsprechenden Strings aus der `parse-file`-Antwort übereinstimmt. Verwende doppelte Anführungszeichen und stelle sicher, dass der Wert exakt übereinstimmt.
+* `class="crowdin_phrase"`, damit der Editor den String in der Vorschau hervorheben und direkt darin bearbeiten kann. Ohne diese Klasse wird der String nur hervorgehoben, wenn er aus der String-Liste ausgewählt wird, und die direkte Bearbeitung in der Vorschau funktioniert nicht.
+
+Wenn die App einen String in mehrere Segmente aufteilt, gib jedem Segment eine eigene `previewId` und ein eigenes Element in der Vorschau. Wenn mehrere Segmente dieselbe `previewId` verwenden, wird nur das letzte mit dem Element verknüpft.
+
+Die HTML-Vorschau wird nur beim Import der Source-Datei generiert. Sie wird beim Hochladen von Übersetzungen (einschließlich mehrsprachiger Uploads) nicht erzeugt und nicht angezeigt, wenn die App Strings mit Pluralformen übergibt.
+
+Beispiel für die HTML-Vorschau der Datei:
+
+```html
+
+
+ Optional Title
+
+
+
+
HTML preview of the file
+
+
+
Key:
+
Text:
+
+
+
Key 1
+
Source Text 1
+
+
+
Key 2
+
Source Text 2
+
+
+
+
+```
diff --git a/src/content/docs/de/developer/modules/file-processing-modules/file-post-export-processing.mdx b/src/content/docs/de/developer/modules/file-processing-modules/file-post-export-processing.mdx
new file mode 100644
index 000000000..b417a54da
--- /dev/null
+++ b/src/content/docs/de/developer/modules/file-processing-modules/file-post-export-processing.mdx
@@ -0,0 +1,218 @@
+---
+title: Modul zur Verarbeitung nach dem Export von Dateien
+description: Bearbeite deine Dateien, nachdem du sie aus Crowdin exportiert hast
+slug: developer/crowdin-apps-module-file-post-export-processing
+sidebar:
+ order: 6
+ label: Verarbeitung von Dateien nach dem Export
+---
+
+import { Aside } from '@astrojs/starlight/components';
+
+Mit dem Modul zur Verarbeitung nach dem Export kannst du deine Dateien bearbeiten, nachdem du sie aus Crowdin exportiert hast. Mit dem Modul zur Verarbeitung nach dem Export kannst du automatische Änderungen auf ausgewählte Dateien anwenden. Dieses Modul kann mit einer Vielzahl von Dateiformaten wie TXT, XML, JSON und vielen weiteren arbeiten, um deren Inhalte anzupassen.
+
+Mit dem Modul zur Verarbeitung nach dem Export in deiner Crowdin-App kannst du Dateiformat, Struktur und Inhalt anpassen. Da das Modul ausgeführt wird, nachdem Crowdin die Datei exportiert hat, kannst du den Inhalt noch anpassen, nachdem die Datei vom System verarbeitet wurde.
+
+## Zugriff
+
+Du kannst Zugriff auf dieses Modul für eine der folgenden Benutzerkategorien gewähren:
+
+Für Crowdin:
+
+* Nur ich (also der Projektinhaber)
+* Alle Projektmitglieder
+* Ausgewählte Benutzer
+
+Für Crowdin Enterprise:
+
+* Nur Organisationsadministratoren
+* Alle Benutzer in den Projekten der Organisation
+* Ausgewählte Benutzer
+
+## Struktur
+
+```json title="manifest.json"
+{
+ "modules": {
+ "file-post-export": [
+ {
+ "key": "your-post-export-module-key",
+ "url": "/export-file",
+ "signaturePatterns": {
+ "fileName": "^.+\.xml$",
+ "fileContent": "\s*"
+ }
+ }
+ ]
+ }
+}
+```
+
+## Eigenschaften
+
+
+
+
+
key
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Kennung des Moduls innerhalb der Crowdin-App.
+
+
+
+
url
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Die relative URL, die beim Export einer Datei aufgerufen wird.
+
+
+
+
signaturePatterns
+
+
Typ:Objekt
+
Beschreibung: Enthält reguläre Ausdrücke für fileName und/oder fileContent, die zur Erkennung des Dateityps beim Exportieren einer Übersetzungsdatei verwendet werden.
+
+
+
+
+
+
+## Kommunikation zwischen der File-Processing-App und Crowdin
+
+Beim Export einer Datei erkennt Crowdin anhand des Parameters `signaturePatterns` das passende Modul und sendet eine HTTP-Anfrage an die URL der App (`$baseUrl . $url`), damit die Datei weiterverarbeitet werden kann.
+
+Zusätzlich überprüft Crowdin während des Datei-Exports den Dateinamen und den Inhalt, um sicherzustellen, dass sie zu den passenden Modulen der File-Processing-App passen. Dieser Prozess kann das Modul zur Verarbeitung vor dem Export umfassen, um die Zeichenfolgen vor dem Export zu ändern, sowie das Modul zur Verarbeitung nach dem Export, um den Dateiinhalt nach dem Export zu ändern.
+
+Um den Dateiinhalt zu ändern, ermittelt das System zuerst das passende Modul zur Verarbeitung nach dem Export und sendet ihm den Dateiinhalt. Das Modul führt anschließend die zuvor festgelegten Änderungen durch, die Änderungen am Dateiformat, an der Struktur und am Inhalt umfassen können.
+
+Sobald das Post-Export-Modul die Änderungen an der Datei abgeschlossen hat, gibt Crowdin den geänderten Dateiinhalt sowie – sofern zutreffend – einen neuen Dateinamen oder eine neue Dateierweiterung zurück.
+
+### Anfrage an die Dateiverarbeitungs-App
+
+Beispiel für die Nutzlast der Anfrage:
+
+```json
+// maximales Request-Payload - 5 MB
+// Timeout - 2 Minuten
+{
+ "jobType": "file-post-export",
+ "organization": {
+ "id": 1,
+ "domain": "{domain}",
+ "baseUrl": "https://{domain}.crowdin.com",
+ "apiBaseUrl": "https://{domain}.api.crowdin.com"
+ },
+ "project": {
+ "id": 1,
+ "identifier": "your-project-identifier",
+ "name": "Your Project Name"
+ },
+ "file": {
+ "id": 1,
+ "name": "file.xml",
+ "content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // Base64-kodierter Inhalt der exportierten Datei
+ "contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=...", // Öffentliche URL der exportierten Datei
+ "rawContent": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // Base64-kodierter Inhalt der Quelldatei
+ "rawContentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=..." // Öffentliche URL der Quelldatei
+ },
+ "sourceLanguage": {
+ "id": "es",
+ "name": "Spanish",
+ "editorCode": "es",
+ "twoLettersCode": "es",
+ "threeLettersCode": "spa",
+ "locale": "es-ES",
+ "androidCode": "es-rES",
+ "osxCode": "es.lproj",
+ "osxLocale": "es",
+ "pluralCategoryNames": ["one"],
+ "pluralRules": "(n != 1)"
+ },
+ "targetLanguages": [
+ {
+ // dieselbe Struktur wie bei sourceLanguage; ein Element pro Export, bei mehrsprachigen Dateien können es mehrere sein
+ }
+ ]
+}
+```
+
+Eigenschaften:
+
+
+
+
+
jobType
+
+
Typ:string
+
Wert:file-post-export
+
Beschreibung: Gibt die Aktion des Moduls zur Nachbearbeitung von Dateien an.
+
+
+
+
file.content, file.contentUrl
+
+
Typ:String
+
Beschreibung: Parameter, die zum Übergeben des Base64-codierten Inhalts der exportierten Datei (file.content) oder einer öffentlichen URL der exportierten Datei (file.contentUrl) verwendet werden.
+ Beide Parameter können verwendet werden.
+
+
+
+
file.rawContent, file.rawContentUrl
+
+
Typ:string
Beschreibung: Parameter, die zum Übergeben des Base64-codierten Inhalts der Ausgangsdatei (file.rawContent) oder einer öffentlichen URL der Ausgangsdatei (file.rawContentUrl) verwendet werden.
+ Beide Parameter können verwendet werden.
+
+
+
+
+
+### Erwartete Antwort der App
+
+Beispiel für die Nutzlast der Antwort:
+
+```json
+// maximales Response-Payload - 5 MB
+// Timeout - 2 Minuten
+{
+ "data": {
+ "content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // Base64-kodierter Inhalt der geänderten Datei
+ "contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=...", // Öffentliche URL der geänderten Datei
+ "exportPattern": "file.html" // optionales, neues Exportmuster für die resultierende Datei
+ },
+ "error": {
+ "message": "Your error message"
+ }
+}
+```
+
+Eigenschaften:
+
+
+
+
+
data.content, data.contentUrl
+
+
Typ(data.content):String
+
Typ(data.contentUrl):String
+
Beschreibung: Parameter, die zum Übergeben des Base64-codierten Inhalts der geänderten Datei (data.content) oder einer öffentlichen URL der geänderten Datei (data.contentUrl) verwendet werden.
+ Beide Parameter können verwendet werden.
+
+
+
+
exportPattern
+
+
Typ:string
+
Beschreibung: Optionaler Parameter zum Überschreiben des Exportmusters für eine resultierende Datei.
+
+
+
+
error.message
+
+
Typ:string
+
Beschreibung: Eine Fehlermeldung, die von der App an Crowdin übergeben wird und für einen Benutzer in der Benutzeroberfläche sichtbar ist.
+
+
+
+
diff --git a/src/content/docs/de/developer/modules/file-processing-modules/file-post-import-processing.mdx b/src/content/docs/de/developer/modules/file-processing-modules/file-post-import-processing.mdx
new file mode 100644
index 000000000..70aaab659
--- /dev/null
+++ b/src/content/docs/de/developer/modules/file-processing-modules/file-post-import-processing.mdx
@@ -0,0 +1,308 @@
+---
+title: Modul zur Verarbeitung nach dem Dateiimport
+description: Ändere die aus deinen Dateien geparsten Strings nach dem Dateiimport
+slug: developer/crowdin-apps-module-file-post-import-processing
+sidebar:
+ order: 4
+ label: Verarbeitung nach dem Dateiimport
+---
+
+import { Aside } from '@astrojs/starlight/components';
+
+Mit dem Modul zur Verarbeitung nach dem Import kannst du die aus deinen Dateien geparsten Strings nach dem Dateiimport ändern. Dieses Modul arbeitet sowohl mit den Source-Strings als auch mit den dazugehörigen Übersetzungen. Das Modul zur Verarbeitung vor dem Import ist besonders nützlich, wenn du die ursprüngliche Dateistruktur beibehalten und die Datei unverändert parsen möchtest, aber Änderungen an Source-Strings, Kontext, String-Übersetzungen oder z. B. Labels und maximalen Längen für Übersetzungen vornehmen möchtest.
+
+Mit dem Modul zur Verarbeitung nach dem Import erhältst du einen Payload mit dem Dateiinhalt und den daraus geparsten Strings. Mit dem Modul zur Verarbeitung nach dem Import kannst du die geparsten Strings auf verschiedene Arten ändern (z. B. aufteilen, zusammenführen oder neue Strings hinzufügen) und die geänderten Strings zurückgeben. So kannst du die Strings anpassen, ohne den Dateiinhalt direkt zu verändern.
+
+## Zugriff
+
+Du kannst Zugriff auf dieses Modul für eine der folgenden Benutzerkategorien gewähren:
+
+Für Crowdin:
+
+* Nur ich (also der Projektinhaber)
+* Alle Projektmitglieder
+* Ausgewählte Benutzer
+
+Für Crowdin Enterprise:
+
+* Nur Organisationsadministratoren
+* Alle Benutzer in den Projekten der Organisation
+* Ausgewählte Benutzer
+
+## Struktur
+
+```json title="manifest.json"
+{
+ "modules": {
+ "file-post-import": [
+ {
+ "key": "your-post-import-module-key",
+ "url": "/import-strings",
+ "signaturePatterns": {
+ "fileName": "^.+\.xml$",
+ "fileContent": "\s*"
+ }
+ }
+ ]
+ }
+}
+```
+
+## Eigenschaften
+
+
+
+
+
key
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Kennung des Moduls innerhalb der Crowdin-App.
+
+
+
+
url
+
+
Typ:string
+
Erforderlich: ja
+
Beschreibung: Die relative URL, die beim Dateiimport, bei Aktualisierungen und beim Hochladen von Übersetzungen aufgerufen wird.
+
+
+
+
signaturePatterns
+
+
Typ:object
+
Beschreibung: Enthält reguläre Ausdrücke für fileName und/oder fileContent, die zum Erkennen des Dateityps beim Hochladen einer neuen Source-Datei über die UI (oder über die API ohne angegebenen type-Parameter) verwendet werden.
+
+
+
+
+
+
+## Kommunikation zwischen der File-Processing-App und Crowdin
+
+Beim Import einer Datei erkennt das System anhand des Parameters `signaturePatterns` ein geeignetes Modul zur Verarbeitung nach dem Import und sendet zur weiteren Verarbeitung eine HTTP-Anfrage an die URL der App (`$baseUrl`. `$url`) mit den extrahierten Strings.
+
+Die App zur Dateiverarbeitung ändert die empfangenen Strings entsprechend deinen Anforderungen. Mit dem Modul zur Verarbeitung nach dem Import kannst du neue Strings aufteilen, zusammenführen oder hinzufügen bzw. die Attribute vorhandener Strings bearbeiten. Nachdem die geänderten Strings vom Modul zur Verarbeitung nach dem Import zurückgegeben wurden, werden sie dem Crowdin-Projekt hinzugefügt und stehen zur Übersetzung zur Verfügung.
+
+### Anfrage an die Dateiverarbeitungs-App
+
+Beispiel für die Nutzlast der Anfrage:
+
+```json
+// max request payload - 5 MB
+// wait timeout - 2 minutes
+{
+ "jobType": "file-post-import",
+ "organization": {
+ "id": 1,
+ "domain": "{domain}",
+ "baseUrl": "https://{domain}.crowdin.com",
+ "apiBaseUrl": "https://{domain}.api.crowdin.com"
+ },
+ "project": {
+ "id": 1,
+ "identifier": "your-project-identifier",
+ "name": "Your Project Name"
+ },
+ "file": {
+ "id": 1,
+ "name": "file.xml",
+ "content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // base64 encoded source file content
+ "contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=..." // source file public URL
+ },
+ "sourceLanguage": {
+ "id": "es",
+ "name": "Spanish",
+ "editorCode": "es",
+ "twoLettersCode": "es",
+ "threeLettersCode": "spa",
+ "locale": "es-ES",
+ "androidCode": "es-rES",
+ "osxCode": "es.lproj",
+ "osxLocale": "es",
+ "pluralCategoryNames": ["one"],
+ "pluralRules": "(n != 1)"
+ },
+ "targetLanguages": [
+ {
+ // same structure as for sourceLanguage, empty when uploading a new source file, one element for import_translations, can be more for multilingual files
+ }
+ ],
+ "strings": [...],
+ "stringsUrl": "https://tmp.downloads.crowdin.com/strings.ndjson",
+}
+```
+
+Eigenschaften:
+
+
+
+
+
jobType
+
+
Typ:string
+
Wert:file-post-import
+
Beschreibung: Gibt die Aktion des Moduls zur Verarbeitung nach dem Dateiimport an.
+
+
+
+
file.content, file.contentUrl
+
+
Typ:string
+
Beschreibung: Parameter zur Übergabe des base64-codierten Inhalts der Source-Datei (file.content) oder einer öffentlichen URL zur Source-Datei (file.contentUrl).
+ Beide Parameter können verwendet werden.
+
+
+
+
strings, stringsUrl
+
+
Typ(strings):array
+
Typ(stringsUrl):string
+
Beschreibung: Parameter für die nach dem Dateiimport extrahierten Strings. strings – String-Array. stringsUrl – öffentliche URL zu einem Newline-delimited-JSON mit Strings.
+ Diese beiden Parameter können verwendet werden
+
+
+
+
+
+### Erwartete Antwort der App
+
+Beispiel für die Nutzlast der Antwort:
+
+```json
+// max response payload - 5 MB
+// wait timeout - 2 minutes
+{
+ "data": {
+ "strings": [...], // modified strings array
+ "stringsUrl": "https://app.example.com/jKe8ujs7a-segments.ndjson", // new-line delimited json file with modified strings
+ "preview": "VGhpbmdzIGFyZSBvbmx5IGltcG9zc2libGUgdW50aWwgdGhleSdyZSBub3Qu", // optional, base64 encoded content of preview html file, not supported if there are plural strings
+ "previewUrl": "https://app.example.com/LN3km2K6M-preview.html", // optional, URL of preview html file, not supported if there are plural strings
+ },
+ "error": {
+ "message": "Your error message"
+ }
+}
+```
+
+Eigenschaften:
+
+
+
+
+
data.strings, data.stringsUrl
+
+
Typ(data.strings):array
+
Typ(data.stringsUrl):string
+
Beschreibung: Parameter zur Übergabe des Inhalts der geänderten Strings.
+ data.strings – Array mit geänderten Strings.
+ data.stringsUrl – öffentliche URL zu einem Newline-delimited-JSON mit geänderten Strings.
+ Beide Parameter können verwendet werden.
+
+
+
+
data.preview, data.previewUrl
+
+
Typ(data.preview):string
+
Typ(data.previewUrl):string
+
Beschreibung: Parameter zur Übergabe der optionalen HTML-Vorschau des geparsten String-Inhalts, die von der App generiert werden kann. Die generierte HTML-Vorschau wird im Editor angezeigt. Siehe das Beispiel für eine HTML-Vorschau der Datei.
+
+
+
+
error.message
+
+
Typ:string
+
Beschreibung: Eine Fehlermeldung, die von der App an Crowdin übergeben wird und für einen Benutzer in der Benutzeroberfläche sichtbar ist.
+
+
+
+
+
+### Struktur des String-Arrays
+
+Unten siehst du ein Beispiel für die Strings, die die App nach dem Import erhält. Dieselbe Struktur wird für die geänderten Strings in der Antwort der App verwendet.
+
+Payload Beispiel:
+
+```json
+// strings should be in "new-line delimited json" format if they passed by URL
+[
+ { // non plural string
+ "uniqId": "9cdfb439c7876e703e307864c9167a15::1", // required, unique ID
+ "identifier": "string-key-1", // required
+ "context": "Some context", // optional
+ "maxLength": 10, // optional, default null
+ "isHidden": false, // optional, default null
+ "hasPlurals": false, // optional, default false
+ "labels": ["label-one", "label-two"], // optional, default []
+ "attributes": {
+ "crowdinType": "json"
+ },
+ "text": "String source text", // required
+ "translations": { // optional
+ "uk": { // targetLanguage.id
+ "text": "Переклад стрічки", // required
+ "status": "untranslated | translated | approved" // optional, default "translated"
+ }
+ // can be other languages for multilingual, check "targetLanguages" in the request payload
+ }
+ },
+ { // plural string
+ "uniqId": "9cdfb439c7876e703e307864c9167a15::2", // required, unique ID
+ "identifier": "string-key-2",
+ "context": "Some optional context",
+ "maxLength": 15,
+ "isHidden": false,
+ "hasPlurals": true,
+ "labels": [],
+ "text": { // keys from sourceLanguage.pluralCategoryNames
+ "one": "One file",
+ "other": "%d files"
+ },
+ "translations": {
+ "uk": {
+ "text": { // keys from targetLanguage.pluralCategoryNames
+ "one": "One file",
+ "few": "%d файла",
+ "many": "%d файлів"
+ },
+ "status": {
+ "one": "untranslated",
+ "few": "translated",
+ "many": "approved"
+ }
+ }
+ }
+ }
+]
+```
+
+Eigenschaften:
+
+
+
+
+
uniqId
+
+
Typ:string
+
Beschreibung: Eindeutige ID innerhalb der Datei.
+
+
+
+
identifier
+
+
Typ:string
+
Beschreibung: Sichtbarer String-Schlüssel.
+
+
+
+
attributes.crowdinType
+
+
Typ:String
+
Zulässige Werte: Entsprechen größtenteils den für die Add File API-Methode akzeptierten type-Werten, mit Ausnahme der folgenden: auto, xml, csv, docx, xlsx, dita, idml, mif, svg. Zusätzlich werden benutzerdefinierte Werte unterstützt, die über die type-Eigenschaft im Modul für benutzerdefinierte Dateiformate definiert wurden.
+
Beschreibung: Wird verwendet, um bei erforderlicher Nachbearbeitung den Dateiformattyp eines Strings anzugeben. Wenn eine JSON-Datei beispielsweise Strings mit eingebettetem HTML enthält, kannst du durch Setzen von crowdinType auf html den String mithilfe des HTML-Parsers erneut parsen. Dies trägt dazu bei, eine korrekte Darstellung sicherzustellen und zu verhindern, dass unerwünschte Tags angezeigt werden. Crowdin parst und segmentiert solche Inhalte genauso wie eine Datei dieses Formats und führt die Übersetzungen beim Erstellen der Übersetzungsdatei wieder mit dem ursprünglichen String zusammen. Der Wert muss einem unterstützten Crowdin-Dateityp oder einer benutzerdefinierten Dateiformat-ID entsprechen.
+
+
+
+
diff --git a/src/content/docs/de/developer/modules/file-processing-modules/file-pre-export-processing.mdx b/src/content/docs/de/developer/modules/file-processing-modules/file-pre-export-processing.mdx
index fa4e331fd..d8899e69c 100644
--- a/src/content/docs/de/developer/modules/file-processing-modules/file-pre-export-processing.mdx
+++ b/src/content/docs/de/developer/modules/file-processing-modules/file-pre-export-processing.mdx
@@ -75,9 +75,9 @@ Für Crowdin Enterprise:
signaturePatterns
-
Type:object
-
Description: Contains fileName and/or fileContent regular expressions used to detect file type when exporting a translation file.
-
+
Typ:Objekt
+
Beschreibung: Enthält reguläre Ausdrücke für fileName und/oder fileContent, die zur Erkennung des Dateityps beim Exportieren einer Übersetzungsdatei verwendet werden.
+
@@ -155,7 +155,7 @@ Eigenschaften:
Typ:string
Beschreibung: Parameter zur Übergabe des base64-codierten Inhalts der Source-Datei (file.content) oder einer öffentlichen URL zur Source-Datei (file.contentUrl).
- Either of these two parameters can be used.
+ Beide Parameter können verwendet werden.
@@ -164,7 +164,7 @@ Eigenschaften:
Typ(strings):array
Typ(stringsUrl):string
Beschreibung: Parameter für die Source-Strings und ihre jeweiligen Übersetzungen vor dem Dateiexport. strings – String-Array. stringsUrl – öffentliche URL zu einem Newline-delimited-JSON mit Strings.
- Either of these two parameters can be used.
+ Beide Parameter können verwendet werden.
@@ -200,7 +200,7 @@ Eigenschaften:
Beschreibung: Parameter zur Übergabe des Inhalts der geänderten Strings. data.strings – Array mit geänderten Strings. data.stringsUrl – öffentliche URL zu einem Newline-delimited-JSON mit geänderten Strings.
- Either of these two parameters can be used.
+ Beide Parameter können verwendet werden.
diff --git a/src/content/docs/de/developer/modules/file-processing-modules/file-pre-import-processing.mdx b/src/content/docs/de/developer/modules/file-processing-modules/file-pre-import-processing.mdx
index 2031aaa4f..da2c8f0fd 100644
--- a/src/content/docs/de/developer/modules/file-processing-modules/file-pre-import-processing.mdx
+++ b/src/content/docs/de/developer/modules/file-processing-modules/file-pre-import-processing.mdx
@@ -73,7 +73,7 @@ Für Crowdin Enterprise:
Typ:object
Beschreibung: Enthält reguläre Ausdrücke für fileName und/oder fileContent, die zum Erkennen des Dateityps beim Hochladen einer neuen Source-Datei über die UI (oder über die API ohne angegebenen type-Parameter) verwendet werden.
-
+
@@ -155,7 +155,7 @@ Eigenschaften:
Typ:string
Beschreibung: Parameter zur Übergabe des base64-codierten Inhalts der Source-Datei (file.content) oder einer öffentlichen URL zur Source-Datei (file.contentUrl).
- Either of these two parameters can be used.
+ Beide Parameter können verwendet werden.
@@ -188,10 +188,10 @@ Eigenschaften:
data.content, data.contentUrl
-
Type(data.content):string
-
Type(data.contentUrl):string
-
Description: Parameters used to pass the base64 encoded modified file content (data.content) or a modified file public URL (data.contentUrl).
- Either of these two parameters can be used.
+
Typ(data.content):String
+
Typ(data.contentUrl):String
+
Beschreibung: Parameter, die zum Übergeben des Base64-codierten Inhalts der geänderten Datei (data.content) oder einer öffentlichen URL der geänderten Datei (data.contentUrl) verwendet werden.
+ Beide Parameter können verwendet werden.
diff --git a/src/content/docs/de/developer/modules/file-processing-modules/translation-alignment.mdx b/src/content/docs/de/developer/modules/file-processing-modules/translation-alignment.mdx
index d45767447..94152ec39 100644
--- a/src/content/docs/de/developer/modules/file-processing-modules/translation-alignment.mdx
+++ b/src/content/docs/de/developer/modules/file-processing-modules/translation-alignment.mdx
@@ -77,7 +77,7 @@ Für Crowdin Enterprise:
Typ:object
Beschreibung: Enthält reguläre Ausdrücke für fileName und/oder fileContent, die zum Erkennen des Dateityps beim Hochladen von Übersetzungen über die UI (oder über die API ohne angegebenen type-Parameter) verwendet werden.
-
+
@@ -212,7 +212,7 @@ Eigenschaften:
Typ(sourceStrings):array
Typ(sourceStringsUrl):string
Beschreibung: Parameter für die Source-Strings aus der Originaldatei. sourceStrings – Array mit Source-String-Objekten. sourceStringsUrl – öffentliche URL zu einem Newline-delimited-JSON mit Source-Strings.
- Either of these two parameters can be used.
+ Beide Parameter können verwendet werden.
@@ -222,7 +222,7 @@ Eigenschaften:
Typ(translationStringsUrl):string
Beschreibung: Parameter für die aus der hochgeladenen Übersetzungsdatei geparsten Strings.
translationStrings – Array mit einfachen String-Objekten. translationStringsUrl – öffentliche URL zu einem Newline-delimited-JSON mit Übersetzungsstrings.
- Either of these two parameters can be used.
+ Beide Parameter können verwendet werden.
@@ -266,7 +266,7 @@ Eigenschaften:
Typ(data.translationsUrl):string
Beschreibung: Parameter zur Übergabe der zugeordneten Übersetzungen.
data.translations – Array mit Zuordnungsobjekten. data.translationsUrl – öffentliche URL zu einem Newline-delimited-JSON mit Zuordnungsobjekten.
- Either of these two parameters can be used.
+ Beide Parameter können verwendet werden.
diff --git a/src/content/docs/de/enterprise/getting-started/account/messages.mdx b/src/content/docs/de/enterprise/getting-started/account/messages.mdx
new file mode 100644
index 000000000..95e1d75dd
--- /dev/null
+++ b/src/content/docs/de/enterprise/getting-started/account/messages.mdx
@@ -0,0 +1,68 @@
+---
+title: Nachrichten
+description: Mit Projektmitgliedern kommunizieren
+slug: enterprise/messages
+sidebar:
+ order: 1
+---
+
+import { Image } from 'astro:assets';
+import { Steps, Aside } from '@astrojs/starlight/components';
+import { Icon } from 'astro-icon/components';
+import all from '!/enterprise/getting-started/account/messages_all.png';
+import createNewSearch from '!/enterprise/getting-started/account/messages_create_new_search.png';
+import settings from '!/enterprise/getting-started/account/conversations_settings.png';
+import manageMessages from '!/enterprise/getting-started/account/conversations_manage_messages.png';
+
+Verwende **Nachrichten**, um mit anderen Mitgliedern deiner Crowdin-Enterprise-Organisation zu kommunizieren. Erstelle Einzel- oder Gruppenunterhaltungen mit einem Betreff, damit du einfach zwischen den Chats navigieren kannst.
+
+
+
+## Neue Unterhaltung erstellen
+
+Um eine neue Konversation zu erstellen, befolge diese Schritte:
+
+
+ 1. Öffne den **Workspace** deiner Organisation und wähle **Nachrichten** in der linken Seitenleiste aus.
+ 2. Klicke auf **Neuer Chat**.
+ 3. Suche Benutzer nach Name, Benutzername oder E-Mail-Adresse und wähle sie aus.
+ 4. Klicke auf **Erstellen**.
+
+
+
+
+## Unterhaltungen verwalten
+
+Um eine Unterhaltung zu verwalten, klicke auf und wähle eine der folgenden Optionen:
+
+* *Mitglieder anzeigen* – zeigt alle Teilnehmer der Unterhaltung an.
+* *Unterhaltung umbenennen* – hilft bei der Organisation mehrerer Unterhaltungen. Standardmäßig enthält der Betreff die Namen der Teilnehmer.
+* *Unterhaltung stummschalten* – beendet Benachrichtigungen über neue Nachrichten.
+
+
+
+
+
+## Nachrichten
+
+Um eine Nachricht zu verwalten, fahre mit der Maus darüber, klicke auf und wähle die gewünschte Option aus. Folgende Aktionen sind verfügbar:
+
+* *Teilen* – leite die Nachricht weiter:
+ * in der selben Konversation
+ * zu einer anderen bestehenden Unterhaltung
+ * zu einem anderen Benutzer
+* *Als ungelesen markieren* – markiere die Nachricht als ungelesen, um später darauf zurückzukommen. Die Anzahl der ungelesenen Nachrichten wird neben dem Betreff der Unterhaltung angezeigt.
+* *Bearbeiten* – für deine eigenen Nachrichten verfügbar.
+* *Löschen* – für deine eigenen Nachrichten verfügbar.
+* *Spam melden* – für Nachrichten anderer Benutzer verfügbar.
+
+
+
+## Ungelesene Nachrichten
+
+Ungelesene Nachrichten werden durch einen Zähler angezeigt:
+
+* neben dem Betreff jeder Unterhaltung, der die Anzahl der ungelesenen Nachrichten in dieser Unterhaltung angibt
+* oben auf der Seite neben dem *Nachrichten*-Symbol, das die Gesamtzahl der ungelesenen Nachrichten anzeigt
diff --git a/src/content/docs/de/enterprise/integrations/figma.mdx b/src/content/docs/de/enterprise/integrations/figma.mdx
index 783570017..e83ef0530 100644
--- a/src/content/docs/de/enterprise/integrations/figma.mdx
+++ b/src/content/docs/de/enterprise/integrations/figma.mdx
@@ -79,7 +79,7 @@ Um das Crowdin-Enterprise-Projekt auszuwählen, mit dem du arbeiten möchtest, g
3. *(Optional)* Wenn du in diesem Projekt mit beiden Inhaltstypen arbeitest, klicke statt auf **Speichern** auf **Überspringen**, damit beide Modi gleichzeitig verfügbar sind.
4. *(Optional)* Wähle im Abschnitt **Crowdin-Zweig** den spezifischen Zweig aus, in den deine Inhalte hochgeladen werden. Wenn dein Projekt Versionszweige verwendet, kannst du entweder einen vorhandenen auswählen oder direkt in Figma einen neuen erstellen. Andernfalls kannst du diesen Schritt überspringen.
* **So wählst du einen vorhandenen Zweig aus**: Wähle den gewünschten Zweig aus dem Dropdown-Menü aus.
- * **To create a new branch**: Click next to the branch field. Gib im Dialog **Neuer Versionszweig** einen Namen ein und klicke auf **Erstellen**. Der neue Zweig wird in deinem Crowdin-Enterprise-Projekt erstellt und automatisch im Plugin ausgewählt.
+ * **Zum Erstellen eines neuen Branches**: Klicke neben dem Branch-Feld auf . Gib im Dialog **Neuer Versionszweig** einen Namen ein und klicke auf **Erstellen**. Der neue Zweig wird in deinem Crowdin-Enterprise-Projekt erstellt und automatisch im Plugin ausgewählt.
Um zu einem anderen Projekt zu wechseln oder den Inhaltstyp zu ändern, klicke auf der Registerkarte **Einstellungen** auf **Trennen** und bestätige dies. Wähle anschließend erneut das Projekt und den Inhaltstyp aus.
@@ -107,12 +107,12 @@ Du kannst einen einzelnen Crowdin-Enterprise-String mit einem oder mehreren Text
### Verknüpfte Strings verwalten
-Du kannst den Text, den Kontext oder andere Eigenschaften eines Strings direkt im Plugin bearbeiten. To do so, click the icon next to it in the string list. Nimm die gewünschten Änderungen im Bearbeitungsformular vor und klicke auf **Speichern**.
+Du kannst den Text, den Kontext oder andere Eigenschaften eines Strings direkt im Plugin bearbeiten. Klicke dazu in der String-Liste auf das Symbol daneben. Nimm die gewünschten Änderungen im Bearbeitungsformular vor und klicke auf **Speichern**.
In derselben Liste kannst du Strings auch über die entsprechenden Symbole ausblenden oder löschen. Alle von dir vorgenommenen Änderungen werden mit deinem Crowdin-Enterprise-Projekt synchronisiert.
### Quellstrings aus Figma zu Crowdin hinzufügen
@@ -122,14 +122,14 @@ Du kannst Strings hinzufügen, die bereits in den Designs verwendet werden.
1. Öffne das Crowdin-Plugin für Figma.
2. Um die in den Designs verwendeten Strings hinzuzufügen, wähle den gesamten Frame, mehrere Frames oder die gewünschten Textelemente in den Frames aus.
- 3. In the **Strings** tab, click .
- 4. Überprüfe im angezeigten Dialog die Liste der hinzuzufügenden Strings. Elemente, die bereits mit einem Crowdin-Enterprise-String verknüpft sind, werden mit gekennzeichnet. Um ein solches Element als neuen String hinzuzufügen, anstatt den verknüpften zu aktualisieren, klicke auf , um die Verknüpfung aufzuheben, oder klicke auf **Alle Verknüpfungen aufheben**, um die Verknüpfung für alle Elemente aufzuheben. If needed, click the filter icon to open the filter panel and exclude certain elements:
+ 3. Im Tab „Strings“ klicke auf .
+ 4. Überprüfe im angezeigten Dialog die Liste der hinzuzufügenden Strings. Elemente, die bereits mit einem Crowdin-Enterprise-String verknüpft sind, werden mit gekennzeichnet. Um ein solches Element als neuen String hinzuzufügen, anstatt den verknüpften zu aktualisieren, klicke auf , um die Verknüpfung aufzuheben, oder klicke auf **Alle Verknüpfungen aufheben**, um die Verknüpfung für alle Elemente aufzuheben. Falls erforderlich, klicke auf das Filtersymbol , um das Filterfenster zu öffnen und bestimmte Elemente auszuschließen:
* Aktiviere **Ausgeblendete Elemente überspringen**, wenn einige Frames ausgeblendete Elemente enthalten, die nicht zu Crowdin Enterprise hinzugefügt werden sollen.
* Aktiviere **Nicht übersetzbare Elemente überspringen**, wenn einige Frames nicht übersetzbare Elemente enthalten, die nicht zu Crowdin Enterprise hinzugefügt werden sollen.
* Wähle **Gesperrte Elemente überspringen**, um gesperrte Textelemente davon auszuschließen, zur Übersetzung gesendet zu werden. Das ist nützlich, wenn bestimmter Text auf Screenshots als Kontext sichtbar bleiben, aber nicht als Quellstring zu Crowdin Enterprise hinzugefügt werden soll.
5. *(Optional)* Konfiguriere die String-Einstellungen. Du kannst Einstellungen für einzelne Strings anpassen oder die Einstellungen gesammelt auf alle Strings gleichzeitig anwenden:
- * **Individual String Settings**: Click next to a specific string in the list to update its context or set the maximum length of the translated text for that row.
- * **String Defaults**: Click in the upper right corner, above the string list, to open the default settings applied to all strings in the list. Hier kannst du das [Muster für die Schlüsselnamen](#key-naming-pattern-settings) und die Option \*\*Max. Mit der Option **Längenkorrektur (%)** wird automatisch ein maximales Zeichenlimit festgelegt, indem ein angegebener Prozentsatz zur Länge des Originalstrings hinzugefügt wird (wenn du beispielsweise „20“ eingibst, darf ein 100 Zeichen langer String maximal 120 Zeichen enthalten). So kannst du verhindern, dass Text in der lokalisierten Benutzeroberfläche abgeschnitten wird, wenn Übersetzungen länger als der Quelltext sind. Die Änderungen werden wirksam, sobald du auf **Anwenden** klickst. Du kannst sie weiterhin für jeden String über dessen individuelle String-Einstellungen überschreiben.
+ * **Individuelle String-Einstellungen**: Klicke neben einem bestimmten String in der Liste auf um dessen Kontext zu aktualisieren oder die maximale Länge des übersetzten Textes für diese Zeile festzulegen.
+ * **Standardeinstellungen für Strings**: Klicke oben rechts über der String-Liste auf um die Standardeinstellungen zu öffnen, die auf alle Strings in der Liste angewendet werden. Hier kannst du das [Muster für die Schlüsselnamen](#key-naming-pattern-settings) und die Option \*\*Max. Mit der Option **Längenkorrektur (%)** wird automatisch ein maximales Zeichenlimit festgelegt, indem ein angegebener Prozentsatz zur Länge des Originalstrings hinzugefügt wird (wenn du beispielsweise „20“ eingibst, darf ein 100 Zeichen langer String maximal 120 Zeichen enthalten). So kannst du verhindern, dass Text in der lokalisierten Benutzeroberfläche abgeschnitten wird, wenn Übersetzungen länger als der Quelltext sind. Die Änderungen werden wirksam, sobald du auf **Anwenden** klickst. Du kannst sie weiterhin für jeden String über dessen individuelle String-Einstellungen überschreiben.
6. Sobald alle benötigten Strings ausgewählt und konfiguriert sind, klicke auf **Weiter**.
7. Wähle auf der nächsten Dialogseite die gewünschten Optionen aus:
* **Vorhandene Strings automatisch verknüpfen** – Vergleicht die hinzuzufügenden Strings automatisch mit vorhandenen Strings in Crowdin Enterprise. Bei einer Übereinstimmung wird das Textelement mit dem vorhandenen String verknüpft, anstatt einen neuen zu erstellen.
@@ -166,9 +166,9 @@ Du kannst Strings mit Pluralformen hinzufügen.
1. Öffne das Crowdin-Plugin für Figma.
2. Um die in den Designs verwendeten Strings hinzuzufügen, wähle den gesamten Frame, mehrere Frames oder die gewünschten Textelemente in den Frames aus.
- 3. In the **Strings** tab, click .
+ 3. Im Tab „Strings“ klicke auf .
4. Überprüfe im angezeigten Dialog die Liste der Strings.
- 5. Click next to the needed string and click **Add plurals**.
+ 5. Klicke neben dem gewünschten String auf und anschließend auf **Pluralformen hinzufügen**.
6. Fülle im angezeigten Dialog die Felder für jede Pluralform aus und klicke auf **Speichern**. Abhängig von der Quellsprache des verbundenen Crowdin-Enterprise-Projekts kann es eine unterschiedliche Anzahl von Pluralformen geben, die du angeben musst.
7. Sobald alle benötigten Strings ausgewählt und konfiguriert sind, klicke auf **Weiter**.
8. Wähle die gewünschten Optionen und die Datei in Crowdin Enterprise aus, zu der du die Strings hinzufügen möchtest, und klicke dann auf **An Crowdin senden**.
@@ -211,7 +211,7 @@ Die Schlüsselbenennung wird im Bereich **String-Standardeinstellungen** separat
2. Beginne damit, den Inhalt an Crowdin zu senden:
* **Über die Registerkarte „Strings“**: Wähle die benötigten Textelemente aus und klicke auf .
* **Über die Registerkarte „Variablen“**: Wähle die benötigten Variablensammlungen aus und klicke auf **An Crowdin senden**.
- 3. In the appeared dialog, click in the upper right corner, above the string list.
+ 3. Klicke im daraufhin angezeigten Dialog oben rechts über der String-Liste auf .
4. Wähle im Abschnitt **Muster für Schlüsselnamen** die gewünschte Option aus dem Dropdown-Menü aus und klicke auf **Anwenden**. Das Plugin generiert die String-Schlüssel in der Liste entsprechend dem ausgewählten Muster neu.
@@ -232,7 +232,7 @@ Zusätzlich kannst du Screenshots für mit Textfeldern in Designs verknüpfte Ze
1. Öffne das Crowdin-Plugin für Figma.
2. Wähle einen oder mehrere Frames mit den verknüpften Strings aus.
- 3. In the **Strings** tab, click **Send tagged screenshots to Crowdin** to upload screenshots for selected frames.
+ 3. Im Tab **„Strings“** klicke auf **Getaggte Screenshots an Crowdin senden** um Screenshots für die ausgewählten Frames hochzuladen.
@@ -274,7 +274,7 @@ Um Entwicklern das Identifizieren von Strings zu erleichtern, kannst du deine De
### Filtering Zeichenfolgen
-Du kannst Strings im Tab **Strings** nach verschiedenen Kriterien filtern, z. B. nach Datei oder Verknüpfungsstatus. Click to open the filter side panel. Hier kannst du Dateien auswählen, deren Strings angezeigt werden sollen, oder nur Strings anzeigen, die mit deiner aktuellen Textauswahl verknüpft sind (z. B. ausgewählte Textelemente, ein ganzer Frame oder mehrere Frames). Klicke auf **Zurücksetzen**, um alle Filteroptionen zu löschen.
+Du kannst Strings im Tab **Strings** nach verschiedenen Kriterien filtern, z. B. nach Datei oder Verknüpfungsstatus. Klicke auf um das Filterseitenfenster zu öffnen. Hier kannst du Dateien auswählen, deren Strings angezeigt werden sollen, oder nur Strings anzeigen, die mit deiner aktuellen Textauswahl verknüpft sind (z. B. ausgewählte Textelemente, ein ganzer Frame oder mehrere Frames). Klicke auf **Zurücksetzen**, um alle Filteroptionen zu löschen.
## Lokalisierung von Marketingvisualisierungen
@@ -452,8 +452,8 @@ Trotz dieser Einschränkungen bleibt das Crowdin for Figma-Plugin im Dev-Modus w
1. Öffne den [Dev-Modus](https://help.figma.com/hc/articles/15023124644247#01H8CR3K6VG21T3H9789QMV6CP).
2. Wechsle in der rechten Seitenleiste zum Tab *Plugins*.
3. Klicke auf **Crowdin for Figma**.
- 4. In the **Strings** tab, click **Filter strings** and select **Show strings linked to selected text elements**.
- 5. Select the needed text element on the frame and hover over the icon in the string list to view all needed information (i.e., key, context, file it's stored in, labels) about this particular string.
+ 4. Im Tab **„Strings“** klicke auf **Strings filtern** und wähle **Strings anzeigen, die mit den ausgewählten Textelementen verknüpft sind**.
+ 5. Wähle das gewünschte Textelement im Frame aus und bewege den Mauszeiger über das Symbol in der String-Liste, um alle benötigten Informationen (z. B. Schlüssel, Kontext, Datei, in der der String gespeichert ist, und Labels) zu diesem String anzuzeigen.
6. *(Optional)* Klicke auf **String-Schlüssel in die Zwischenablage kopieren**, um ihn später im Code zu verwenden.
diff --git a/src/content/docs/de/enterprise/project-management/project-settings/labels.mdx b/src/content/docs/de/enterprise/project-management/project-settings/labels.mdx
new file mode 100644
index 000000000..2b807fb11
--- /dev/null
+++ b/src/content/docs/de/enterprise/project-management/project-settings/labels.mdx
@@ -0,0 +1,45 @@
+---
+title: Label-Einstellungen
+description: Verwende Labels in deinem Projekt, um deine Ressourcen einfach zu organisieren.
+slug: enterprise/project-settings/labels
+sidebar:
+ order: 12
+ label: Labels
+---
+
+import { Steps, CardGrid, LinkCard, Aside } from '@astrojs/starlight/components';
+import { Icon } from 'astro-icon/components';
+
+Verwende Labels in deinem Projekt, um Ressourcen (z. B. Screenshots, Zeichenfolgen usw.) einfach nach bestimmten Themen zu organisieren. nach bestimmten Themen. Sobald du Labels hinzugefügt hast, kannst du Elemente nach diesen Labels filtern. Wenn du bereits Labels für deine Quellzeichenfolgen verwendest, kannst du dieselben Labels für Screenshots verwenden.
+
+## Projektlabels verwalten
+
+Gehe wie folgt vor, um ein Projektlabel zu erstellen:
+
+
+ 1. Öffne dein Projekt **Settings** und navigieren zu die **Bezeichnungen** Bereich.
+ 2. Klicke oben rechts auf **Label erstellen**.
+
+
+Um edit oder entfernen ein Bezeichnung, klicken (oder right-klicken) auf die Bezeichnung du möchten zu edit oder entfernen und auswählen die appropriate action. Um mehrere Labels gleichzeitig zu entfernen, wähle die entsprechenden Kontrollkästchen aus und klicke oben rechts in der Liste auf . Verwende das Feld **Suchen** über der Labelliste, um bestimmte Labels schnell zu finden.
+
+
+
+## Geteilte Labels
+
+Wenn ein Kunde einem String, den ein Workflow-Schritt eines Anbieters enthält, ein Label zuweist, wird dieses Label mit dem Projekt des Anbieters geteilt. Geteilte Labels tragen im Abschnitt **Labels** das **Geteilt**-Badge und sind schreibgeschützt. Das Kundenprojekt besitzt diese Labels und hält sie auf dem neuesten Stand.
+
+Anbieter können in der **Quellen**-Sektion beim Erstellen von Aufgaben und in Berichten nach geteilten Labels filtern. Sie können auch eigene Projektlabels erstellen und sie zusammen mit den geteilten Labels verwenden.
+
+
+
+## Siehe auch
+
+
+
+
+
diff --git a/src/content/docs/de/enterprise/project-management/screenshots.mdx b/src/content/docs/de/enterprise/project-management/screenshots.mdx
index df3ef8771..ae907505f 100644
--- a/src/content/docs/de/enterprise/project-management/screenshots.mdx
+++ b/src/content/docs/de/enterprise/project-management/screenshots.mdx
@@ -199,7 +199,7 @@ Um Lösche ein Screenshot, folge diesen Schritten:
1. Wähle one oder multiple Screenshots holding Ctrl oder Shift aus.
- 2. Click **Delete**.
+ 2. Klicke auf **Löschen**.
## Siehe auch
diff --git a/src/content/docs/de/enterprise/project-management/sources/uploading-files.mdx b/src/content/docs/de/enterprise/project-management/sources/uploading-files.mdx
index fdca7470f..15ae31704 100644
--- a/src/content/docs/de/enterprise/project-management/sources/uploading-files.mdx
+++ b/src/content/docs/de/enterprise/project-management/sources/uploading-files.mdx
@@ -110,7 +110,7 @@ Sobald du hinzufügen die `` Tag, Übersetzer wird see images in die HTML
Du kannst konfigurieren die desired System behavior für hochgeladen Quelldateien in String-basiert Projekte verwenden die verfügbar Optionen:
-* **Update Strings** – update Strings mit die gleich identifiers. By default, this option is selected.
+* **Update Strings** – update Strings mit die gleich identifiers. Standardmäßig ist diese Option ausgewählt.
* **Cleanup Modus** – entfernen previously hochgeladen Strings nicht present in die newly hochgeladen Datei. von Standard, dies Option ist cleared.
* **hinzufügen Bezeichnungen** – Tag hochgeladen Strings mit die ausgewählt Bezeichnungen. Wenn uploading Quelldateien, Crowdin auch fügt hinzu System Bezeichnungen das einschließen die Quelle Datei Name.
diff --git a/src/content/docs/de/enterprise/reports/contributor-reports.mdx b/src/content/docs/de/enterprise/reports/contributor-reports.mdx
index e5f0dd9c6..4dbbc822b 100644
--- a/src/content/docs/de/enterprise/reports/contributor-reports.mdx
+++ b/src/content/docs/de/enterprise/reports/contributor-reports.mdx
@@ -1,5 +1,5 @@
---
-title: /contributor-reports/
+title: Mitwirkendenberichte
description: Den Preis deiner Beiträge zum Projekt schätzen und berechnen
slug: enterprise/contributor-reports
sidebar:
@@ -77,7 +77,7 @@ Der Bericht zur Kostenschätzung ermöglicht es dir, den ungefähren Preis deine
Lege die Übersetzungs- und Genehmigungstarife fest, um die Kosten für nicht übersetzte und nicht genehmigte Zeichenfolgen innerhalb der ausgewählten Aufgaben anzuzeigen.
-You can generate a Cost Estimate report based on the following filter parameters:
+Du kannst einen Bericht zur Kostenschätzung anhand der folgenden Filterparameter erstellen:
* Aufgaben: Alle Aufgaben oder eine bestimmte Aufgabe.
@@ -85,107 +85,107 @@ You can generate a Cost Estimate report based on the following filter parameters
Die endgültigen Übersetzungskosten können aufgrund verschiedener Faktoren abweichen, z. B. hinzugefügter oder gelöschter Texte, mehrerer Personen, die dieselbe Zeichenfolge in dieselbe Sprache übersetzen, und weiterer Faktoren.
-### Generating a Report {#generating-cost-estimate}
+### Bericht erstellen {#generating-cost-estimate}
-To generate the Cost Estimate report, follow these steps:
+Um den Bericht zur Kostenschätzung zu erstellen, gehe wie folgt vor:
1. Wähle die bevorzugte Währung und die Berichtseinheit (Wort, Zeichenkette, Zeichen oder Zeichen einschließlich Leerzeichen) aus.
- 2. Use the available filter parameters to specify the report data you're interested in.
- 3. Set your [rates](#rates-cost-estimate) for translations and approvals.
- 4. Click **Generate**.
+ 2. Verwende die verfügbaren Filterparameter, um die Berichtsdaten festzulegen, die dich interessieren.
+ 3. Lege deine [Tarife](#rates-cost-estimate) für Übersetzungen und Genehmigungen fest.
+ 4. Klicke auf **Generieren**.
-
+
-#### Cost Estimate Queue {#queue-cost-estimate}
+#### Warteschlange für Kostenschätzungen {#queue-cost-estimate}
-Nachdem du auf **Generieren** geklickt hast, wird der Bericht zur Kostenschätzung einer gemeinsamen Berichtswarteschlange für das Projekt hinzugefügt und im Hintergrund verarbeitet. Dadurch wird verhindert, dass mehrere mit unterschiedlichen Filtern erstellte Berichte sich gegenseitig überschreiben. Each report is generated separately and appears in the **Reports > Archive** section once completed.
+Nachdem du auf **Generieren** geklickt hast, wird der Bericht zur Kostenschätzung einer gemeinsamen Berichtswarteschlange für das Projekt hinzugefügt und im Hintergrund verarbeitet. Dadurch wird verhindert, dass mehrere mit unterschiedlichen Filtern erstellte Berichte sich gegenseitig überschreiben. Jeder Bericht wird separat erstellt und nach Abschluss im Bereich **Berichte > Archiv** angezeigt.
Von Managern erstellte Berichte haben in der Warteschlange eine höhere Priorität. Wenn ein Manager einen Bericht erstellt, während sich noch der Bericht eines Mitwirkenden in der Warteschlange befindet, wird der Bericht des Managers zuerst verarbeitet.
-When a report is added to the queue, a notification appears confirming that the report generation has been queued, with quick access to view the queue or close the message.
+Wenn ein Bericht zur Warteschlange hinzugefügt wird, erscheint eine Benachrichtigung, die die Einreihung des Berichts in die Warteschlange bestätigt und schnellen Zugriff auf die Warteschlange oder zum Schließen der Meldung bietet.
-While the report is being generated, a pop-up in the lower-right corner of the screen shows the queue status. The status updates automatically as the report progresses:
+Während der Bericht erstellt wird, zeigt ein Pop-up unten rechts auf dem Bildschirm den Status der Warteschlange an. Der Status wird automatisch aktualisiert, während der Bericht erstellt wird:
-* **Fehlgeschlagen** – Bei der Erstellung des Berichts ist ein Fehler aufgetreten.
-* **In progress** – the report generation has started. A progress bar shows the current percentage.
-* **Completed** – the report has been generated successfully and can be accessed via the [Archive](#archive).
-* **Failed** – an error occurred during report generation.
+* **Ausstehend** – der Bericht wartet in der Warteschlange und wurde noch nicht verarbeitet.
+* **In Bearbeitung** – die Erstellung des Berichts wurde gestartet. Ein Fortschrittsbalken zeigt den aktuellen Prozentsatz an.
+* **Abgeschlossen** – der Bericht wurde erfolgreich erstellt und kann über das [Archiv](#archive) aufgerufen werden.
+* **Fehlgeschlagen** – bei der Erstellung des Berichts ist ein Fehler aufgetreten.
-Each report runs independently, so you can safely generate multiple Cost Estimate reports with different filters without affecting those that might have been started earlier and are still in progress.
+Jeder Bericht wird unabhängig verarbeitet, sodass du sicher mehrere Berichte zur Kostenschätzung mit unterschiedlichen Filtern erstellen kannst, ohne bereits gestartete und noch laufende Berichte zu beeinflussen.
-### Rates {#rates-cost-estimate}
+### Tarife {#rates-cost-estimate}
-You can set the prices for Base rates (full translation, proofread) and configure Net Rate Schemes (percentage of the full translation rate paid for translation using TM suggestions).
+Du kannst die Preise für Basistarife (vollständige Übersetzung, Korrekturlesen) festlegen und Nettotarifschemata konfigurieren (Prozentsatz des Tarifs für die vollständige Übersetzung, der für Übersetzungen mit TM-Vorschlägen gezahlt wird).
-#### Base Rates {#base-rates-cost-estimate}
+#### Basistarife {#base-rates-cost-estimate}
-In the Base Rates section, you can set rates for the following types of work:
+Im Abschnitt „Basistarife“ kannst du Tarife für die folgenden Arbeitsarten festlegen:
-* **Full translation** – for each translation made by a person.
-
-* **Proofread** – for each approved translation.
+* **Vollständige Übersetzung** – für jede von einer Person erstellte Übersetzung.
+
+* **Korrekturlesen** – für jede genehmigte Übersetzung.
-#### Net Rate Schemes {#net-rate-schemes-cost-estimate}
+#### Nettotarifschemata {#net-rate-schemes-cost-estimate}
-In the Net Rate Schemes section, in addition to the base rates, you can set the percentage of the full translation rate to be paid for translations made using TM suggestions of various TM Match types. By default, you can configure the percentage of the full translation rate for the following TM Match types:
+Im Abschnitt „Nettotarifschemata“ kannst du zusätzlich zu den Basistarifen den Prozentsatz des Tarifs für die vollständige Übersetzung festlegen, der für Übersetzungen mit TM-Vorschlägen verschiedener TM-Treffertypen gezahlt wird. Standardmäßig kannst du den Prozentsatz des Tarifs für die vollständige Übersetzung für die folgenden TM-Treffertypen konfigurieren:
-* **101 (perfect)** – for translations made using Perfect match TM suggestions (source strings are identical to TM suggestion by text and context).
-* **100** – for translations made using 100% match TM suggestions (source strings are identical to TM suggestion only by text).
+* **101 (perfekt)** – für Übersetzungen, die mit TM-Vorschlägen mit perfektem Treffer erstellt wurden (Ausgangsstrings sind sowohl nach Text als auch nach Kontext mit dem TM-Vorschlag identisch).
+* **100** – für Übersetzungen, die mit TM-Vorschlägen mit 100-%-Treffer erstellt wurden (Ausgangsstrings sind nur nach Text mit dem TM-Vorschlag identisch).
-You can also add your own TM match types, specifying the preferred percentage of text similarity and the percentage of the full translation rate to be paid for such a translation.
+Du kannst auch eigene TM-Treffertypen hinzufügen und dabei den gewünschten Prozentsatz der Textähnlichkeit sowie den Prozentsatz des Tarifs für die vollständige Übersetzung festlegen, der für eine solche Übersetzung gezahlt wird.
-To add your own TM match types, follow these steps:
+Um eigene TM-Treffertypen hinzuzufügen, gehe wie folgt vor:
- 1. Click in the Net Rate Schemes section.
- 2. Click on the appeared button.
- 3. Specify the TM match range and the percentage of the full translation rate.
- 4. Click to save the settings.
+ 1. Klicke im Abschnitt „Nettotarifschemata“ auf .
+ 2. Klicke auf die daraufhin angezeigte Schaltfläche .
+ 3. Lege den TM-Trefferbereich und den Prozentsatz des Tarifs für die vollständige Übersetzung fest.
+ 4. Klicke auf , um die Einstellungen zu speichern.
-
+
-#### Adding Custom Rates {#custom-rates-cost-estimate}
+#### Benutzerdefinierte Tarife hinzufügen {#custom-rates-cost-estimate}
-If you are multilingual and work with different languages, in addition to base rates that are applied to all languages by default, you can add custom rates for specific languages. To add custom rates, click **Add custom rates**.
+Wenn du mehrsprachig bist und mit verschiedenen Sprachen arbeitest, kannst du zusätzlich zu den standardmäßig auf alle Sprachen angewendeten Basistarifen benutzerdefinierte Tarife für bestimmte Sprachen hinzufügen. Um benutzerdefinierte Tarife hinzuzufügen, klicke auf **Benutzerdefinierte Tarife hinzufügen**.
-Um die Sprachen für benutzerdefinierte Tarife auszuwählen, klicke auf die Dropdown-Menüs und wähle die benötigten Sprachen aus. You can create as many custom rates as you need.
+Um die Sprachen für benutzerdefinierte Tarife auszuwählen, klicke auf die Dropdown-Menüs und wähle die benötigten Sprachen aus. Du kannst beliebig viele benutzerdefinierte Tarife erstellen.
-
+
-#### Rate Templates
+#### Tarifvorlagen
-If project managers saved multiple rate configurations, you can use them for report generation. Saved templates allow you to quickly switch between different configurations.
+Wenn Projektmanager mehrere Tarifkonfigurationen gespeichert haben, kannst du sie für die Berichtserstellung verwenden. Gespeicherte Vorlagen ermöglichen dir, schnell zwischen verschiedenen Konfigurationen zu wechseln.
Klicke auf **Vorlagen**, um gespeicherte Tarifvorlagen anzuzeigen und auszuwählen.
-### Include Auto-translated Strings
+### Automatisch übersetzte Strings einschließen
-Dann übersetzt du diese Zeichenfolge über eine TM- oder MT-Engine automatisch und erstellst erneut einen Bericht zur Kostenschätzung mit ausgewählter Option **Automatisch übersetzte Zeichenfolgen einbeziehen**. By default, this option is selected.
+Wähle **Automatisch übersetzte Strings einschließen**, wenn du automatisch übersetzte Strings in einen Bericht zur Kostenschätzung aufnehmen möchtest. Standardmäßig ist diese Option ausgewählt.
-Beispielsweise gibt es im Projekt die nicht übersetzte Zeichenfolge `Validate your username`. You generate a Cost Estimate report with the **Include auto-translated strings** option selected. This string will be included in the Cost Estimate. Then a project manager auto-translates this string via TM or MT engine and you once again generate a Cost Estimate report with the **Include auto-translated strings** option selected. This time, the auto-translated string `Validate your username` won't be included in the Cost Estimate report.
+Beispielsweise gibt es im Projekt die nicht übersetzte Zeichenfolge `Validate your username`. Du erstellst einen Bericht zur Kostenschätzung mit ausgewählter Option **Automatisch übersetzte Strings einschließen**. Dieser String wird in die Kostenschätzung aufgenommen. Dann übersetzt ein Projektmanager diesen String erneut über eine TM oder eine MT-Engine, und du erstellst erneut einen Kostenbericht mit aktivierter Option **Automatisch übersetzte Strings einschließen**. Diesmal wird der automatisch übersetzte String `Validate your username` nicht in den Bericht zur Kostenschätzung aufgenommen.
-On the other hand, with the **Include auto-translated strings** option cleared, the string `Validate your username` will be included in the Cost Estimate report both times, when untranslated and when auto-translated via TM or MT engine.
+Wenn dagegen die Option **Automatisch übersetzte Strings einschließen** deaktiviert ist, wird der String `Validate your username` beide Male in den Bericht zur Kostenschätzung aufgenommen – sowohl wenn er nicht übersetzt als auch wenn er über eine TM- oder MT-Engine automatisch übersetzt wurde.
-### Calculate Internal Fuzzy Matches
+### Interne Fuzzy-Treffer berechnen
-Internal Fuzzy Matches are partial (fuzzy) TM matches found among untranslated strings in your project that can potentially be added to the Translation Memory. For example, if the first string in a file is `Validate your username` and the last one is `Validate your username again`, there is an internal fuzzy match.
+Interne Fuzzy-Treffer sind partielle (unscharfe) TM-Treffer unter den nicht übersetzten Strings in deinem Projekt, die potenziell zum Translation Memory hinzugefügt werden können. Wenn beispielsweise der erste String in einer Datei `Validate your username` und der letzte `Validate your username again` lautet, liegt ein interner Fuzzy-Treffer vor.
-To include fuzzy (99% and less) internal matches, as well as perfect (101%) and 100% matches, in your Cost Estimate report and get a more comprehensive prediction of how many strings can be added to the TM if translated in sequence, select **Calculate Internal Fuzzy Matches**. Note that these calculations are approximate because the actual translation order may differ.
+Um Fuzzy-Treffer (99 % und weniger) sowie perfekte (101 %) und 100-%-Treffer in deinen Bericht zur Kostenschätzung aufzunehmen und eine umfassendere Prognose darüber zu erhalten, wie viele Strings zum TM hinzugefügt werden können, wenn sie nacheinander übersetzt werden, wähle **Interne Fuzzy-Treffer berechnen** aus. Beachte, dass diese Berechnungen Näherungswerte sind, da die tatsächliche Übersetzungsreihenfolge abweichen kann.
-If you clear **Calculate Internal Fuzzy Matches**, the Cost Estimate report will only show perfect (101%) and 100% internal matches (repetitions), and will not include any fuzzy matches.
+Wenn du **Interne Fuzzy-Treffer berechnen** deaktivierst, zeigt der Bericht zur Kostenschätzung nur perfekte (101 %) und 100-%-interne Treffer (Wiederholungen) an und enthält keine Fuzzy-Treffer.
-### Result Analysis {#result-analysis-cost-estimate}
+### Ergebnisanalyse {#result-analysis-cost-estimate}
Nach der Erstellung des Berichts werden die folgenden Werte angezeigt:
@@ -201,55 +201,55 @@ Nach der Erstellung des Berichts werden die folgenden Werte angezeigt:
Um den Bericht zur Kostenschätzung herunterzuladen, klicke auf **Exportieren** und wähle das gewünschte Exportformat (CSV, XLSX oder JSON).
## Beste Mitglieder
-Der Bericht „Top-Mitglieder“ ermöglicht es dir, deine Position in der Liste der Projektmitglieder zu prüfen und zu sehen, wer im Laufe der Zeit am meisten zur Übersetzung des Projekts beigetragen hat. This list includes all users who have ever contributed, even if they are no longer current project members.
+Der Bericht „Top-Mitglieder“ ermöglicht es dir, deine Position in der Liste der Projektmitglieder zu prüfen und zu sehen, wer im Laufe der Zeit am meisten zur Übersetzung des Projekts beigetragen hat. Diese Liste enthält alle Benutzer, die jemals einen Beitrag geleistet haben, auch wenn sie keine aktuellen Projektmitglieder mehr sind.
-Default parameters:
+Standardparameter:
-* *Sortiert nach*: übersetzte Texteinheiten.
-* Das Mitglied, das die meisten Übersetzungen erstellt hat, steht oben in der Liste.
-* *Sorted by*: translated text units. A member who translated the most is placed at the top of the list.
-* *Languages*: all languages
-* *Contributors*: all
+* *Inhaltseinheit*: Wörter
+* *Zeitraum*: Letzte 30 Tage
+* *Sortiert nach*: übersetzten Inhaltseinheiten. Das Mitglied mit den meisten Übersetzungen steht oben in der Liste.
+* *Sprachen*: alle Sprachen
+* *Mitwirkende*: alle
Das Label **Du** wird in der Berichtstabelle neben deinem eigenen Benutzernamen angezeigt und erleichtert die Identifizierung deines persönlichen Beitrags.
-Re-sort the members by clicking on the needed parameter. For example, if you are a proofreader, you might want to know who approved most of the strings. For this, click on the *Approved* parameter to redo sorting.
+Sortiere die Mitglieder neu, indem du auf den gewünschten Parameter klickst. Zum Beispiel möchtest du als Korrekturleser vielleicht wissen, wer die meisten Strings genehmigt hat. Klicke dazu auf den Parameter *Genehmigt* um die Sortierung erneut durchzuführen.
-### Generating a Custom List of Top Members
+### Benutzerdefinierte Liste der Top-Mitglieder erstellen
-To generate a custom list of top members, follow these steps:
+Um eine benutzerdefinierte Liste der Top-Mitglieder zu erstellen, gehe wie folgt vor:
- 1. Select the preferred report unit (words, strings, characters with or without spaces).
- 2. Select the time period for which you want to see the activity of contributors.
- 3. To make a list of contributors for a specific language, select the language you need from the drop-down menu above the list. Alternatively, select **All languages**.
+ 1. Wähle die gewünschte Berichtseinheit aus (Wörter, Strings, Zeichen mit oder ohne Leerzeichen).
+ 2. Wähle den Zeitraum aus, für den du die Aktivität der Mitwirkenden anzeigen möchtest.
+ 3. Um eine Liste der Mitwirkenden für eine bestimmte Sprache zu erstellen, wähle die gewünschte Sprache aus dem Dropdown-Menü über der Liste aus. Alternativ kannst du **Alle Sprachen** auswählen.
-To look for your account or account of any other contributor, use the search field.
+Um nach deinem Konto oder dem Konto eines anderen Mitwirkenden zu suchen, verwende das Suchfeld.
-The Top Members list includes the following columns:
+Die Liste der Top-Mitglieder enthält die folgenden Spalten:
-* *Rank* – contributor’s position in the list based on the currently selected sorting criteria (e.g., *Translated*, *Approved*, etc.).
-* *Name* – contributor's first name, last name and username.
-* *Languages* – project languages.
-* *Translated* – the number of translated source content units.
+* *Rang* – Position des Mitwirkenden in der Liste basierend auf den aktuell ausgewählten Sortierkriterien (z. B. *Übersetzt*, *Genehmigt* usw.).
+* *Name* – Vorname, Nachname und Benutzername des Mitwirkenden.
+* *Sprachen* – Projektsprache(n).
+* *Übersetzt* – Anzahl der übersetzten Inhaltseinheiten des Ausgangsinhalts.
* *Ziel* – die Anzahl der übersetzten Inhaltseinheiten in einer Zielsprache.
- This parameter is not available for the *Strings* content unit because the number of source and translated strings is always the same.
-* *Approved* – the number of approved content units.
-* *Voted* – the number of votes a contributor made.
-* *"+" votes received* – the number of upvotes a contributor received for translations.
-* *"-" votes received* – the number of downvotes a contributor received for translations.
-* *Winning* – the number of approvals a contributor received for translations.
+ Dieser Parameter ist für die Inhaltseinheit *Strings* nicht verfügbar, da die Anzahl der Ausgangs- und übersetzten Strings immer gleich ist.
+* *Genehmigt* – Anzahl der genehmigten Inhaltseinheiten.
+* *Abgegeben* – die Anzahl der von einem Mitwirkenden abgegebenen Stimmen.
+* *„+“-Stimmen erhalten* – die Anzahl der positiven Stimmen, die ein Mitwirkender für Übersetzungen erhalten hat.
+* *„-“-Stimmen erhalten* – die Anzahl der negativen Stimmen, die ein Mitwirkender für Übersetzungen erhalten hat.
+* *Gewonnen* – die Anzahl der Genehmigungen, die ein Mitwirkender für Übersetzungen erhalten hat.
* *Zugriff gewährt* – gibt an, wann einem Mitglied Zugriff auf ein Projekt gewährt wurde.
-To customize the visibility of columns in the report, click at the upper-right side of the table and select the preferred ones.
+Um die Sichtbarkeit der Spalten im Bericht anzupassen, klicke oben rechts in der Tabelle auf und wähle die gewünschten Spalten aus.