Modules

Moduler tillader apps at udvide Enterprise-brugerfladen, oprette integrationer med eksterne tjenester mv.

Understøttede moduler

  • Integrationsmodul – indsæt en ny integrationsside i Enterprise.
  • Crowdsource-paneler modul – opret ekstra paneler på den offentlige crowdsourcing-side.
  • Editor-panelermodul – opretter ekstra paneler i Redigeringsværktøjet.
  • Organisationsmenumodul – opret et nyt afsnit i Arbejdsområdestartsidens venstre panel.
  • Projektmenumodul – opret et nyt afsnit i Projektstartsidens venstre panel.
  • Tilpasset MT-modul (Maskinoversættelse) – forbind maskinoversættelsesmotorer, som endnu ikke er understøttet af Enterprise.
  • Integrationsmodul – indsæt en ny værktøjsside i Enterprise.
  • Rapportmodul – opret yderligere rapporter på siden Rapporter.
  • Tilpasset filformat-modul – tilføj understøttelse for en tilpasset filformatimport og -eksport.

Flere Crowdin-apps moduler er på vej.

Integrationsmodul

Integrationsmodulet muliggør oprettelse og indsættelse af en ny integration i Enterprise-projektet. Dette findes under Integrationer > Tilpasset. Dette modul er tilgængeligt for projektmedlemmer med administratortilladelser (eller højere).

Integrationsmodulsstruktur:

{
  "integrations": [
    {
      "key": "your-module-key",
      "name": "Modulnavn",
      "description": "Modulbeskrivelse",
      "logo": "/logo.png",
      "url": "/integration-page"
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

description

Type: string

Beskrivelse: Klartekstbeskrivelsen af, hvad modulet gør.
Beskrivelsen vil fremgå i Enterprise-UI'en.

logo

Type: string

Required: yes

Beskrivelse: Den relative URL til integrationenslogoet, der vil fremgå i Enterprise UI'en.
Den anbefalede opløsning er 48x48 pixels.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en.

Crowdsource-paneler Modul

Crowdsource-paneler modulet muliggør oprettelse af ekstra faner på projektets offentlige crowdsourcing-side. For at arbejde med dette modul, så sørg for, at projektet opfylder flg. krav:

  • Projektarbejdsgangen indeholder Crowdsourcing-trinnet.
  • Projektet er publiceret på Crowdsourcing-indstillingssiden.

Dette modul er tilgængeligt for alle godkendte brugere.

Crowdsource-panel modulstruktur:

{
  "crowdsource-panels": [
    {
      "key": "modulnøgle",
      "name": "Modulenavn",
      "url": "/crowdsource-page"
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en.

Editor-paneler modul

Editor-paneler modul muliggør ekstra faner i Redigeringsværktøjet. Ved brug af modulet i Crowdin-appen kan den Editortilstand vælges, i hvilken de ekstra faner skal vises. Editor-paneler modulet er kun tilgængeligt for projektmedlemmer med adgang til Redigeringsværktøjet.

Editor-panelmodulstruktur:

{
  "editor-panels": [
    {
      "key": "relevante-modulnøgle",
      "position": "right",
      "name": "Modulnavnet",
      "modes": ["translate", "proofread"],
      "url": "/editor-page"
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

position

Type: string

Required: yes

Gyldige værdier: right

Beskrivelse: Placeringen af modulet.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

modes

Type: array

Required: yes

Gyldige værdier: assets, review, translate, proofread

Beskrivelse: Editor-tilstandslisten, hvorfra modulet kan vælges.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en.

Organisationsmenumodul

Organisationsmenumodulet muliggør oprettelse af et nyt afsnit i Arbejdsområdestartsidens venstre panel. Dette modul er kun tilgængeligt for organisationsadmins.

Organisationsmenumodulstruktur:

{
  "organization-menu": [
    {
      "key": "modulnøgle",
      "name": "Modulenavn",
      "url": "/organisationsside",
      "icon": "/images/icon.png"
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en.

ikon

Type: string

Required: yes

Beskrivelse: Den relative URL til den nye sektions ikon, der fremgår i Enterprise-UI'en.
Den anbefalede opløsning er 24x24 pixels.

Projektmenumodul

Projektmenumodul muliggør oprettelse af et nyt afsnit i Projektstartsidens venstre panel. Modul er kun tilgængeligt for udvalgte projektroller.

Projektmenumodulstruktur:

{
  "project-menu": [
    {
      "key": "relevant-modulnøgle",
      "name": "Modulnavn",
      "url": "/project-page"
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en.

Tilpasset MT-modul (Maskinoversættelse)

Modul muliggør at tilslutte maskinoversættelsesmotorer, som endnu ikke understøttes i Crowdin. Når denne form for app er oprettet, vil man kunne præoversætte sit indhold med den tilsluttede MT eller aktivere oversættelsesforslag herfra til at blive vist i Redigeringsværktøjet for oversættere.

Tilpasset MT-modulstruktur:

{
   "custom-mt": [
     {
            "key": "custom-mt",
            "name": "Tilpasset MT",
            "url": "/translate"
      }
    ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til modulindholdssiden, der integreres i Crowdin.

Værktøjsmodul

Værktøjsmodulet muliggør oprettelse og indsættelse af en ny værktøjsside i Enterprise-projektet. Denne findes i afsnittet Værktøjer. Dette modul er tilgængeligt for projektmedlemmer med administratortilladelser (eller højere).

Værktøjsmodulstruktur:

{
  "tools": [
    {
      "key": "relevant-modulnøgle",
      "name": "Modulnavn",
      "description": "Modulbeskrivelse",
      "logo": "/logo.png",
      "url": "/tools-page"
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

description

Type: string

Beskrivelse: Klartekstbeskrivelsen af, hvad modulet gør.
Beskrivelsen vil fremgå i Enterprise-UI'en.

logo

Type: string

Required: yes

Beskrivelse: Den relative URL til værktøjslogoet, der fremgår i Enterprise UI'en.
Den anbefalede opløsning er 48x48 pixels.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en.

Rapportmodul

Rapportmodulet muliggør oprettelse og indsættelse af en ny rapport i Enterprise-projektet. Den finde under Oversættelser > Rapporter. Dette modul er tilgængeligt for projektmedlemmer med administratortilladelser (eller højere).

Rapportmodulstruktur:

{
  "reports": [
    {
      "key": "modulnøgle",
      "name": "Modulnavn",
      "description": "Modulbeskrivelse",
      "logo": "/logo.png",
      "url": "/reports-page"
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

description

Type: string

Beskrivelse: Klartekstbeskrivelsen af, hvad modulet gør.
Beskrivelsen vil fremgå i Enterprise-UI'en.

logo

Type: string

Required: yes

Beskrivelse: Den relative URL til værktøjslogoet, der fremgår i Enterprise UI'en.
Den anbefalede opløsning er 48x48 pixels.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en.

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. Når oversættelserne er fuldført, videresender Enterprise en kildefil og en strengsekvens med oversættelser til appen Tilpasset filformat til generering af oversættelsesfiler. Dette modul er tilgængeligt for projektmedlemmer med administratortilladelser (eller højere).

Tilpasset filformatmodulstruktur:

{
  "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 Enterprise-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 filformats-app og Enterprise

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 - offentlig URL til en new-line delimited json med oversættelesstrenge.
Enhver af disse to parametre kan bruges (Bemærk: Maks. anmodningsnyttelastgrænse er 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

Beskrivelse: Parametre brugt til at videregive det fortolkede strengeindhold.
data. trings - fortolkede strenge-skema.
data. tringsUrl - offentlig URL til en new-line delimited json med fortolkede strenge.
Enhver af disse to parametre kan bruges (Bemærk: Maks. svarnyttelastgrænse er 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. Se eks. med HTML-forhåndsvisning.

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

error.message

Type: string

Beskrivelse: En fejlmeddelelse, der kan sendes fra appen til Enterprise og fremgå for en bruger i UI'en.

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

Beskrivelse: En fejlmeddelelse, der kan sendes fra appen til Enterprise og fremgå for en bruger i UI'en.

Strengeskemastruktur

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

Nyttelasteks.:

// strenge skal være i "new-line delimited json"-formatet, hvis de er videregivet via URL
[{ // ikke-flertalsform streng
    "previewId": 1, // kun til "parse-file" jobType, kræves ved generering af HTML-forvisningen af filen
    "id": 1, // kun til "build-file" jobType
    "identifier": "string-key-1", // kræves
    "context": "Some context", // valgfri
    "customData": "max 4 KB of custom data", // valgfri
    "maxLength": 10, // valgfri, standard er null
    "isHidden": false, // valgfri, standard er false
    "hasPlurals": false, // valgfri, standard er false
    "labels": ["label-one", "label-two"], // valgfri, standard []
    "text": "String source text", // kræves
    "translations": { // valgfri
        "uk": { // targetLanguage.id
            "text": "Переклад стрічки", // kræves
            "status": "untranslated | translated | approved" // valgfri, standard er "translated"
        },
        // kan være andre sprog ved flersproget, tjek "targetLanguages" i anmodningensindholdet
    }
},
{ // flertalsstreng
    "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": { // nøgler fra sourceLanguage.pluralCategoryNames
        "one": "One file",
        "other": "%d files",
    },
    "translations": {
        "uk": {
            "text": { // nøgler fra 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>

Tilføjelse af moduler til en Crowdin-app

Vil man bruge et modul i sin app, skal modulet erklæres i filen App Descriptor under moduler, herunder evt. krævede egenskaber. De inkluderede egenskaberne vil styre tilpasningsindstillingerne for modulet.

Basismodulstruktur:

{
  "{module_type}": [
    {
      "key": "modulnøgle",
      "name": "Modulenavn"
    }
  ]
}

Egenskaber:

{module_type}

Type: string

Required: yes

Gyldige værdier: integrationer, crowdsource-panels, editor-panels, organization-menu, project-menu, custom-mt, tools, reports, custom-file-format

Beskrivelse: Den af Crowdin-appen anvendte modultype.

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst.

Var denne artikel nyttig?