@crowdin/crowdin-api-client
Version:
JavaScript library for Crowdin API
268 lines (267 loc) • 11.8 kB
TypeScript
import { CrowdinApi, DownloadLink, PaginationOptions, PatchRequest, ResponseList, ResponseObject, Status } from '../core';
/**
* Translators can work with entirely untranslated project or you can pre-translate the files to ease the translations process.
*
* Use API to pre-translate files via Machine Translation (MT) or Translation Memory (TM), upload your existing translations, and download translations correspondingly.
* Pre-translate and build are asynchronous operations and shall be completed with sequence of API methods.
*/
export declare class Translations extends CrowdinApi {
/**
* @param projectId project identifier
* @param options optional parameters for the request
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.pre-translations.getMany
*/
listPreTranslations(projectId: number, options?: PaginationOptions): Promise<ResponseList<Status<TranslationsModel.PreTranslationStatusAttributes>>>;
/**
* @param projectId project identifier
* @param preTranslationId pre translation identifier
* @see https://developer.crowdin.com/api/v2/#tag/Translations/paths/~1projects~1{projectId}~1pre-translations~1{preTranslationId}/get
*/
preTranslationStatus(projectId: number, preTranslationId: string): Promise<ResponseObject<Status<TranslationsModel.PreTranslationStatusAttributes>>>;
/**
* @param projectId project identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.pre-translations.post
*/
applyPreTranslation(projectId: number, request: TranslationsModel.PreTranslateRequest | TranslationsModel.PreTranslateStringsRequest): Promise<ResponseObject<Status<TranslationsModel.PreTranslationStatusAttributes>>>;
/**
* @param projectId project identifier
* @param preTranslationId pre translation identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.pre-translations.patch
*/
editPreTranslation(projectId: number, preTranslationId: string, request: PatchRequest[]): Promise<ResponseObject<Status<TranslationsModel.PreTranslationStatusAttributes>>>;
/**
* @param projectId project identifier
* @param directoryId directory identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.builds.directories.post
*/
buildProjectDirectoryTranslation(projectId: number, directoryId: number, request?: TranslationsModel.BuildProjectDirectoryTranslationRequest): Promise<ResponseObject<TranslationsModel.BuildProjectDirectoryTranslationResponse>>;
/**
* @param projectId project identifier
* @param fileId file identifier
* @param request request body
* @param eTag 'If-None-Match' header
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.builds.files.post
*/
buildProjectFileTranslation(projectId: number, fileId: number, request: TranslationsModel.BuildProjectFileTranslationRequest, eTag?: string): Promise<ResponseObject<TranslationsModel.BuildProjectFileTranslationResponse>>;
/**
* @param projectId project identifier
* @param options optional parameters for the request
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.builds.getMany
*/
listProjectBuilds(projectId: number, options?: TranslationsModel.ListProjectBuildsOptions): Promise<ResponseList<TranslationsModel.Build>>;
/**
* @param projectId project identifier
* @param branchId branch identifier
* @param limit maximum number of items to retrieve (default 25)
* @param offset starting offset in the collection (default 0)
* @deprecated optional parameters should be passed through an object
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.builds.getMany
*/
listProjectBuilds(projectId: number, branchId?: number, limit?: number, offset?: number): Promise<ResponseList<TranslationsModel.Build>>;
/**
* @param projectId project identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.builds.post
*/
buildProject(projectId: number, request?: TranslationsModel.BuildRequest | TranslationsModel.PseudoBuildRequest): Promise<ResponseObject<TranslationsModel.Build>>;
/**
* @param projectId project identifier
* @param languageId language identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.postOnLanguage
*/
uploadTranslation(projectId: number, languageId: string, request: TranslationsModel.UploadTranslationRequest): Promise<ResponseObject<TranslationsModel.UploadTranslationResponse>>;
uploadTranslationStrings(projectId: number, languageId: string, request: TranslationsModel.UploadTranslationStringsRequest): Promise<ResponseObject<TranslationsModel.UploadTranslationStringsResponse>>;
/**
* @param projectId project identifier
* @param buildId build identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.builds.download.download
*/
downloadTranslations(projectId: number, buildId: number): Promise<ResponseObject<DownloadLink>>;
/**
* @param projectId project identifier
* @param buildId build identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.builds.get
*/
checkBuildStatus(projectId: number, buildId: number): Promise<ResponseObject<TranslationsModel.Build>>;
/**
* @param projectId project identifier
* @param buildId build identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.builds.delete
*/
cancelBuild(projectId: number, buildId: number): Promise<void>;
/**
* @param projectId project identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.translations.exports.post
*/
exportProjectTranslation(projectId: number, request: TranslationsModel.ExportProjectTranslationRequest): Promise<ResponseObject<DownloadLink>>;
}
export declare namespace TranslationsModel {
interface PreTranslateRequest {
languageIds: string[];
fileIds: number[];
method?: Method;
engineId?: number;
aiPromptId?: number;
autoApproveOption?: AutoApproveOption;
duplicateTranslations?: boolean;
skipApprovedTranslations?: boolean;
translateUntranslatedOnly?: boolean;
translateWithPerfectMatchOnly?: boolean;
fallbackLanguages?: {
languageId?: string[];
};
labelIds?: number[];
excludeLabelIds?: number[];
}
interface PreTranslateStringsRequest {
languageIds: string[];
branchIds?: number[];
method?: Method;
engineId?: number;
aiPromptId?: number;
autoApproveOption?: AutoApproveOption;
duplicateTranslations?: boolean;
skipApprovedTranslations?: boolean;
translateUntranslatedOnly?: boolean;
translateWithPerfectMatchOnly?: boolean;
fallbackLanguages?: {
languageId: string[];
};
labelIds?: number[];
excludeLabelIds?: number[];
}
interface BuildProjectDirectoryTranslationRequest {
targetLanguageIds?: string[];
skipUntranslatedStrings?: boolean;
skipUntranslatedFiles?: boolean;
preserveFolderHierarchy?: boolean;
exportStringsThatPassedWorkflow?: boolean;
exportWithMinApprovalsCount?: number;
exportApprovedOnly?: boolean;
}
interface BuildProjectDirectoryTranslationResponse {
id: number;
projectId: number;
status: BuildStatus;
progress: number;
createdAt: string;
updatedAt: string;
finishedAt: string;
}
type BuildStatus = 'created' | 'inProgress' | 'canceled' | 'failed' | 'finished';
interface BuildProjectFileTranslationRequest {
targetLanguageId: string;
/**
* @deprecated Use {@link Translations.exportProjectTranslation} instead
*/
exportAsXliff?: boolean;
skipUntranslatedStrings?: boolean;
skipUntranslatedFiles?: boolean;
exportApprovedOnly?: boolean;
exportWithMinApprovalsCount?: number;
exportStringsThatPassedWorkflow?: boolean;
}
interface BuildProjectFileTranslationResponse extends DownloadLink {
etag: string;
}
interface PreTranslationStatusAttributes {
languageIds: string[];
fileIds: number[];
branchIds: number[];
method: Method;
autoApproveOption: AutoApproveOption;
duplicateTranslations: boolean;
skipApprovedTranslations: boolean;
translateUntranslatedOnly: boolean;
translateWithPerfectMatchOnly: boolean;
}
type Method = 'tm' | 'mt' | 'ai';
type AutoApproveOption = 'all' | 'exceptAutoSubstituted' | 'perfectMatchOnly' | 'none';
type CharTransformation = 'asian' | 'european' | 'arabic' | 'cyrillic';
interface Build {
id: number;
projectId: number;
status: BuildStatus;
progress: number;
attributes: Attribute;
createdAt: string;
updatedAt: string;
finishedAt: string;
}
interface Attribute {
branchId: number;
directoryId: number;
targetLanguageIds: string[];
skipUntranslatedStrings: boolean;
skipUntranslatedFiles: boolean;
exportApprovedOnly: boolean;
exportWithMinApprovalsCount: number;
exportStringsThatPassedWorkflow: boolean;
}
interface BuildRequest {
branchId?: number;
targetLanguageIds?: string[];
skipUntranslatedStrings?: boolean;
skipUntranslatedFiles?: boolean;
exportApprovedOnly?: boolean;
exportWithMinApprovalsCount?: number;
exportStringsThatPassedWorkflow?: boolean;
}
interface PseudoBuildRequest {
pseudo: boolean;
branchId?: number;
prefix?: string;
suffix?: string;
lengthTransformation?: number;
charTransformation?: CharTransformation;
}
interface UploadTranslationRequest {
storageId: number;
fileId?: number;
importEqSuggestions?: boolean;
autoApproveImported?: boolean;
translateHidden?: boolean;
addToTm?: boolean;
}
interface UploadTranslationStringsRequest {
storageId: number;
branchId?: number;
importEqSuggestions?: boolean;
autoApproveImported?: boolean;
translateHidden?: boolean;
addToTm?: boolean;
}
interface UploadTranslationResponse {
projectId: number;
storageId: number;
languageId: string;
fileId: number;
}
interface UploadTranslationStringsResponse {
projectId: number;
storageId: number;
languageId: string;
branchId: number;
}
interface ExportProjectTranslationRequest {
targetLanguageId: string;
format?: string;
labelIds?: number[];
branchIds?: number[];
directoryIds?: number[];
fileIds?: number[];
skipUntranslatedStrings?: boolean;
skipUntranslatedFiles?: boolean;
exportApprovedOnly?: boolean;
exportWithMinApprovalsCount?: number;
exportStringsThatPassedWorkflow?: boolean;
}
interface ListProjectBuildsOptions extends PaginationOptions {
branchId?: number;
}
}