Zum Inhalt springen

Modul zur Verarbeitung der Übersetzungszuordnung

Mit dem Modul zur Verarbeitung der Übersetzungszuordnung kannst du Crowdins Standardmechanismus zur Zuordnung überschreiben, wenn du Übersetzungen für Nicht-Schlüssel-Wert-Dateien (z. B. HTML oder MD) hochlädst.

Standardmäßig ordnet Crowdin hochgeladene Übersetzungen automatisch den vorhandenen Source-Strings zu. Wenn du dieses Modul in deiner Crowdin-App verwendest, kannst du diesen Prozess abfangen und deine eigene Zuordnungslogik anwenden, beispielsweise mithilfe eines Zuordnungsdienstes eines Drittanbieters. Damit hast du die volle Kontrolle darüber, wie Übersetzungen bei komplexen Dokumentformaten den entsprechenden Source-Strings zugeordnet werden.

Du kannst Zugriff auf dieses Modul für eine der folgenden Benutzerkategorien gewähren:

Für Crowdin:

  • Nur ich (also der Projektinhaber)
  • Ich, Projektmanager und Entwickler
  • Ausgewählte Benutzer

Für Crowdin Enterprise:

  • Nur Organisationsadministratoren
  • Organisationsadministratoren, Projektmanager und Entwickler
  • Ausgewählte Benutzer
manifest.json
{
"modules": {
"file-translations-alignment": [
{
"key": "your-translations-alignment-module-key",
"url": "/translations-alignment",
"signaturePatterns": {
"fileName": "^.+\.html$",
"fileContent": "<html.*>"
}
}
]
}
}
key

Typ: string

Erforderlich: ja

Beschreibung: Kennung des Moduls innerhalb der Crowdin-App.

url

Typ: string

Erforderlich: ja

Beschreibung: Die relative URL, die beim Hochladen einer Übersetzung 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 von Übersetzungen über die UI (oder über die API ohne angegebenen type-Parameter) verwendet werden.

Beim Hochladen einer Übersetzungsdatei für ein Nicht-Schlüssel-Wert-Format erkennt das System anhand des Parameters signaturePatterns ein geeignetes Modul zur Verarbeitung der Übersetzungszuordnung. Crowdin sendet anschließend eine HTTP-Anfrage an die URL der App ($baseUrl. $url).

Diese Anfrage enthält zwei Hauptarrays: sourceStrings (aus dem Projekt) und translationStrings (aus der hochgeladenen Übersetzungsdatei geparst). Die Aufgabe der App besteht darin, diese beiden String-Mengen zu verarbeiten, die Zuordnung durchzuführen und eine strukturierte Antwort zurückzugeben, die die Übersetzungen den korrekten IDs der Source-Strings zuordnet.

Beispiel für die Nutzlast der Anfrage:

// max request payload - 5 MB
// wait timeout - 2 minutes
{
"jobType": "translation-alignment-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",
"userId": 1,
"sourceLanguageId": "en",
"targetLanguageIds": [
"ja",
"uk",
"et"
],
"createdAt": "2030-01-15T07:00:00+00:00",
"updatedAt": "2030-01-15T07:00:15+00:00",
"lastActivity": "2030-01-15T10:12:13+00:00",
"description": null,
"url": "/project/your-project-identifier",
"cname": null
},
"sourceLanguage": {
"id": "en",
"name": "English",
"editorCode": "en",
"twoLettersCode": "en",
"threeLettersCode": "eng",
"locale": "en-US",
"androidCode": "en-rUS",
"osxCode": "en.lproj",
"osxLocale": "en",
"pluralCategoryNames": [
"one",
"other"
],
"pluralRules": "(n != 1)",
"pluralExamples": [
"1",
"0, 2-999; 1.2, 2.07..."
],
"textDirection": "ltr",
"dialectOf": null
},
"targetLanguages": [
{
// Language object for the translation being aligned. Has the same structure as sourceLanguage.
}
],
"file": {
"id": 4219,
"name": "en.html",
"title": null,
"path": "/en.html",
"type": "html32",
"isMultilingual": false,
"status": "active",
"revision": 1,
"branchId": null,
"directoryId": 0
},
"sourceStrings": [
{
"id": 1234567,
"text": "Welcome!",
"context": "Document Title\r\nXPath: \/html\/head\/title"
}
// other source strings ...
],
"translationStrings": [
{
"id": null,
"text": "Ласкаво просимо!",
"context": "Document Title\r\nXPath: \/html\/head\/title"
}
// other translation strings ...
]
}

Eigenschaften:

jobType

Typ: string

Wert: translation-alignment-file

Beschreibung: Gibt die Aktion des Moduls zur Verarbeitung der Übersetzungszuordnung an.

file

Typ: object

Beschreibung: Enthält Informationen über die Source-Datei in Crowdin, in die die Übersetzungen hochgeladen werden.

targetLanguages

Typ: array

Beschreibung: Ein Array, das das Sprachobjekt der hochgeladenen und zugeordneten Übersetzungsdatei enthält.

sourceStrings, sourceStringsUrl

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.

translationStrings, translationStringsUrl

Typ(translationStrings): array

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.

Die App muss ihre benutzerdefinierte Zuordnung durchführen und eine Antwort mit einem translations-Array zurückgeben. Dieses Array ordnet jeden Übersetzungstext seiner entsprechenden sourceStringId zu.

Beispiel für die Nutzlast der Antwort:

// max response payload - 5 MB
// wait timeout - 2 minutes
{
"data": {
"translations": [
{
"sourceStringId": 1234567,
"text": "Ласкаво просимо!"
},
// other translation mappings...
],
// or use translationsUrl for large payloads
"translationsUrl": "https://app.example.com/jKe8ujs7a-aligned.ndjson" // new-line delimited json file with aligned translations
},
"error": {
"message": "Optional error message"
}
}

Eigenschaften:

data.translations, data.translationsUrl

Typ(data.translations): array

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.

data.translations.sourceStringId

Typ: integer

Beschreibung: Die numerische ID des Source-Strings, auf den die Übersetzung angewendet werden soll.

data.translations.text

Typ: string oder object

Beschreibung: Der anzuwendende Übersetzungstext. Für Strings mit Pluralformen muss dies ein Objekt sein, dessen Schlüssel den Pluralkategorien der Zielsprache entsprechen (z. B. one, other).

error.message

Typ: string

Beschreibung: Eine Fehlermeldung, die von der App an Crowdin übergeben wird und für einen Benutzer in der UI sichtbar ist.

War diese Seite hilfreich?