Crowdin-apps JS er et bibliotek bygget til lettere interaktion med Crowdin. Da integrationen bruger iframes, er der visse begrænsninger for interaktionen mellem vinduer: Miljøer er indkapslet og har ikke adgang til sideindholdet, kode, stilarter og andre oplysninger relateret til siden.
Crowdin-apps JS-biblioteket er baseret på meddelelsesteknologi på tværs af vinduer og bruger postMessage() til interaktion mellem flere vinduer.
For brug af dette bibliotek, så tilslut det på modulsiden ved at indsætte flg. kode i sidehovedet:
<script src="https://cdn.crowdin.com/apps/dist/iframe.js"></script>
Efter tilføjelse af ovennævnte kode vil den globale AP-variabel kunne benyttes.
iframe.js
-filen direkte fra egen app-server. Filen iframe.js
skal leveres fra Crowdin til oprettelse af krydsdomæne besked-bridge. Filen iframe.js
er kun beregnet til brug i en iframe inde i Crowdin og fungerer ikke for enkeltstående websider.Globale handlinger er de på alle modulsider tilgængelige handlinger.
Metoden henter kontekstinformationen om den aktuelle side og indsætter den i callback’en. F.eks. projekt-ID’et, hvor modulet åbnes eller landestandarden brugt på siden.
Eks.:
AP.getContext(function(contextData) {
console.log("Object: context", contextData);
});
Egenskaber:
callback | Type: Beskrivelse: callback'en, der håndterer svarobjektet. |
Metoden henter en JWT-token streng. Bruges til at hente et aktuelt token. Har det foregående token en gyldighedsperiode på mindre end et minut, genererer og returnerer metoden et nyt token.
Eks.:
AP.getJwtToken(function(jwtToken) {
console.log("String: JWT token", jwtToken);
});
Egenskaber:
callback | Type: Beskrivelse: callback'en, der håndterer svarstrengen. |
Editormodulhandlinger muliggør at hente information fra Editor-UI’en. Disse handlinger er kun tilgængelige på sider indlæst i en iframe i Editor-panelmodulet.
Metoden henter information om den aktuelt valgte streng i Redigeringsværktøjet.
Eks.:
AP.editor.getString(function(stringData) {
console.log("Object: source string", stringData);
});
Egenskaber:
callback | Type: Beskrivelse: callback'en, der håndterer svarobjektet. |
Metoden henter en liste over oversættelser foreslået til den aktuelle streng i Redigeringsværktøjet. Derudover indeholder svaret information om oversættelsesforfatteren, antallet af stemmer og godkendelse af det aktuelle arbejdsgangstrin.
Eks.:
AP.editor.getTranslations(function(translationsData) {
console.log("Array: translation objects", translationsData);
});
Egenskaber:
callback | Type: Beskrivelse: callback'en, der håndterer svarudstrækningen. |
Metoden henter en topoversættelse (oversættelsen med højeste prioritet) til den aktuelt valgte kildestreng i Redigeringsværktøjet.
Eks.:
AP.editor.getTopTranslation(function(topTranslationData) {
console.log("Object: top translation", topTranslationData);
});
Egenskaber:
callback | Type: Beskrivelse: callback'en, der håndterer svarobjektet. |
The method sets the translation text for the currently selected source string in the Editor.
Eks.:
AP.editor.setTranslation("Hello,");
Egenskaber:
text | Type: Description: The translation text that is being set for the currently selected source string. |
The method appends the translation text next to the cursor for the currently selected source string in the Editor.
Eksempel:
AP.editor.appendTranslation(" {user},");
Egenskaber:
text | Type: Description: The translation text that is being appended next to the cursor for the currently selected source string. |
The method clears the translation text for the currently selected source string in the Editor.
Eksempel:
AP.editor.clearTranslation();
The method sets focus on the translation field in the Editor.
Eksempel:
AP.editor.setFocus();
Event-modulhandlinger muliggør at arbejde med begivenheder, og tillader Crowdin-appen at reagere på begivenheder, som sker i Crowdin-UI’en samt at udløse sine egne begivenheder. Read more about supported events.
Metoden tilmelder en engangs-listener til at opdage begivenheder med et angivet navn. Listener’en afmeldes, så snart den første begivenhed håndteres.
Eksempel:
AP.events.once("event", function(eventData) {
console.log("Event data", eventData);
});
Egenskaber:
event | Type: Beskrivelse: Navnet på begivenheden, som funktionens callback skal reagere på. |
callback | Type: Beskrivelse: Callback'en, der håndterer begivenheden. Afhængigt af begivenhedstype, kan der være enten ét eller et flere argumenter i callback'en. |
Metoden tilmelder en engangs-listener for alle begivenheder med et bestemt navn.
Eksempel:
AP.events.on("event", function(eventData) {
console.log("Event data", eventData);
});
Egenskaber:
event | Type: Beskrivelse: Navnet på begivenheden, som funktionens callback skal reagere på. |
callback | Type: Beskrivelse: Callback'en, der håndterer begivenheden. Afhængigt af begivenhedstype, kan der være enten ét eller et flere argumenter i callback'en. |
Metoden afmelder en listener for en begivenhed med et angivet navn.
Example:
function callback(eventData) {
console.log("Event data", eventData);
};
AP.events.on("event", callback);
AP.events.off("event", callback);
Egenskaber:
event | Type: Beskrivelse: Navnet på begivenheden, fra hvilken funktionens callback skal afmeldes. |
callback | Type: Beskrivelse: Callback'en, der tidligere var tilmeldt for begivenheden. |
Metoden afmelder alle tidligere tilmeldte listeners for den angivne begivenhed.
Example:
AP.events.offAll("event");
event | Type: Beskrivelse: Navnet på begivenheden, fra hvilken alle listeners skal afmeldes. |
Metoden tilmeldes for alle begivenheder fra Crowdin-UI’en.
Example:
AP.events.onAny(function(event, data) {
console.log("Event name string", event);
console.log("Event data", data);
});
Properties:
callback | Type: Beskrivelse: Callback'en, der modtager navnet på begivenheden og alle data overført hertil. |
Metoden afmelder en listener fra alle begivenheder.
Example:
function callback(event, data) {
console.log("Event name string", event);
console.log("Event data", data);
};
AP.events.onAny(callback);
AP.events.offAny(callback);
Properties:
callback | Type: Beskrivelse: Callback'en, der var tilmeldt for begivenheden. |
Check out the list of supported events that could be passed to the Crowdin Apps JS library in the following table:
Event | Example | Description |
---|---|---|
string.change |
| The event emitted when a user switches from one string to another. |
textarea.edited |
| The event emitted when a user performs any changes in the translation field. |
translation.added |
| The event emitted when a user saves a translation for the current string. |
translation.deleted |
| The event emitted when a user deletes a translation. |
translation.restored |
| The event emitted when a user restores a deleted translation. |
translation.vote |
| The event emitted when a user votes for a translation. |
translation.approve |
| The event emitted when a user approves a translation. |
translation.disapprove |
| The event emitted when a user removes a translation approval. |
language.change |
| The event emitted when a user changes a target language in the Editor. |
file.change |
| The event emitted when a user changes a file in the Editor. |