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
{ "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: Erforderlich: ja Beschreibung: Kennung des Moduls innerhalb der Crowdin-App. |
url | Typ: Erforderlich: ja Beschreibung: Die relative URL, die beim Dateiimport, bei Aktualisierungen und beim Hochladen von Übersetzungen aufgerufen wird. |
signaturePatterns | Typ: Beschreibung: Enthält reguläre Ausdrücke für |
Kommunikation zwischen der File-Processing-App und Crowdin
Abschnitt betitelt „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.
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: Wert: Beschreibung: Gibt die Aktion des Moduls zur Verarbeitung nach dem Dateiimport an. |
file.content, file.contentUrl | Typ: Beschreibung: Parameter zur Übergabe des base64-codierten Inhalts der Source-Datei ( |
strings, stringsUrl | Typ(strings): Typ(stringsUrl): Beschreibung: Parameter für die nach dem Dateiimport extrahierten Strings. |
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): Typ(data.stringsUrl): Beschreibung: Parameter zur Übergabe des Inhalts der geänderten Strings. |
data.preview, data.previewUrl | Typ(data.preview): Typ(data.previewUrl): 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: 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: Beschreibung: Eindeutige ID innerhalb der Datei. |
identifier | Typ: Beschreibung: Sichtbarer String-Schlüssel. |
attributes.crowdinType | Typ: Zulässige Werte: Entsprechen größtenteils den für die Add File API-Methode akzeptierten 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 |