@crowdin/app-project-module
Version:
Module that generates for you all common endpoints for serving standalone Crowdin App
58 lines (57 loc) • 1.8 kB
TypeScript
import { CrowdinContextInfo, Environments, ModuleKey, UiModule } from '../../types';
import Crowdin, { SourceFilesModel, ProjectsGroupsModel, LanguagesModel, SourceStringsModel, StringTranslationsModel } from '@crowdin/crowdin-api-client';
export interface ExternalQaCheckModule extends Environments, ModuleKey {
/**
* module description
*/
description?: string;
/**
* module name
*/
name?: string;
/**
* jobs chunk size
*/
batchSize?: number;
validate: ({ client, file, project, sourceLanguage, strings, targetLanguage, translations, context, }: {
client?: Crowdin;
file?: SourceFilesModel.File;
project?: ProjectsGroupsModel.Project;
sourceLanguage: LanguagesModel.Language;
strings: SourceStringsModel.String[];
targetLanguage: LanguagesModel.Language;
translations: StringTranslationsModel.StringTranslation[];
context: CrowdinContextInfo;
}) => Promise<ExternalQaCheckResponse>;
/**
* Settings UI module
*/
settingsUiModule?: UiModule;
}
export interface ExternalQaCheckRequest {
file: SourceFilesModel.File;
project: ProjectsGroupsModel.Project;
sourceLanguage: LanguagesModel.Language;
strings: SourceStringsModel.String[];
targetLanguage: LanguagesModel.Language;
translations: StringTranslationsModel.StringTranslation[];
}
interface SuggestedFix {
indexStart: number;
indexEnd: number;
replacement: string;
}
interface ValidationError {
message: string;
suggestedFixes?: SuggestedFix[];
}
interface Validation {
translationId: number;
passed: boolean;
error?: ValidationError;
}
export interface ExternalQaCheckResponse {
validations: Validation[];
error?: string;
}
export {};