Ejemplo n.º 1
0
        public void Execute()
        {
            var uri = new Uri(@"Add your url");
            var translationProviderServer = new TranslationProviderServer(uri, false, "user name", "password");

            //Add Translation memory id
            var guid = new Guid("");
            var tm   = translationProviderServer.GetTranslationMemory(guid, TranslationMemoryProperties.None);

            var langDirection    = tm.GetLanguageDirection(new LanguagePair(new CultureInfo("en-us"), new CultureInfo("ro-ro")));
            var iterator         = new RegularIterator(10);
            var translationUnits = langDirection.GetTranslationUnits(ref iterator);
            //Add the id of the translation unit you want to update
            var tu = langDirection.GetTranslationUnit(
                new PersistentObjectToken(1, new Guid("")));

            //segment visitor
            var textVisitor    = new TextVisitor();
            var segmentElement = tu.TargetSegment.Elements[0];

            segmentElement.AcceptSegmentElementVisitor(textVisitor);

            langDirection.UpdateTranslationUnit(tu);
            tm.Save();
        }
Ejemplo n.º 2
0
        public FileInfo ExtractTestset()
        {
            FileBasedTranslationMemory tm = new FileBasedTranslationMemory(this.filteredTMPath);

            var tmLangdir = tm.GetLanguageDirection(tm.SupportedLanguageDirections.Single());

            this.SourceLang = new Language(tmLangdir.SourceLanguage);
            this.TargetLang = new Language(tmLangdir.TargetLanguage);
            //Move the iterator to the end of the TM and go backwards to get the newest segments (although
            //order may not be based on insertion time)
            RegularIterator iterator = new RegularIterator
            {
                MaxCount     = this.batchSize,
                Forward      = false,
                PositionFrom = tmLangdir.GetTranslationUnitCount()
            };

            List <TranslationUnit> finetuneTestset = new List <TranslationUnit>();

            TranslationUnit[] tuBatch = tmLangdir.GetTranslationUnits(ref iterator);
            for (var batchIndex = 0; batchIndex < this.batches; batchIndex++)
            {
                tuBatch = tmLangdir.GetTranslationUnits(ref iterator);
                finetuneTestset.AddRange(tuBatch);
                foreach (var tu in tuBatch)
                {
                    var success = tmLangdir.DeleteTranslationUnit(tu.ResourceId);
                }
            }

            FileInfo sourceFile = new FileInfo($"{this.masterTMNameWithoutExtension}_finetunetest_source.txt");
            FileInfo targetFile = new FileInfo($"{this.masterTMNameWithoutExtension}_finetunetest_target.txt");

            using (var sourceWriter = sourceFile.CreateText())
                using (var targetWriter = targetFile.CreateText())
                {
                    foreach (var tu in finetuneTestset)
                    {
                        var plainSource = tu.SourceSegment.ToPlain();
                        var plainTarget = tu.TargetSegment.ToPlain();
                        if (!(plainSource.Contains("\n") || plainTarget.Contains("\n")))
                        {
                            sourceWriter.WriteLine(tu.SourceSegment.ToPlain());
                            targetWriter.WriteLine(tu.TargetSegment.ToPlain());
                        }
                    }
                }

            RegularIterator reindexIterator = new RegularIterator();

            bool reindexInProgress = true;

            while (reindexInProgress)
            {
                reindexInProgress = tmLangdir.ReindexTranslationUnits(ref reindexIterator);
            }

            tm.Save();
            return(sourceFile);
        }
        public void ProcessReindexFileBasedTm(BackgroundWorker bw, TranslationMemoryInfo tm)
        {
            _reindexStatus.AppendLine(string.Format("Start reindex {0} translation memory", tm.Name));
            bw.ReportProgress(0, _reindexStatus.ToString());
            var fileBasedTm = new FileBasedTranslationMemory(tm.FilePath);

            if ((fileBasedTm.Recognizers & BuiltinRecognizers.RecognizeAlphaNumeric) == 0)
            {
                fileBasedTm.Recognizers |= BuiltinRecognizers.RecognizeAlphaNumeric;
            }

            var languageDirection = fileBasedTm.LanguageDirection;

            var iterator = new RegularIterator(100);

            while (languageDirection.ReindexTranslationUnits(ref iterator))
            {
                if (!bw.CancellationPending)
                {
                    bw.ReportProgress(0, _reindexStatus.ToString());
                }
                else
                {
                    bw.ReportProgress(100, "");
                }
            }

            fileBasedTm.RecomputeFuzzyIndexStatistics();
            fileBasedTm.Save();
            _reindexStatus.AppendLine(string.Format("Finish reindex {0} translation memory", tm.Name));

            bw.ReportProgress(0, _reindexStatus.ToString());
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Retrieves an array of Translation Units for a File Based Translation Memory
        /// </summary>
        /// <param name="tm">Translation Memory File</param>
        /// /// <returns>Array of TranslationUnits</returns>
        private static TranslationUnit[]  GetFileBasedTranslationUnits(TmFile tm)
        {
            var fileBasedTm      = new FileBasedTranslationMemory(tm.Path);
            var unitsCount       = fileBasedTm.LanguageDirection.GetTranslationUnitCount();
            var tmIterator       = new RegularIterator(unitsCount);
            var translationUnits = fileBasedTm.LanguageDirection.GetTranslationUnits(ref tmIterator);

            return(translationUnits);
        }
Ejemplo n.º 5
0
        public static AnonymizeTranslationMemory ServerBasedTmGetTranslationUnits(TranslationProviderServer translationProvider, string tmPath,
                                                                                  ObservableCollection <SourceSearchResult> sourceSearchResult, List <Rule> selectedRules)
        {
            var allTusForLanguageDirections = new List <TranslationUnit>();

            System.Windows.Application.Current.Dispatcher.Invoke(delegate
            {
                var translationMemory  = translationProvider.GetTranslationMemory(tmPath, TranslationMemoryProperties.All);
                var languageDirections = translationMemory.LanguageDirections;
                var pi = new PersonalInformation(selectedRules);

                foreach (var languageDirection in languageDirections)
                {
                    var unitsCount       = languageDirection.GetTranslationUnitCount();
                    var tmIterator       = new RegularIterator(unitsCount);
                    var translationUnits = languageDirection.GetTranslationUnits(ref tmIterator);
                    if (translationUnits != null)
                    {
                        allTusForLanguageDirections.AddRange(translationUnits);
                        foreach (var translationUnit in translationUnits)
                        {
                            var sourceText = translationUnit.SourceSegment.ToPlain();
                            if (pi.ContainsPi(sourceText))
                            {
                                var searchResult = new SourceSearchResult
                                {
                                    Id          = translationUnit.ResourceId.Guid.ToString(),
                                    SourceText  = sourceText,
                                    MatchResult = new MatchResult
                                    {
                                        Positions = pi.GetPersonalDataPositions(sourceText)
                                    },
                                    TmFilePath    = tmPath,
                                    IsServer      = true,
                                    SegmentNumber = translationUnit.ResourceId.Id.ToString()
                                };
                                var targetText = translationUnit.TargetSegment.ToPlain();
                                if (pi.ContainsPi(targetText))
                                {
                                    searchResult.TargetText        = targetText;
                                    searchResult.TargetMatchResult = new MatchResult
                                    {
                                        Positions = pi.GetPersonalDataPositions(targetText)
                                    };
                                }
                                sourceSearchResult.Add(searchResult);
                            }
                        }
                    }
                }
            });
            return(new AnonymizeTranslationMemory
            {
                TmPath = tmPath,
                TranslationUnits = allTusForLanguageDirections
            });
        }
Ejemplo n.º 6
0
        public void AlignTranslationUnits()
        {
            var iterator = new RegularIterator();

            do
            {
            } while (_tm.AlignTranslationUnits(true, false, ref iterator));


            _tm.Save();
        }
Ejemplo n.º 7
0
        public static AnonymizeTranslationMemory FileBaseTmGetTranslationUnits(string tmPath,
                                                                               ObservableCollection <SourceSearchResult> sourceSearchResult, List <Rule> selectedRules)
        {
            var tm =
                new FileBasedTranslationMemory(tmPath);
            var unitsCount = tm.LanguageDirection.GetTranslationUnitCount();
            var tmIterator = new RegularIterator(unitsCount);
            var tus        = tm.LanguageDirection.GetTranslationUnits(ref tmIterator);

            System.Windows.Application.Current.Dispatcher.Invoke(delegate
            {
                var pi = new PersonalInformation(selectedRules);

                foreach (var translationUnit in tus)
                {
                    var sourceText = translationUnit.SourceSegment.ToPlain();
                    if (pi.ContainsPi(sourceText))
                    {
                        var searchResult = new SourceSearchResult
                        {
                            Id          = translationUnit.ResourceId.Guid.ToString(),
                            SourceText  = sourceText,
                            MatchResult = new MatchResult
                            {
                                Positions = pi.GetPersonalDataPositions(sourceText)
                            },
                            TmFilePath    = tmPath,
                            IsServer      = false,
                            SegmentNumber = translationUnit.ResourceId.Id.ToString()
                        };
                        var targetText = translationUnit.TargetSegment.ToPlain();
                        if (pi.ContainsPi(targetText))
                        {
                            searchResult.TargetText        = targetText;
                            searchResult.TargetMatchResult = new MatchResult
                            {
                                Positions = pi.GetPersonalDataPositions(targetText)
                            };
                        }
                        sourceSearchResult.Add(searchResult);
                    }
                }
            });
            return(new AnonymizeTranslationMemory
            {
                TmPath = tmPath,
                TranslationUnits = tus.ToList()
            });
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Retrieves an array of Translation Units for a Server Based Translation Memory
        /// </summary>
        /// <param name="languageDirections">Language Directions of a Server based Translation Memory</param>
        /// /// <returns>Array of TranslationUnits</returns>
        private static TranslationUnit[] GetServerBasedTranslationUnits(ServerBasedTranslationMemoryLanguageDirectionCollection languageDirections)
        {
            var translationUnits = new TranslationUnit[] { };

            foreach (var languageDirection in languageDirections)
            {
                var unitsCount = languageDirection.GetTranslationUnitCount();
                if (unitsCount == 0)
                {
                    continue;
                }
                var tmIterator = new RegularIterator(unitsCount);
                translationUnits = languageDirection.GetTranslationUnits(ref tmIterator);
            }
            return(translationUnits);
        }
Ejemplo n.º 9
0
        public void Iterate(string tmPath)
        {
            #region "open"
            FileBasedTranslationMemory tm = new FileBasedTranslationMemory(tmPath);
            #endregion

            #region "iterator"
            RegularIterator tmIterator = new RegularIterator(1);
            #endregion

            #region "GetTUs"
            TranslationUnit[] Tus = tm.LanguageDirection.GetTranslationUnits(ref tmIterator);
            #endregion

            #region "loop"
            #region "while"
            while (Tus.Count <TranslationUnit>() > 0)
            #endregion
            {
                #region "LoopTus"
                foreach (TranslationUnit Tu in Tus)
                #endregion
                {
                    #region "LoopValues"
                    foreach (FieldValue item in Tu.FieldValues)
                    #endregion
                    {
                        #region "DetermineFieldName"
                        if (item.Name == "Customer")
                        #endregion
                        {
                            #region "DetermineFieldValue"
                            if (item.ToString() == "Microsoft")
                            {
                                MessageBox.Show(Tu.SourceSegment.ToPlain());
                            }
                            #endregion
                        }
                    }
                }
                #region "update"
                Tus = tm.LanguageDirection.GetTranslationUnits(ref tmIterator);
                #endregion
            }
            #endregion
        }
        public static List <CustomField> GetFilebasedCustomField(TmFile tm)
        {
            var customFieldList = new List <CustomField>();


            var fileBasedTm = new FileBasedTranslationMemory(tm.Path);
            //var tm =
            //	new FileBasedTranslationMemory(@"C:\Users\aghisa\Desktop\cy-en_(Fields_and_Attributes).sdltm");
            var unitsCount = fileBasedTm.LanguageDirection.GetTranslationUnitCount();
            var tmIterator = new RegularIterator(unitsCount);
            var tus        = fileBasedTm.LanguageDirection.GetTranslationUnits(ref tmIterator);

            foreach (var field in fileBasedTm.FieldDefinitions)
            {
                if (field.IsPicklist)
                {
                    var customField = new CustomField
                    {
                        Id         = field.Id,
                        IsPickList = field.IsPicklist,
                        Name       = field.Name,
                        ValueType  = field.ValueType.ToString(),
                        Details    = new ObservableCollection <Details>(GetPickListCustomFieldValues(field))
                    };
                    customFieldList.Add(customField);
                }
                else
                {
                    var customField = new CustomField
                    {
                        Id         = field.Id,
                        IsPickList = field.IsPicklist,
                        Name       = field.Name,
                        ValueType  = field.ValueType.ToString(),
                        Details    = new ObservableCollection <Details>(GetNonPickListCustomFieldValues(tus, field.Name))
                    };
                    customFieldList.Add(customField);
                }
            }

            return(customFieldList);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Iterate whole TM and return id of TU with identical source as tuSourceText
        /// </summary>
        /// <param name="tm"></param>
        /// <param name="tuSourceText"></param>
        /// <returns></returns>
        private PersistentObjectToken IterateTM(FileBasedTranslationMemory tm, string tuSourceText)
        {
            PersistentObjectToken tuID       = null;
            RegularIterator       tmIterator = new RegularIterator(1);

            TranslationUnit[] returnedTMs = tm.LanguageDirection.GetTranslationUnits(ref tmIterator);
            while (returnedTMs.Count <TranslationUnit>() > 0)
            {
                foreach (TranslationUnit item in returnedTMs)
                {
                    if (item.SourceSegment.ToPlain() == "My new TU")
                    {
                        tuID = item.ResourceId;
                        break;
                    }
                }
                returnedTMs = tm.LanguageDirection.GetTranslationUnits(ref tmIterator);
            }

            return(tuID);
        }
 public TranslationUnit[] PreviewEditTranslationUnitsWithIterator(LanguagePlatform.TranslationMemory.EditScripts.EditScript editScript, ref RegularIterator iterator)
 {
     return _tmlanguageDirection.PreviewEditTranslationUnitsWithIterator(editScript, ref iterator);
 }
Ejemplo n.º 13
0
 public bool ReindexTranslationUnits(ref RegularIterator iterator)
 {
     return(_tmlanguageDirection.ReindexTranslationUnits(ref iterator));
 }
Ejemplo n.º 14
0
 public TranslationUnit[] GetTranslationUnits(ref RegularIterator iterator)
 {
     return(_tmlanguageDirection.GetTranslationUnits(ref iterator));
 }
Ejemplo n.º 15
0
 public TranslationUnit[] PreviewEditTranslationUnitsWithIterator(LanguagePlatform.TranslationMemory.EditScripts.EditScript editScript, ref RegularIterator iterator)
 {
     return(_tmlanguageDirection.PreviewEditTranslationUnitsWithIterator(editScript, ref iterator));
 }
Ejemplo n.º 16
0
 public int DeleteTranslationUnitsWithIterator(ref RegularIterator iterator)
 {
     return(_tmlanguageDirection.DeleteTranslationUnitsWithIterator(ref iterator));
 }
Ejemplo n.º 17
0
 public int EditTranslationUnitsWithIterator(LanguagePlatform.TranslationMemory.EditScripts.EditScript editScript, LanguagePlatform.TranslationMemory.EditScripts.EditUpdateMode updateMode, ref RegularIterator iterator)
 {
     return(_tmlanguageDirection.EditTranslationUnitsWithIterator(editScript, updateMode, ref iterator));
 }
 public int DeleteTranslationUnitsWithIterator(ref RegularIterator iterator)
 {
  return   _tmlanguageDirection.DeleteTranslationUnitsWithIterator(ref iterator);
 }
 public int EditTranslationUnitsWithIterator(LanguagePlatform.TranslationMemory.EditScripts.EditScript editScript, LanguagePlatform.TranslationMemory.EditScripts.EditUpdateMode updateMode, ref RegularIterator iterator)
 {
    return _tmlanguageDirection.EditTranslationUnitsWithIterator(editScript, updateMode, ref iterator);
 }
 public bool ReindexTranslationUnits(ref RegularIterator iterator)
 {
     return _tmlanguageDirection.ReindexTranslationUnits(ref iterator);
 }
Ejemplo n.º 21
0
        public async Task AlignTranslationUnits()
        {
            var iter = new RegularIterator();


            var translationUnitCount = _tm.GetTranslationUnitCount();

            var totalUnitsToProcess = _quickAlign
             ? _tm.UnalignedTranslationUnitCount
             : translationUnitCount;

            var lastProgressNumber = 0;

            NotifySubscribers(0, 0, Resources.FragmentAlignment_ProgressPreparingMessage);

            var t = new Task(() =>
            {
                while (_tm.AlignTranslationUnits(false, _quickAlign, ref iter))
                {
                    if (iter.ProcessedTranslationUnits <= lastProgressNumber)
                    {
                        continue;
                    }
                    var text = string.Empty;
                    if (totalUnitsToProcess > 0)
                    {
                        text =
                            string.Format(
                                Resources
                                .FragmentAlignment_ProgressAlignedOfTranslationUnitsMessage
                                , iter.ProcessedTranslationUnits, totalUnitsToProcess);
                    }

                    NotifySubscribers(totalUnitsToProcess, iter.ProcessedTranslationUnits, text);
                    lastProgressNumber = iter.ProcessedTranslationUnits;
                }
            });


            t.ContinueWith(task =>
            {
                throw new Exception(ProcessorUtil.ExceptionToMsg(task.Exception));
            }, TaskContinuationOptions.OnlyOnFaulted);

            t.ContinueWith(task =>
            {
                if (task.IsFaulted)
                {
                    throw new Exception(ProcessorUtil.ExceptionToMsg(task.Exception));
                }
                if (!task.IsCompleted)
                {
                    return;
                }
                ProcessorUtil.UpdateTranslationMemory(_tm);
                NotifySubscribers(translationUnitCount, translationUnitCount, "Complete");
            }, TaskScheduler.FromCurrentSynchronizationContext());

            t.Start();
            await t;
        }
 public TranslationUnit[] GetTranslationUnits(ref RegularIterator iterator)
 {
     return _tmlanguageDirection.GetTranslationUnits(ref iterator);
 }