From d6e256da3ee2c78804e66b80f04404872dfe25d1 Mon Sep 17 00:00:00 2001 From: vitalii-bezuhlyi Date: Mon, 6 May 2024 17:40:27 +0300 Subject: [PATCH 1/5] Improved pretranslate documents action --- Apps.Memoq/Actions/ServerProjectActions.cs | 50 ++++++++++++------- Apps.Memoq/Apps.MemoQ.csproj | 2 +- .../FinalTranslationStateDataHandler.cs | 18 +++++++ .../TargetLanguageDataHandler.cs | 13 +++-- .../DataSourceHandlers/ObjectDataHandler.cs | 7 +-- .../Requests/PretranslateDocumentsRequest.cs | 21 +++++--- .../UploadDocumentToProjectRequest.cs | 5 +- Apps.Memoq/Models/LanguagesRequest.cs | 5 +- .../Requests/CreateProjectRequest.cs | 5 +- .../Requests/CreateProjectTemplateRequest.cs | 5 +- .../Requests/ListProjectsRequest.cs | 5 +- .../AddTranslationMemoryToProjectRequest.cs | 4 +- 12 files changed, 98 insertions(+), 42 deletions(-) create mode 100644 Apps.Memoq/DataSourceHandlers/EnumDataHandlers/FinalTranslationStateDataHandler.cs rename Apps.Memoq/DataSourceHandlers/{ => EnumDataHandlers}/TargetLanguageDataHandler.cs (95%) diff --git a/Apps.Memoq/Actions/ServerProjectActions.cs b/Apps.Memoq/Actions/ServerProjectActions.cs index fa328e9..a846534 100644 --- a/Apps.Memoq/Actions/ServerProjectActions.cs +++ b/Apps.Memoq/Actions/ServerProjectActions.cs @@ -1,5 +1,6 @@ using Apps.Memoq.Contracts; using Apps.Memoq.DataSourceHandlers; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; using Apps.Memoq.Extensions; using Apps.Memoq.Models; using Apps.Memoq.Models.Dto; @@ -10,6 +11,7 @@ using Blackbird.Applications.Sdk.Common; using Blackbird.Applications.Sdk.Common.Actions; using Blackbird.Applications.Sdk.Common.Authentication; +using Blackbird.Applications.Sdk.Common.Dictionaries; using Blackbird.Applications.Sdk.Common.Dynamic; using Blackbird.Applications.Sdk.Common.Invocation; using Blackbird.Applications.Sdk.Utils.Extensions.String; @@ -68,8 +70,7 @@ public ProjectDto GetProject([ActionParameter] ProjectRequest project) [Action("Add target language to project", Description = "Add target language to project by code")] public void AddNewTargetLanguageToProject( [ActionParameter] ProjectRequest project, - [ActionParameter] [DataSource(typeof(TargetLanguageDataHandler))] [Display("Target language")] - string targetLangCode) + [ActionParameter, StaticDataSource(typeof(TargetLanguageDataHandler)), Display("Target language")] string targetLangCode) { var projectService = new MemoqServiceFactory( SoapConstants.ProjectServiceUrl, Creds); @@ -248,7 +249,7 @@ public async Task AddResourceToProject([ActionParameter] ProjectRequest project, await projectService.Service.SetProjectResourceAssignmentsAsync(Guid.Parse(project.ProjectGuid), array); } - [Action("Pretranslate documents", Description = "Pretranslate documents in a specific project")] + [Action("Pretranslate documents", Description = "Pretranslate documents if document GUIDs are provided, otherwise pretranslate the whole project with all documents")] public async Task PretranslateDocuments( [ActionParameter] ProjectRequest projectRequest, [ActionParameter] PretranslateDocumentsRequest request) @@ -257,24 +258,32 @@ public async Task PretranslateDocuments( SoapConstants.ProjectServiceUrl, Creds); var options = new PretranslateOptions(); - - if (request.LockPretranslated.HasValue) - options.LockPretranslated = request.LockPretranslated.Value; - - if (request.UseMt.HasValue) - options.UseMT = request.UseMt.Value; - + + options.OnlyUnambiguousMatches = request.OnlyUnambiguousMatches ?? true; + options.LockPretranslated = request.LockPretranslated ?? true; + options.UseMT = request.UseMt ?? true; if (request.ConfirmLockPreTranslated != null) + { options.ConfirmLockPretranslated = (PretranslateStateToConfirmAndLock)int.Parse(request.ConfirmLockPreTranslated); + } + else + { + options.ConfirmLockPretranslated = PretranslateStateToConfirmAndLock.ExactMatch; + } + + if (request.FinalTranslationState != null) + options.FinalTranslationState = (PretranslateExpectedFinalTranslationState)int.Parse(request.FinalTranslationState); if (request.PretranslateLookupBehavior != null) options.PretranslateLookupBehavior = (PretranslateLookupBehavior)int.Parse(request.PretranslateLookupBehavior); + options.PretranslateLookupBehavior = PretranslateLookupBehavior.AnyMatch; + if (request.TranslationMemoriesGuids != null && request.TranslationMemoriesGuids.Any()) { - options.ResourceFilter = new PreTransFilter() + options.ResourceFilter = new PreTransFilter { TMs = request.TranslationMemoriesGuids.Select(Guid.Parse).ToArray() }; @@ -289,14 +298,21 @@ public async Task PretranslateDocuments( IncludeNT = request.IncludeNonTranslatables ?? true, IncludeTB = request.IncludeTermBases ?? true, MinCoverage = request.MinCoverage ?? 50, - CoverageType = (MatchCoverageType)int.Parse(request.CoverageType ?? "300") + CoverageType = (MatchCoverageType)int.Parse(request.CoverageType ?? "300"), }; - var guids = request.DocumentGuids.Select(Guid.Parse).ToArray(); - var resultInfo = await projectService.Service.PretranslateDocumentsAsync(Guid.Parse(projectRequest.ProjectGuid), - guids, options); - - return new(resultInfo); + var guids = request.DocumentGuids?.Select(Guid.Parse).ToArray(); + if (guids != null && guids.Length != 0) + { + var resultInfo = await projectService.Service.PretranslateDocumentsAsync(Guid.Parse(projectRequest.ProjectGuid), + guids, options); + + return new(resultInfo); + } + + var targetLanguages = request.TargetLanguages?.ToArray(); + var result = await projectService.Service.PretranslateProjectAsync(Guid.Parse(projectRequest.ProjectGuid), targetLanguages, options); + return new(result); } private List CreateAssignmentsBasedOnResourceType(ResourceType resourceType, diff --git a/Apps.Memoq/Apps.MemoQ.csproj b/Apps.Memoq/Apps.MemoQ.csproj index 8897cea..ac9b66a 100644 --- a/Apps.Memoq/Apps.MemoQ.csproj +++ b/Apps.Memoq/Apps.MemoQ.csproj @@ -5,7 +5,7 @@ enable memoQ Computer-assisted translation - 1.1.11 + 1.1.12 Apps.MemoQ 12 diff --git a/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/FinalTranslationStateDataHandler.cs b/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/FinalTranslationStateDataHandler.cs new file mode 100644 index 0000000..1fc36a9 --- /dev/null +++ b/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/FinalTranslationStateDataHandler.cs @@ -0,0 +1,18 @@ +using Blackbird.Applications.Sdk.Common.Dictionaries; + +namespace Apps.Memoq.DataSourceHandlers.EnumDataHandlers; + +public class FinalTranslationStateDataHandler : IStaticDataSourceHandler +{ + public Dictionary GetData() + { + return new Dictionary + { + { "0", "No change" }, + { "1", "Confirmed" }, + { "2", "Proofread" }, + { "3", "Pretranslated" }, + { "4", "Reviewer1Confirmed" } + }; + } +} \ No newline at end of file diff --git a/Apps.Memoq/DataSourceHandlers/TargetLanguageDataHandler.cs b/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/TargetLanguageDataHandler.cs similarity index 95% rename from Apps.Memoq/DataSourceHandlers/TargetLanguageDataHandler.cs rename to Apps.Memoq/DataSourceHandlers/EnumDataHandlers/TargetLanguageDataHandler.cs index e469a65..1e020d2 100644 --- a/Apps.Memoq/DataSourceHandlers/TargetLanguageDataHandler.cs +++ b/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/TargetLanguageDataHandler.cs @@ -1,10 +1,10 @@ -using Blackbird.Applications.Sdk.Utils.Sdk.DataSourceHandlers; +using Blackbird.Applications.Sdk.Common.Dictionaries; -namespace Apps.Memoq.DataSourceHandlers; +namespace Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; -public class TargetLanguageDataHandler : EnumDataHandler +public class TargetLanguageDataHandler : IStaticDataSourceHandler { - protected override Dictionary EnumValues => new() + private Dictionary EnumValues => new() { ["afr"] = "Afrikaans", ["aka"] = "Akan", ["alb"] = "Albanian", ["alb-AL"] = "Albanian (Albania)", ["alb-XK"] = "Albanian (Kosovo)", ["alb-MK"] = "Albanian (Macedonia)", ["alb-ME"] = "Albanian (Montenegro)", @@ -77,4 +77,9 @@ public class TargetLanguageDataHandler : EnumDataHandler ["uzb"] = "Uzbek (Latin)", ["vie"] = "Vietnamese", ["wel"] = "Welsh", ["wol"] = "Wolof", ["xho"] = "Xhosa", ["yid"] = "Yiddish", ["yor"] = "Yoruba", ["zul"] = "Zulu" }; + + public Dictionary GetData() + { + return EnumValues; + } } \ No newline at end of file diff --git a/Apps.Memoq/DataSourceHandlers/ObjectDataHandler.cs b/Apps.Memoq/DataSourceHandlers/ObjectDataHandler.cs index 69adfb7..d1dba26 100644 --- a/Apps.Memoq/DataSourceHandlers/ObjectDataHandler.cs +++ b/Apps.Memoq/DataSourceHandlers/ObjectDataHandler.cs @@ -1,4 +1,5 @@ -using Apps.Memoq.Models.ServerProjects.Requests; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; +using Apps.Memoq.Models.ServerProjects.Requests; using Blackbird.Applications.Sdk.Common; using Blackbird.Applications.Sdk.Common.Authentication; using Blackbird.Applications.Sdk.Common.Dynamic; @@ -47,13 +48,13 @@ public async Task> GetDataAsync(DataSourceContext con resourceType == ResourceType.QASettings) { var targetLanguageDataHandler = new TargetLanguageDataHandler(); - return targetLanguageDataHandler.GetData(context); + return targetLanguageDataHandler.GetData(); } if (resourceType == ResourceType.SegRules) { var targetLanguageDataHandler = new TargetLanguageDataHandler(); - return targetLanguageDataHandler.GetData(context); + return targetLanguageDataHandler.GetData(); } if (resourceType == ResourceType.TMSettings) diff --git a/Apps.Memoq/Models/Files/Requests/PretranslateDocumentsRequest.cs b/Apps.Memoq/Models/Files/Requests/PretranslateDocumentsRequest.cs index 2d7ae1d..0ef07ac 100644 --- a/Apps.Memoq/Models/Files/Requests/PretranslateDocumentsRequest.cs +++ b/Apps.Memoq/Models/Files/Requests/PretranslateDocumentsRequest.cs @@ -1,25 +1,28 @@ using Apps.Memoq.DataSourceHandlers.EnumDataHandlers; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; using Blackbird.Applications.Sdk.Common; using Blackbird.Applications.Sdk.Common.Dictionaries; -using Blackbird.Applications.Sdk.Common.Dynamic; namespace Apps.Memoq.Models.Files.Requests; public class PretranslateDocumentsRequest { - [Display("Document GUIDs")] - public IEnumerable DocumentGuids { get; set; } + [Display("Document GUIDs", Description = "If not provided, all documents in the project will be pretranslated")] + public IEnumerable? DocumentGuids { get; set; } + + [Display("Target languages", Description = "If not provided, documents with all target languages will be translated"), StaticDataSource(typeof(TargetLanguageDataHandler))] + public IEnumerable? TargetLanguages { get; set; } - [Display("Lock")] + [Display("Lock", Description = "By default: true")] public bool? LockPretranslated { get; set; } - [Display("Confirm lock pretranslated"), StaticDataSource(typeof(ConfirmLockDataHandler))] + [Display("Confirm lock pretranslated", Description = "By default: Exact match"), StaticDataSource(typeof(ConfirmLockDataHandler))] public string? ConfirmLockPreTranslated { get; set; } [Display("Pretranslate lookup behavior"), StaticDataSource(typeof(PretranslateLookupBehaviorDataHandler))] public string? PretranslateLookupBehavior { get; set; } - [Display("Use MT")] + [Display("Use MT", Description = "By default: true")] public bool? UseMt { get; set; } [Display("Translation memories GUIDs")] @@ -48,4 +51,10 @@ public class PretranslateDocumentsRequest [Display("Coverage type", Description = "By default: Not full"), StaticDataSource(typeof(MatchCoverageTypeDataHandler))] public string? CoverageType { get; set; } + + [Display("Only unambiguous matches", Description = "By default: false")] + public bool? OnlyUnambiguousMatches { get; set; } + + [Display("Final translation state", Description = "By default: No change"), StaticDataSource(typeof(FinalTranslationStateDataHandler))] + public string? FinalTranslationState { get; set; } } \ No newline at end of file diff --git a/Apps.Memoq/Models/Files/Requests/UploadDocumentToProjectRequest.cs b/Apps.Memoq/Models/Files/Requests/UploadDocumentToProjectRequest.cs index 6c7668d..e202913 100644 --- a/Apps.Memoq/Models/Files/Requests/UploadDocumentToProjectRequest.cs +++ b/Apps.Memoq/Models/Files/Requests/UploadDocumentToProjectRequest.cs @@ -1,6 +1,8 @@ using Apps.Memoq.DataSourceHandlers; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; using Apps.Memoq.Models.ServerProjects.Requests; using Blackbird.Applications.Sdk.Common; +using Blackbird.Applications.Sdk.Common.Dictionaries; using Blackbird.Applications.Sdk.Common.Dynamic; using Blackbird.Applications.Sdk.Common.Files; @@ -11,8 +13,7 @@ public class UploadDocumentToProjectRequest : ProjectRequest [Display("Document")] public FileReference File { get; set; } - [Display("Target languages")] - [DataSource(typeof(TargetLanguageDataHandler))] + [Display("Target languages"), StaticDataSource(typeof(TargetLanguageDataHandler))] public IEnumerable? TargetLanguageCodes { get; set; } [Display("File name")] diff --git a/Apps.Memoq/Models/LanguagesRequest.cs b/Apps.Memoq/Models/LanguagesRequest.cs index 42cbfdb..c996588 100644 --- a/Apps.Memoq/Models/LanguagesRequest.cs +++ b/Apps.Memoq/Models/LanguagesRequest.cs @@ -1,5 +1,7 @@ using Apps.Memoq.DataSourceHandlers; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; using Blackbird.Applications.Sdk.Common; +using Blackbird.Applications.Sdk.Common.Dictionaries; using Blackbird.Applications.Sdk.Common.Dynamic; namespace Apps.Memoq.Models; @@ -10,7 +12,6 @@ public class LanguagesRequest [DataSource(typeof(SourceLanguageDataHandler))] public string SourceLanguage { get; set; } - [Display("Target language")] - [DataSource(typeof(TargetLanguageDataHandler))] + [Display("Target language"), StaticDataSource(typeof(TargetLanguageDataHandler))] public string TargetLanguage { get; set; } } \ No newline at end of file diff --git a/Apps.Memoq/Models/ServerProjects/Requests/CreateProjectRequest.cs b/Apps.Memoq/Models/ServerProjects/Requests/CreateProjectRequest.cs index 3af0bbf..4828bcb 100644 --- a/Apps.Memoq/Models/ServerProjects/Requests/CreateProjectRequest.cs +++ b/Apps.Memoq/Models/ServerProjects/Requests/CreateProjectRequest.cs @@ -1,5 +1,7 @@ using Apps.Memoq.DataSourceHandlers; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; using Blackbird.Applications.Sdk.Common; +using Blackbird.Applications.Sdk.Common.Dictionaries; using Blackbird.Applications.Sdk.Common.Dynamic; namespace Apps.Memoq.Models.ServerProjects.Requests; @@ -10,8 +12,7 @@ public class CreateProjectRequest [DataSource(typeof(SourceLanguageDataHandler))] public string SourceLangCode { get; set; } - [Display("Target languages")] - [DataSource(typeof(TargetLanguageDataHandler))] + [Display("Target languages"), StaticDataSource(typeof(TargetLanguageDataHandler))] public IEnumerable TargetLangCodes { get; set; } [Display("Project name")] diff --git a/Apps.Memoq/Models/ServerProjects/Requests/CreateProjectTemplateRequest.cs b/Apps.Memoq/Models/ServerProjects/Requests/CreateProjectTemplateRequest.cs index 23b8f57..4060705 100644 --- a/Apps.Memoq/Models/ServerProjects/Requests/CreateProjectTemplateRequest.cs +++ b/Apps.Memoq/Models/ServerProjects/Requests/CreateProjectTemplateRequest.cs @@ -1,5 +1,7 @@ using Apps.Memoq.DataSourceHandlers; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; using Blackbird.Applications.Sdk.Common; +using Blackbird.Applications.Sdk.Common.Dictionaries; using Blackbird.Applications.Sdk.Common.Dynamic; namespace Apps.Memoq.Models.ServerProjects.Requests; @@ -10,8 +12,7 @@ public class CreateProjectTemplateRequest [DataSource(typeof(SourceLanguageDataHandler))] public string SourceLangCode { get; set; } - [Display("Target languages")] - [DataSource(typeof(TargetLanguageDataHandler))] + [Display("Target languages"), StaticDataSource(typeof(TargetLanguageDataHandler))] public IEnumerable TargetLangCodes { get; set; } [Display("Project name")] diff --git a/Apps.Memoq/Models/ServerProjects/Requests/ListProjectsRequest.cs b/Apps.Memoq/Models/ServerProjects/Requests/ListProjectsRequest.cs index 4d15b8a..222ecd7 100644 --- a/Apps.Memoq/Models/ServerProjects/Requests/ListProjectsRequest.cs +++ b/Apps.Memoq/Models/ServerProjects/Requests/ListProjectsRequest.cs @@ -1,5 +1,7 @@ using Apps.Memoq.DataSourceHandlers; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; using Blackbird.Applications.Sdk.Common; +using Blackbird.Applications.Sdk.Common.Dictionaries; using Blackbird.Applications.Sdk.Common.Dynamic; namespace Apps.Memoq.Models.ServerProjects.Requests; @@ -18,8 +20,7 @@ public class ListProjectsRequest [DataSource(typeof(SourceLanguageDataHandler))] public string? SourceLanguageCode { get; set; } - [Display("Target language")] - [DataSource(typeof(TargetLanguageDataHandler))] + [Display("Target language"), StaticDataSource(typeof(TargetLanguageDataHandler))] public string? TargetLanguageCode { get; set; } [Display("Time closed")] public DateTime? TimeClosed { get; set; } diff --git a/Apps.Memoq/Models/TranslationMemories/Requests/AddTranslationMemoryToProjectRequest.cs b/Apps.Memoq/Models/TranslationMemories/Requests/AddTranslationMemoryToProjectRequest.cs index c795a48..087e10b 100644 --- a/Apps.Memoq/Models/TranslationMemories/Requests/AddTranslationMemoryToProjectRequest.cs +++ b/Apps.Memoq/Models/TranslationMemories/Requests/AddTranslationMemoryToProjectRequest.cs @@ -1,5 +1,7 @@ using Apps.Memoq.DataSourceHandlers; +using Apps.MemoQ.DataSourceHandlers.EnumDataHandlers; using Blackbird.Applications.Sdk.Common; +using Blackbird.Applications.Sdk.Common.Dictionaries; using Blackbird.Applications.Sdk.Common.Dynamic; namespace Apps.Memoq.Models.TranslationMemories.Requests; @@ -9,7 +11,7 @@ public class AddTranslationMemoryToProjectRequest [Display("Translation memory GUID"), DataSource(typeof(TranslationMemoryDataHandler))] public IEnumerable? TmGuids { get; set; } - [Display("Target language code"), DataSource(typeof(TargetLanguageDataHandler))] + [Display("Target language code"), StaticDataSource(typeof(TargetLanguageDataHandler))] public string TargetLanguageCode { get; set; } [Display("Master translation memory GUID"), DataSource(typeof(TranslationMemoryDataHandler))] From 9c014e20481a1ef84ddc5aa62ee6427419256744 Mon Sep 17 00:00:00 2001 From: vitalii-bezuhlyi Date: Mon, 6 May 2024 17:47:52 +0300 Subject: [PATCH 2/5] Updated csproj --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3859e03..ffb1603 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,10 @@ Before you can connect you need to make sure that: - **Create project from package/template** creates a new project based on a specified template/package. - **Add target language to project** adds target language to a specific project. - **Pretranslate documents** This action allows you to pretranslate documents in a specific project. Pretranslation is a process where the system automatically fills in the translations for segments in a document based on certain criteria. This can significantly speed up the translation process. Parameters: -1. **Document GUIDs**: This parameter is used to specify the unique identifiers of the documents you want to pretranslate. -2. **Lock**: This optional parameter, when set to true, locks the pretranslated segments to prevent further editing. -3. **Confirm lock pretranslated**: This optional parameter determines the state of segments that should be confirmed and locked during pretranslation. +1. **Document GUIDs**: This parameter is used to specify the unique identifiers of the documents you want to pretranslate. If you don't specify any document GUIDs, the action will pretranslate all documents in the project. +2. **Target languages**: This parameter is used to specify the target languages for pretranslation. If you don't specify any target languages, the action will pretranslate all target languages in the project. +2. **Lock**: This optional parameter, when set to true, locks the pretranslated segments to prevent further editing. By default, this is set to true. +3. **Confirm lock pretranslated**: This optional parameter determines the state of segments that should be confirmed and locked during pretranslation. By default, this is set to 'ExactMatch'. 4. **Pretranslate lookup behavior**: This optional parameter determines the behavior of the pretranslation lookup process. 5. **Use MT**: This optional parameter, when set to true, enables the use of Machine Translation (MT) during pretranslation. 6. **Translation memories GUIDs**: This optional parameter is used to specify the unique identifiers of the translation memories to be used during pretranslation. @@ -84,6 +85,8 @@ Before you can connect you need to make sure that: 12. **Include term bases**: This optional parameter, when set to true, includes term bases in the pretranslation. By default, this is set to true. 13. **Minimum coverage**: This optional parameter is used to specify the minimum coverage for pretranslation. By default, this is set to 50. 14. **Coverage type**: This optional parameter is used to specify the type of coverage for pretranslation. By default, this is set to 'Not full'. +15. **Only unambiguous matches**: This optional parameter, when set to true, only includes unambiguous matches in the pretranslation. By default, this is set to true. +16. **Final translation state**: This optional parameter is used to specify the final translation state for pretranslated segments. By default, this is set to 'No change'. ### Translation memories From 16c80e82260371fa42a8b705d124725106c7730b Mon Sep 17 00:00:00 2001 From: vitalii-bezuhlyi Date: Mon, 6 May 2024 17:51:09 +0300 Subject: [PATCH 3/5] Updated pretranslate document request --- .../Models/Files/Requests/PretranslateDocumentsRequest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Apps.Memoq/Models/Files/Requests/PretranslateDocumentsRequest.cs b/Apps.Memoq/Models/Files/Requests/PretranslateDocumentsRequest.cs index 0ef07ac..b07c143 100644 --- a/Apps.Memoq/Models/Files/Requests/PretranslateDocumentsRequest.cs +++ b/Apps.Memoq/Models/Files/Requests/PretranslateDocumentsRequest.cs @@ -52,7 +52,7 @@ public class PretranslateDocumentsRequest [Display("Coverage type", Description = "By default: Not full"), StaticDataSource(typeof(MatchCoverageTypeDataHandler))] public string? CoverageType { get; set; } - [Display("Only unambiguous matches", Description = "By default: false")] + [Display("Only unambiguous matches", Description = "By default: true")] public bool? OnlyUnambiguousMatches { get; set; } [Display("Final translation state", Description = "By default: No change"), StaticDataSource(typeof(FinalTranslationStateDataHandler))] From 967f0212faed9445eb3e15778a241bfa4037e765 Mon Sep 17 00:00:00 2001 From: vitalii-bezuhlyi Date: Mon, 6 May 2024 18:05:22 +0300 Subject: [PATCH 4/5] Updated static data source handler --- .../EnumDataHandlers/FinalTranslationStateDataHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/FinalTranslationStateDataHandler.cs b/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/FinalTranslationStateDataHandler.cs index 1fc36a9..235641f 100644 --- a/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/FinalTranslationStateDataHandler.cs +++ b/Apps.Memoq/DataSourceHandlers/EnumDataHandlers/FinalTranslationStateDataHandler.cs @@ -12,7 +12,7 @@ public Dictionary GetData() { "1", "Confirmed" }, { "2", "Proofread" }, { "3", "Pretranslated" }, - { "4", "Reviewer1Confirmed" } + { "4", "Reviewer 1 confirmed" } }; } } \ No newline at end of file From 5256ae5ab9080d5d19d581693aa741ebdc1497a7 Mon Sep 17 00:00:00 2001 From: vitalii-bezuhlyi Date: Mon, 6 May 2024 18:10:40 +0300 Subject: [PATCH 5/5] Improved pretranslate documents action --- Apps.Memoq/Actions/ServerProjectActions.cs | 31 +++++++++------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/Apps.Memoq/Actions/ServerProjectActions.cs b/Apps.Memoq/Actions/ServerProjectActions.cs index a846534..92a582c 100644 --- a/Apps.Memoq/Actions/ServerProjectActions.cs +++ b/Apps.Memoq/Actions/ServerProjectActions.cs @@ -257,30 +257,23 @@ public async Task PretranslateDocuments( var projectService = new MemoqServiceFactory( SoapConstants.ProjectServiceUrl, Creds); - var options = new PretranslateOptions(); - - options.OnlyUnambiguousMatches = request.OnlyUnambiguousMatches ?? true; - options.LockPretranslated = request.LockPretranslated ?? true; - options.UseMT = request.UseMt ?? true; - if (request.ConfirmLockPreTranslated != null) + var options = new PretranslateOptions { - options.ConfirmLockPretranslated = - (PretranslateStateToConfirmAndLock)int.Parse(request.ConfirmLockPreTranslated); - } - else - { - options.ConfirmLockPretranslated = PretranslateStateToConfirmAndLock.ExactMatch; - } + OnlyUnambiguousMatches = request.OnlyUnambiguousMatches ?? true, + LockPretranslated = request.LockPretranslated ?? true, + UseMT = request.UseMt ?? true, + ConfirmLockPretranslated = request.ConfirmLockPreTranslated != null + ? (PretranslateStateToConfirmAndLock)int.Parse(request.ConfirmLockPreTranslated) + : PretranslateStateToConfirmAndLock.ExactMatch, + FinalTranslationState = request.FinalTranslationState != null + ? (PretranslateExpectedFinalTranslationState)int.Parse(request.FinalTranslationState) + : PretranslateExpectedFinalTranslationState.NoChange + }; - if (request.FinalTranslationState != null) - options.FinalTranslationState = (PretranslateExpectedFinalTranslationState)int.Parse(request.FinalTranslationState); - if (request.PretranslateLookupBehavior != null) options.PretranslateLookupBehavior = (PretranslateLookupBehavior)int.Parse(request.PretranslateLookupBehavior); - - options.PretranslateLookupBehavior = PretranslateLookupBehavior.AnyMatch; - + if (request.TranslationMemoriesGuids != null && request.TranslationMemoriesGuids.Any()) { options.ResourceFilter = new PreTransFilter