UNPKG

@crowdin/crowdin-api-client

Version:
268 lines (267 loc) 11.8 kB
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; } }