diff --git a/src/SIL.XForge.Scripture/Services/MachineProjectService.cs b/src/SIL.XForge.Scripture/Services/MachineProjectService.cs index 01cee35edd..304ebbb23d 100644 --- a/src/SIL.XForge.Scripture/Services/MachineProjectService.cs +++ b/src/SIL.XForge.Scripture/Services/MachineProjectService.cs @@ -446,30 +446,30 @@ await projectDoc.SubmitJson0OpAsync(op => // If there is an alternate training source, ensure that name, writing system and RTL is correct if (projectDoc.Data.TranslateConfig.DraftConfig.AlternateTrainingSource is not null) { - ParatextSettings? alternateSourceSettings = paratextService.GetParatextSettings( + ParatextSettings? alternateTrainingSourceSettings = paratextService.GetParatextSettings( userSecret, projectDoc.Data.TranslateConfig.DraftConfig.AlternateTrainingSource.ParatextId ); - if (alternateSourceSettings is not null) + if (alternateTrainingSourceSettings is not null) { await projectDoc.SubmitJson0OpAsync(op => { op.Set( pd => pd.TranslateConfig.DraftConfig.AlternateTrainingSource.IsRightToLeft, - alternateSourceSettings.IsRightToLeft + alternateTrainingSourceSettings.IsRightToLeft ); - if (alternateSourceSettings.LanguageTag is not null) + if (alternateTrainingSourceSettings.LanguageTag is not null) { op.Set( pd => pd.TranslateConfig.DraftConfig.AlternateTrainingSource.WritingSystem.Tag, - alternateSourceSettings.LanguageTag + alternateTrainingSourceSettings.LanguageTag ); } - if (alternateSourceSettings.FullName is not null) + if (alternateTrainingSourceSettings.FullName is not null) { op.Set( pd => pd.TranslateConfig.DraftConfig.AlternateTrainingSource.Name, - alternateSourceSettings.FullName + alternateTrainingSourceSettings.FullName ); } }); diff --git a/src/SIL.XForge.Scripture/Services/ParatextService.cs b/src/SIL.XForge.Scripture/Services/ParatextService.cs index c3ae3ca441..faf77f12c0 100644 --- a/src/SIL.XForge.Scripture/Services/ParatextService.cs +++ b/src/SIL.XForge.Scripture/Services/ParatextService.cs @@ -960,7 +960,7 @@ string contextInformation } // Get the writing system details - WritingSystem writingSystem = GetWritingSystem(scrText.Language.Id); + WritingSystem writingSystem = GetWritingSystem(scrText.Settings.LanguageID.Id); return new ParatextSettings { FullName = scrText.FullName, @@ -1848,7 +1848,7 @@ public bool LocalProjectDirExists(string paratextId) public WritingSystem GetWritingSystem(UserSecret userSecret, string ptProjectId) { using ScrText scrText = GetScrText(userSecret, ptProjectId); - return GetWritingSystem(scrText.Language.Id); + return GetWritingSystem(scrText.Settings.LanguageID.Id); } public void ClearParatextDataCaches(UserSecret userSecret, string paratextId) diff --git a/src/SIL.XForge.Scripture/Services/ParatextSyncRunner.cs b/src/SIL.XForge.Scripture/Services/ParatextSyncRunner.cs index 4a20aeef2a..963be9b406 100644 --- a/src/SIL.XForge.Scripture/Services/ParatextSyncRunner.cs +++ b/src/SIL.XForge.Scripture/Services/ParatextSyncRunner.cs @@ -1831,6 +1831,10 @@ await _projectDoc.SubmitJson0OpAsync(op => if (sourceSettings != null) { op.Set(pd => pd.TranslateConfig.Source.IsRightToLeft, sourceSettings.IsRightToLeft); + if (sourceSettings.LanguageRegion != null) + op.Set(pd => pd.WritingSystem.Region, sourceSettings.LanguageRegion); + if (sourceSettings.LanguageScript != null) + op.Set(pd => pd.WritingSystem.Script, sourceSettings.LanguageScript); if (sourceSettings.LanguageTag != null) op.Set(pd => pd.TranslateConfig.Source.WritingSystem.Tag, sourceSettings.LanguageTag); }