Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 90 additions & 22 deletions src/main/java/com/crowdin/client/translations/TranslationsApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,7 @@
import com.crowdin.client.core.http.exceptions.HttpBadRequestException;
import com.crowdin.client.core.http.exceptions.HttpException;
import com.crowdin.client.core.model.*;
import com.crowdin.client.translations.model.ApplyPreTranslationRequest;
import com.crowdin.client.translations.model.ApplyPreTranslationStringsBasedRequest;
import com.crowdin.client.translations.model.BuildProjectDirectoryTranslationRequest;
import com.crowdin.client.translations.model.BuildProjectFileTranslationRequest;
import com.crowdin.client.translations.model.BuildProjectTranslationRequest;
import com.crowdin.client.translations.model.ExportProjectTranslationRequest;
import com.crowdin.client.translations.model.PreTranslation;
import com.crowdin.client.translations.model.PreTranslationResponseList;
import com.crowdin.client.translations.model.PreTranslationResponseObject;
import com.crowdin.client.translations.model.PreTranslationStatus;
import com.crowdin.client.translations.model.PreTranslationStatusResponseObject;
import com.crowdin.client.translations.model.ProjectBuild;
import com.crowdin.client.translations.model.ProjectBuildResponseList;
import com.crowdin.client.translations.model.ProjectBuildResponseObject;
import com.crowdin.client.translations.model.UploadTranslationsRequest;
import com.crowdin.client.translations.model.UploadTranslationsResponse;
import com.crowdin.client.translations.model.UploadTranslationsResponseObject;
import com.crowdin.client.translations.model.UploadTranslationsStringsRequest;
import com.crowdin.client.translations.model.UploadTranslationsStringsResponse;
import com.crowdin.client.translations.model.UploadTranslationsStringsResponseObject;
import com.crowdin.client.translations.model.PreTranslationReportResponse;
import com.crowdin.client.translations.model.PreTranslationReportResponseObject;
import com.crowdin.client.translations.model.*;

import java.util.Collections;
import java.util.HashMap;
Expand Down Expand Up @@ -158,6 +137,8 @@ public ResponseObject<ProjectBuild> buildProjectTranslation(Long projectId, Buil
}

/**
* @deprecated
*
* @param projectId project identifier
* @param languageId language identifier
* @param request request body
Expand All @@ -177,6 +158,9 @@ public ResponseObject<UploadTranslationsResponse> uploadTranslations(Long projec
return ResponseObject.of(projectBuildResponseObject.getData());
}

/**
* @deprecated
*/
public ResponseObject<UploadTranslationsStringsResponse> uploadTranslationStringsBased(Long projectId, String languageId, UploadTranslationsStringsRequest request) throws HttpException, HttpBadRequestException {
UploadTranslationsStringsResponseObject projectBuildResponseObject = this.httpClient.post(
this.url + "/projects/" + projectId + "/translations/" + languageId,
Expand Down Expand Up @@ -310,4 +294,88 @@ public ResponseObject<PreTranslationReportResponse> getPreTranslationReport(Long
);
return ResponseObject.of(response.getData());
}

/**
* @param projectId project identifier
* @param request request body
* @return import translations
* @see <ul>
* <li><a href="https://support.crowdin.com/developer/api/v2/#tag/Translations/operation/api.projects.translations.imports" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://support.crowdin.com/developer/enterprise/api/v2/#tag/Translations/operation/api.projects.translations.enterprise.imports" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ImportTranslationsStatus> importTranslations(Long projectId, ImportTranslationsRequest request) throws HttpException, HttpBadRequestException {
ImportTranslationsStatusResponseObject resp = this.httpClient.post(this.url + "/projects/" + projectId + "/translations/imports", request, new HttpRequestConfig(), ImportTranslationsStatusResponseObject.class);
return ResponseObject.of(resp.getData());
}

/**
* @param projectId project identifier
* @param request request body
* @return import translations
* @see <ul>
* <li><a href="https://support.crowdin.com/developer/api/v2/string-based/#tag/Translations/operation/api.projects.translations.imports" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://support.crowdin.com/developer/enterprise/api/v2/string-based/#tag/Translations/operation/api.projects.translations.enterprise.imports" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ImportTranslationsStringsBasedStatus> importTranslations(Long projectId, ImportTranslationsStringsBasedRequest request) throws HttpException, HttpBadRequestException {
ImportTranslationsStringsBasedStatusResponseObject resp = this.httpClient.post(this.url + "/projects/" + projectId + "/translations/imports", request, new HttpRequestConfig(), ImportTranslationsStringsBasedStatusResponseObject.class);
return ResponseObject.of(resp.getData());
}

/**
* @param projectId project identifier
* @param importId import identifier
* @return import translations
* @see <ul>
* <li><a href="https://support.crowdin.com/developer/api/v2/#tag/Translations/operation/api.projects.translations.imports.get" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://support.crowdin.com/developer/enterprise/api/v2/#tag/Translations/operation/api.projects.translations.enterprise.imports.get" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ImportTranslationsStatus> importTranslationsStatus(Long projectId, String importId) throws HttpException, HttpBadRequestException {
ImportTranslationsStatusResponseObject resp = this.httpClient.get(this.url + "/projects/" + projectId + "/translations/imports/" + importId, new HttpRequestConfig(), ImportTranslationsStatusResponseObject.class);
return ResponseObject.of(resp.getData());
}

/**
* @param projectId project identifier
* @param importId import identifier
* @return import translations
* @see <ul>
* <li><a href="https://support.crowdin.com/developer/api/v2/string-based/#tag/Translations/operation/api.projects.translations.imports.get" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://support.crowdin.com/developer/enterprise/api/v2/string-based/#tag/Translations/operation/api.projects.translations.enterprise.imports.get" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ImportTranslationsStringsBasedStatus> importTranslationsStringsBasedStatus(Long projectId, String importId) throws HttpException, HttpBadRequestException {
ImportTranslationsStringsBasedStatusResponseObject resp = this.httpClient.get(this.url + "/projects/" + projectId + "/translations/imports/" + importId, new HttpRequestConfig(), ImportTranslationsStringsBasedStatusResponseObject.class);
return ResponseObject.of(resp.getData());
}

/**
* @param projectId project identifier
* @param importId import identifier
* @return import translations
* @see <ul>
* <li><a href="https://support.crowdin.com/developer/api/v2/#tag/Translations/operation/api.projects.translations.imports.report.get" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://support.crowdin.com/developer/enterprise/api/v2/#tag/Translations/operation/api.projects.translations.imports.report.get" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ImportTranslationsReportResponse> importTranslationsReport(Long projectId, String importId) throws HttpException, HttpBadRequestException {
ImportTranslationsReportResponseObject resp = this.httpClient.get(this.url + "/projects/" + projectId + "/translations/imports/" + importId + "/report", new HttpRequestConfig(), ImportTranslationsReportResponseObject.class);
return ResponseObject.of(resp.getData());
}

/**
* @param projectId project identifier
* @param importId import identifier
* @return import translations
* @see <ul>
* <li><a href="https://support.crowdin.com/developer/api/v2/string-based/#tag/Translations/operation/api.projects.translations.imports.report.get" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://support.crowdin.com/developer/enterprise/api/v2/string-based/#tag/Translations/operation/api.projects.translations.imports.report.get" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ImportTranslationsStringsBasedReportResponse> importTranslationsStringsBasedReport(Long projectId, String importId) throws HttpException, HttpBadRequestException {
ImportTranslationsStringsBasedReportResponseObject resp = this.httpClient.get(this.url + "/projects/" + projectId + "/translations/imports/" + importId + "/report", new HttpRequestConfig(), ImportTranslationsStringsBasedReportResponseObject.class);
return ResponseObject.of(resp.getData());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.crowdin.client.translations.model;

import com.crowdin.client.core.http.impl.json.EmptyArrayToNullDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data;

import java.util.List;
import java.util.Map;


@Data
public class ImportTranslationsReportResponse {

private List<TargetLanguage> languages;

@Data
public static class TargetLanguage {
private String id;
private List<File> files;
@JsonDeserialize(using = EmptyArrayToNullDeserializer.class)
private Map<String, Integer> skipped;
@JsonDeserialize(using = EmptyArrayToNullDeserializer.class)
private Map<String, Integer> skippedQaCheckCategories;
}

@Data
public static class File {
private Long id;
private Statistics statistics;
}

@Data
public static class Statistics {
private Integer phrases;
private Integer words;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.crowdin.client.translations.model;

import lombok.Data;

@Data
public class ImportTranslationsReportResponseObject {
private ImportTranslationsReportResponse data;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.crowdin.client.translations.model;

import lombok.Data;

import java.util.List;

@Data
public class ImportTranslationsRequest {

private Long storageId;
private List<String> languageIds;
private Long fileId;
private Boolean importEqSuggestions;
private Boolean autoApproveImported;
private Boolean translateHidden;
private Boolean addToTm;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.crowdin.client.translations.model;

import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class ImportTranslationsStatus {

private String identifier;
private String status;
private Integer progress;
private Attributes attributes;
private Date createdAt;
private Date updatedAt;
private String startedAt;
private String finishedAt;

@Data
public static class Attributes {
private Long storageId;
private Long fileId;
private Boolean importEqSuggestions;
private Boolean autoApproveImported;
private Boolean translateHidden;
private Boolean addToTm;
private List<String> languageIds;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.crowdin.client.translations.model;

import lombok.Data;

@Data
public class ImportTranslationsStatusResponseObject {

private ImportTranslationsStatus data;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.crowdin.client.translations.model;

import com.crowdin.client.core.http.impl.json.EmptyArrayToNullDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data;

import java.util.List;
import java.util.Map;


@Data
public class ImportTranslationsStringsBasedReportResponse {

private List<TargetLanguage> languages;

@Data
public static class TargetLanguage {
private String id;
private List<Branch> branches;
@JsonDeserialize(using = EmptyArrayToNullDeserializer.class)
private Map<String, Integer> skipped;
@JsonDeserialize(using = EmptyArrayToNullDeserializer.class)
private Map<String, Integer> skippedQaCheckCategories;
}

@Data
public static class Branch {
private Long id;
private Statistics statistics;
}

@Data
public static class Statistics {
private Integer phrases;
private Integer words;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.crowdin.client.translations.model;

import lombok.Data;

@Data
public class ImportTranslationsStringsBasedReportResponseObject {
private ImportTranslationsStringsBasedReportResponse data;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.crowdin.client.translations.model;

import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class ImportTranslationsStringsBasedRequest {

private Long storageId;
private List<String> languageIds;
private Long branchId;
private Boolean importEqSuggestions;
private Boolean autoApproveImported;
private Boolean translateHidden;
private Boolean addToTm;
private ImportTranslationsStringsBasedOptions importOptions;

@Data
public static class ImportTranslationsStringsBasedOptions {
private Map<String, Integer> scheme;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.crowdin.client.translations.model;

import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class ImportTranslationsStringsBasedStatus {

private String identifier;
private String status;
private Integer progress;
private Attributes attributes;
private Date createdAt;
private Date updatedAt;
private String startedAt;
private String finishedAt;

@Data
public static class Attributes {
private Long storageId;
private Long branchId;
private Boolean importEqSuggestions;
private Boolean autoApproveImported;
private Boolean translateHidden;
private Boolean addToTm;
private List<String> languageIds;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.crowdin.client.translations.model;

import lombok.Data;

@Data
public class ImportTranslationsStringsBasedStatusResponseObject {

private ImportTranslationsStringsBasedStatus data;
}
Loading