Tilpasset filformatmodul

Modulet muliggør tilføjelse af understøttelse for nye tilpassede filformater. Modulet implementeres uddelegering af en kildefilfortolkning til en app med et tilpasset filformatmodul. When translations are completed, Crowdin passes a source file and a string array with translations to the Custom file format app for translation files generation.

You can grant access to this module to one of the following user categories:

For Crowdin:

  • Only me (i.e., project owner)
  • All project members
  • Selected users

For Crowdin Enterprise:

  • Only organization admins
  • All users in the organization projects
  • Selected users

Structure

{
  "custom-file-format": [
    {
      "key": "relevant-modulnøgletype-xyz",
      "type": "type-xyz",
      "url": "/process",
      "multilingual": true,
      "signaturePatterns": {
        "fileName": "^.+\\.xyz$",
        "fileContent": "<properties>\\s*<property\\s+name=.*value=.*/>"
      }
    }
  ]
}

Egenskaber

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

type

Type: string

Required: yes

Beskrivelse: Den tilpasset filformat-identifikator. Kan bruges i en API til at tvinge behandlingen af filerne af den Tilpasset filformat-app. Bruges parameteren type i API'en, ignoreres signaturePatterns.

url

Type: string

Required: yes

Beskrivelse: Den relative URL udløst ved filimport, opdatering, oversættelses-upload og -eksport.

multilingual

Type: bool

Required: no

Gyldige værdier: true, false. Standard er false

Beskrivelse: Denne parameter bruges til at kombinere indholdet af flere sprog til én forespørgsel ved up- og download af oversættelser i Crowdin-projektet.

signaturePatterns

Type: object

Beskrivelse: Indeholder fileName og/eller fileContent regulære udtryk, som bruges til at detektere filtypen, når en ny kildefil uploades via UI'en (eller via API'en uden angivet type-parameter). Matcher filen regulære udtryk, markeres den som en tilpasset format-fil.

Bemærk: Det regulære udtrykfileContent tjekker kun de første 64 KB af filindholdet.

Kommunikation mellem Tilpasset filformat-appen og Crowdin

Ved første filimporten detekterer systemet tilpasset filformat vha. parametrene signaturePatterns eller type og fremsætter en HTTP-anmodning til appens URL ($baseUrl. $url) for yderligere behandling. Derefter behandler appen filen i et tilpasset format og svarer systemet. Anmodninger og svar til og fra de tilpasset filformat-apps har to minutters timeout. Den maksimale anmodning og respons nyttelaststørrelse er begrænset til 5 MB.

Anmodning til appen

Anmod om nyttelast-eks.:

// makd. forespørgsels payload - 5 MB
// afventningstimeout - 2 min.
{
    "jobType": "parse-fil | build-fil",
    "organisation": {
        "id": 1,
        "domain": "{domain}",
        "baseUrl": "https://{domain}.crowdin.com",
        "apiBaseUrl": "https://{domain}.api.crowdin.com"
    },
    "project": {
        "id": 1,
        "identifier": "projektidentifikator",
        "name": "Projektnavnet"
    },
    "file": {
        "id": 1,
        "name": "fil.xml",
        "content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // base64-kodet kildefilindhold
        "contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signatur=..." // 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": [{
        // samme struktur som for sourceLanguage, tom ved upload af en ny kildefil, ét element til import_translations og eksport, kan være flere til flersprogede filer
    }],
    "strings": [...], // til build-file job, segmentskema
    "stringsUrl": "https://tmp.downloads.crowdin.com/strings.ndjson", // til build-file job, fil med segmenter, i new-line delimited json-format
}

Egenskaber:

jobType

Type: string

Gyldige værdier: parse-file, build-file

Beskrivelse: Angiver den handling, der skal udføres af appen.
parse-fil-jobbet bruges ved første kildefil-upload, upload af kildefilopdatering og upload af oversættelse. For parse-file-job videregiver systemet en kildefil til appen og forventer et fortolket kildestringsskema i svaret.
build-file-jobbet bruges til oversættelses-download. For build-file-job videregiver systemet en kildefil og en strengskema med oversættelser til appen og forventer en genereret oversættelsesfil i svaret.

file.content, file.contentUrl

Type: string

Beskrivelse: Parametre brugt til at videregive det base64-kodet kildefilindhold (fil.content) eller en offentlig fil-URL (fil.contentUrl).
Enhver af disse to parametre kan bruges (Bemærk: Maks. anmodningsnyttelastgrænse er 5 MB).

strings, stringsUrl

Type(strings): array

Type(stringsUrl): string

Beskrivelse: Parametre anvendt til download af oversættelser (kun til build-file-jobtypen). strings - oversættelsesstrengeskema. stringsUrl - public URL to a new-line delimited json with translation strings.
Either of these two parameters can be used (Note: Maximum request payload limit is 5 MB).

Forventede svar fra appen til parse-file jobtypen

Svarnyttelasteks.:

// maks. svarnyttelast - 5 MB
// afventnings timeout - 2 min.
{
    "data": {
        "strings": [...], // skema over segmenter
        "stringsUrl": "https://app.example.com/jKe8ujs7a-segments.ndjson", // new-line delimited json-fil med fortolkede strenge
        "preview": "VGhpbmdzIGFyZSBvbmx5IGltcG9zc2libGUgdW50aWwgdGhleSdyZSBub3Qu", // valgfri, base64-kodet indhold af preview html-fil, uunderstøttet ved strenge i flertalsform
        "previewUrl": "https://app.example.com/LN3km2K6M-preview.html", // valgfri, URL for preview html-fil, uunderstøttet ved strenge i flertalsform
    },
    "error": {
        "message": "Egen fejlmeddelelse"
    }
}

Egenskaber:

data.strings, data.stringsUrl

Type(data.strings): array

Type(data.stringsUrl): string

Description: Parameters used to pass the parsed strings content.
data.strings - parsed strings array.
data.stringsUrl - public URL to a new-line delimited json with parsed strings.
Either of these two parameters can be used (Note: Maximum response payload limit is 5 MB).

preview, previewUrl

Type(preview): array

Type(previewUrl): string

Beskrivelse: Parametre brugt til at videregive den valgfrie HTML-forhåndsvisning af fortolkede strengeindhold, som kan genereres af appen. Den genererede HTML-forhåndsvisning vil fremgå i Redigeringsværktøjet. See the HTML Preview file example.

Bemærk: HTML-forhåndsvisning vil ikke fremgå i Crowdins Redigeringsværktøj, hvis appen videregiver strenge med flertalsform.

error.message

Type: string

Description: An error message that can be passed from the app to Crowdin Enterprise and will be visible to a user in the UI.

Forventede svar fra appen til build-file jobtypen

Svarnyttelasteks.:

// maks. svarnyttelast - 5 MB
// afventningstimeout - 2 min.
{
    "data": {
        "content": "TWF5IHRoZSBGb3JjZSBiZSB3aXRoIHlvdS4=", // base64-kodet oversættelsesfilindhold
        "contentUrl": "https://app.example.com/p5uLEpq8p-result.xml", // oversættelsesfils offentlige URL
    },
    "error": {
        "message": "Egen fejlmeddelelse"
    }
}

Egenskaber:

data.content, data.contentUrl

Type(data.content): string

Type(data.contentUrl): string

Beskrivelse: Parametre brugt til at videregive det base64-kodet oversættelsesfilindhold (data.content) eller en offentlig oversættelesfil-URL (fil.contentUrl).
Enhver af disse to parametre kan bruges (Bemærk: Maks. svarnyttelastgrænse er 5 MB).

error.message

Type: string

Description: An error message that can be passed from the app to Crowdin Enterprise and will be visible to a user in the UI.

Strengeskemastruktur

Nedenfor ses et eks. på den strengestruktur forventet fra appen for parse-file-jobtypen og videresendt til appen til build-file-jobtypen.

Eksempel på indhold:

// 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 []
    "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",
            }
        }
    }
}]

Egenskaber:

previewId

Type: integer

Required: ja (kun til jobbet parse-file, når HTML-forhåndsvisningen af filen er genereret)

Beskrivelse: Numerisk strengidentifikator i i HTML-forhåndsvisningsfilen. Kun brugt til parse-file-jobtypen.

id

Type: integer

Beskrivelse: Numerisk strengidentifikator i Enterprise-projektet. Kun brugt til build-file-jobtypen.

identifier

Type: string

Beskrivelse: Unik strengnøgle i selve filen.

customData

Type: string

Beskrivelse: Evt. tilpassede data, som skal være tilknyttet strengen. Tilføjet tilpassede data vil eksporteres sammen de korresponderende strenge under oversættelseseksport.

HTML-forhåndsvisning af filen

HTML-forhåndsvisning af fileks.:

<html lang="en">
<head>
    <title>Optional Title</title>
    <style>
        table, th, td { border: 1px solid #aaa; }
    </style>
</head>
<body>
    <h1 style="text-align: center">HTML preview of the file</h1>
    <table style="width: 100%">
        <tr>
            <th>Key:</th>
            <th>Text:</th>
        </tr>
        <tr>
            <td>Key 1</td>
            <td><span id="string_preview_id_1">Source Text 1</span></td> <!-- 1 is previewId in strings json -->
        </tr>
        <tr>
            <td>Key 2</td>
            <td><span id="string_preview_id_2">Source Text 2</span></td> <!-- 2 is previewId in strings json -->
        </tr>
    </table>
</body>
</html>

Var denne artikel nyttig?