Zum Inhalt springen

Modul zur Verarbeitung nach dem Dateiimport

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.

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
manifest.json
{
"modules": {
"file-post-import": [
{
"key": "your-post-import-module-key",
"url": "/import-strings",
"signaturePatterns": {
"fileName": "^.+\.xml$",
"fileContent": "<properties>\s*<property\s+name=.*value=.*/>"
}
}
]
}
}
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.

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.

Beispiel für die Nutzlast der Anfrage:

// 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

Beispiel für die Nutzlast der Antwort:

// 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.

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:

// 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.

War diese Seite hilfreich?