Modules

Moduler lader apps udvide Crowdin-UI’en, oprette integrationer med eksterne tjenester mv.

Understøttede moduler

  • Integrationsmodul – indsæt en ny integrationsside i Crowdin.
  • Editor-panelermodul – opretter ekstra paneler i Redigeringsværktøjet.
  • Ressourcemodul – opret et ekstra panel i projektejerens ressourcer.
  • Projektmenumodul – opret en ny fane i projektet.
  • Tilpasset MT-modul – tilslut maskinoversættelsesmotorer, som endnu ikke understøttes i Crowdin.
  • Værktøjsmodul – indsæt en ny værktøjsside i Crowdin.
  • Rapportmodul – opret yderligere rapporter på fanen 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 Crowdn-projektet. Det kan findes på projekfanen Integrationer. 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 fremgår i Crowdin-UI'en.

logo

Type: string

Required: yes

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

url

Type: string

Required: yes

Beskrivelse: Den relative URL til modulindholdssiden, der integreres i Crowdin-UI'en.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

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 modulindholdssiden, der integreres i Crowdin-UI'en.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

Ressourcer modul

Ressourcemodulet muliggør oprettelse af et ekstra panel i projektejerens ressourcer. Dette modul er kun tilgængeligt for projektejere.

Ressourcemodulstruktur:

{
  "resources": [
    {
      "key": "relevant-modulnøgle",
      "name": "Modulnavn",
      "url": "/resource-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 modulindholdssiden, der integreres i Crowdin-UI'en.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

Projektmenumodul

Projektmenumodulet muliggør oprettelse af en ny fane i projektet. 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 modulindholdssiden, der integreres i Crowdin-UI'en.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

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.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

Værktøjsmodul

Værktøjsmodulet muliggør oprettelse og indsættelse af en ny værktøjsside i Crowdin-projektet. Modulet kan findes på projekfanen 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 fremgår i Crowdin-UI'en.

logo

Type: string

Required: yes

Beskrivelse: Den relative URL til værktøjslogoet, der vil fremgå i Crowdin-UI'en.
Anbefalet opløsning er 48x48 pixels.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til modulindholdssiden, der integreres i Crowdin-UI'en.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

Rapportmodul

Rapportmodulet muliggør oprettelse og indsættelse af en ny rapport i Crowdin-projektet. Modulet kan findes på projekfanen 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 fremgår i Crowdin-UI'en.

logo

Type: string

Beskrivelse: Den relative URL til værktøjslogoet, der vil fremgå i Crowdin-UI'en.
Anbefalet opløsning er 48x48 pixels.

url

Type: string

Required: yes

Beskrivelse: Den relative URL til modulindholdssiden, der integreres i Crowdin-UI'en.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

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ættelsen er fuldført, videregiver Crowdin et skema med oversættelser til appen Tilpasset filformat, der genererer oversættelsesfilerne. 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 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.:

// max request payload - 5 MB
// wait timeout - 2 minutes
{
    "jobType": "parse-file | build-file",
    "organization": {
        "id": 1,
        "domain": null,
        "baseUrl": "https://crowdin.com",
        "apiBaseUrl": "https://api.crowdin.com"
    },
    "project": {
        "id": 1,
        "identifier": "projekt-identifikator",
        "name": "Projektnavnet"
    },
    "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": [{
        // 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 videresendes fra appen til Crowdin og vil være synlig for brugeren 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 videresendes fra appen til Crowdin og vil være synlig for brugeren 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 Crowdin-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>

Kontekstmenumodul

Kontekstmenumodulet muliggør oprettelse af et punkt i kontekstmenu. Pt. kan modulet føjes til flg. kontekstmenuer:

  • Kontekstmenupunkt for Ressourcer > TM > TM-post.
  • Kontekstmenupunkt for Ressourcer > Ordliste > Ordlistepost.
  • Kontekstmenupunkt for Projektstartsiden > Sprogpost.
  • Kontekstmenupunkt for Projekt > Indhold > Filer > Filpost.
  • Kontekstmenupunkt for Projekt > Indhold > Skærmfotos > Skærmfotospost.
  • Kontekstmenupunkt for Projektstartsiden > Sprog > Filpost.

Modul kan også udføre flg. handlingstyper:

  • Åbn en vinduedialog med medfølgende iframe (se Modalmodul.
  • Åbne et link på et nye/samme fane.

Dette modul er tilgængeligt for alle godkendte brugere.

Kontekstmenumodulstruktur:

{
  "context-menu": [
    {
      "key": "modulenøgle",
      "name": "Modulnavn",
      "description": "Modulnavn",
      "options": {
        "location": "/modal",
        "type": "vinduedialog"
      }
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst. Bruger som kontekstmenutekst

description

Type: string

Beskrivelse: Klartekstbeskrivelse af modulfunktionaliteten.
Beskrivelsen vil fremgå i Crowdin-UI'en.

options.location

Type: string

Required: yes

Gyldige værdier: tm, glossary, language, screenshot, source_file, translated_file

Beskrivelse: Placeringen i UI'en, hvor kontekstmenuen kan tilføjes.

options.type

Type: string

Required: yes

Gyldige værdier: modal, new_tab, redirect

Beskrivelse: Handlingstype udført af dette modul.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

Vinduedialogmodul

Vinduedialogmodulet muliggør at oprette en ny vinduedialog. Dette modul fungerer kun med kontekstmenumodulet, der åbner det.

Vinduedialogmodulstruktur:

{
  "context-menu": [
    {
      "key": "modulnøgle",
      "name": "Modulnavn",
      "url": "/module-url"
    }
  ]
}

Egenskaber:

nøgle

Type: string

Required: yes

Beskrivelse: Modul-identifikator i Crowdin-appen.

navn

Type: string

Required: yes

Beskrivelse: Modulnavn i simpel tekst. Bruger som kontekstmenutekst

url

Type: string

Required: yes

Beskrivelse: Den relative URL til modulindholdssiden, der integreres i UI'en.

environments

Type: string

Allowed values: crowdin, crowdin-enterprise

Description: Set of environments where a module could be installed.
This parameter is needed for cross-product applications.

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": "modulenøgle",
      "name": "Modulnavn",
      "description": "Modulbeskrivelse"
    }
  ]
}

Egenskaber:

{module_type}

Type: string

Required: yes

Gyldige værdier: integrations, editor-panels, resources, 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.

description

Type: string

Beskrivelse: Klartekstbeskrivelse af modulfunktionaliteten.
Beskrivelsen vil fremgå i Crowdin-UI'en.

Var denne artikel nyttig?