Moduler tillader apps at udvide Enterprise-brugerfladen, oprette integrationer med eksterne tjenester mv.
Flere Crowdin-apps moduler er på vej.
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |
description | Type: Beskrivelse: Klartekstbeskrivelsen af, hvad modulet gør. |
logo | Type: Required: yes Beskrivelse: Den relative URL til integrationenslogoet, der vil fremgå i Enterprise UI'en. |
url | Type: Required: yes Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en. |
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:
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |
url | Type: Required: yes Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en. |
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
position | Type: Required: yes Gyldige værdier: Beskrivelse: Placeringen af modulet. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |
modes | Type: Required: yes Gyldige værdier: Beskrivelse: Editor-tilstandslisten, hvorfra modulet kan vælges. |
url | Type: Required: yes Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en. |
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |
url | Type: Required: yes Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en. |
ikon | Type: Required: yes Beskrivelse: Den relative URL til den nye sektions ikon, der fremgår i Enterprise-UI'en. |
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |
url | Type: Required: yes Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en. |
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |
url | Type: Required: yes Beskrivelse: Den relative URL til modulindholdssiden, der integreres i Crowdin. |
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |
description | Type: Beskrivelse: Klartekstbeskrivelsen af, hvad modulet gør. |
logo | Type: Required: yes Beskrivelse: Den relative URL til værktøjslogoet, der fremgår i Enterprise UI'en. |
url | Type: Required: yes Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en. |
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |
description | Type: Beskrivelse: Klartekstbeskrivelsen af, hvad modulet gør. |
logo | Type: Required: yes Beskrivelse: Den relative URL til værktøjslogoet, der fremgår i Enterprise UI'en. |
url | Type: Required: yes Beskrivelse: Den relative URL til indholdssiden for modulet, der integreres i Enterprise-UI'en. |
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: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
type | Type: 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 |
url | Type: Required: yes Beskrivelse: Den relative URL udløst ved filimport, opdatering, oversættelses-upload og -eksport. |
multilingual | Type: Required: no Gyldige værdier: 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: Beskrivelse: Indeholder Bemærk: Det regulære udtryk fileContent tjekker kun de første 64 KB af filindholdet. |
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.
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: Gyldige værdier: Beskrivelse: Angiver den handling, der skal udføres af appen. |
file.content , file.contentUrl | Type: Beskrivelse: Parametre brugt til at videregive det base64-kodet kildefilindhold ( |
strings , stringsUrl | Type(strings): Type(stringsUrl): Beskrivelse: Parametre anvendt til download af oversættelser (kun til |
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): Type(data.stringsUrl): Beskrivelse: Parametre brugt til at videregive det fortolkede strengeindhold. |
preview , previewUrl | Type(preview): Type(previewUrl): 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: Beskrivelse: En fejlmeddelelse, der kan sendes fra appen til Enterprise og fremgå for en bruger i UI'en. |
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): Type(data.contentUrl): Beskrivelse: Parametre brugt til at videregive det base64-kodet oversættelsesfilindhold ( |
error.message | Type: Beskrivelse: En fejlmeddelelse, der kan sendes fra appen til Enterprise og fremgå for en bruger i UI'en. |
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: Required: ja (kun til jobbet Beskrivelse: Numerisk strengidentifikator i i HTML-forhåndsvisningsfilen. Kun brugt til |
id | Type: Beskrivelse: Numerisk strengidentifikator i Enterprise-projektet. Kun brugt til |
identifier | Type: Beskrivelse: Unik strengnøgle i selve filen. |
customData | Type: 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>
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: Required: yes Gyldige værdier: Beskrivelse: Den af Crowdin-appen anvendte modultype. |
nøgle | Type: Required: yes Beskrivelse: Modul-identifikator i Crowdin-appen. |
navn | Type: Required: yes Beskrivelse: Modulnavn i simpel tekst. |