public SearchResults[] SearchTranslationUnitsMasked(SearchSettings settings, TranslationUnit[] translationUnits, bool[] mask)
        {
            var noOfResults = mask.Length;
            List <SearchResults>       results          = new List <SearchResults>();
            List <PreTranslateSegment> preTranslateList = new List <PreTranslateSegment>();

            // plugin is called from pre-translate batch task
            // we receive the data in chunk of 10 segments
            if (translationUnits.Length > 2)
            {
                var i = 0;
                foreach (var tu in translationUnits)
                {
                    if (mask == null || mask[i])
                    {
                        var preTranslate = new PreTranslateSegment
                        {
                            SearchSettings  = settings,
                            TranslationUnit = tu
                        };
                        preTranslateList.Add(preTranslate);
                    }
                    else
                    {
                        results.Add(null);
                    }
                    i++;
                }

                if (preTranslateList.Count > 0)
                {
                    // Create temp file with translations
                    var translatedSegments        = PrepareTempData(preTranslateList).Result;
                    var preTranslateSearchResults = GetPreTranslationSearchResults(translatedSegments);
                    results.AddRange(preTranslateSearchResults);
                }
            }
            else
            {
                var i = 0;
                foreach (var tu in translationUnits)
                {
                    if (mask == null || mask[i])
                    {
                        var result = SearchTranslationUnit(settings, tu);
                        results.Add(result);
                    }
                    else
                    {
                        results.Add(null);
                    }
                    i++;
                }
            }

            return(results.ToArray());
        }
예제 #2
0
        public SearchResults[] SearchTranslationUnitsMasked(SearchSettings settings, TranslationUnit[] translationUnits,
                                                            bool[] mask)
        {
            // bug LG-15128 where mask parameters are true for both CM and the actual TU to be updated which cause an unnecessary call for CM segment
            var results          = new List <SearchResults>();
            var preTranslateList = new List <PreTranslateSegment>();

            // plugin is called from pre-translate batch task
            //we receive the data in chunk of 10 segments
            if (translationUnits.Length > 2)
            {
                var i = 0;
                foreach (var tu in translationUnits)
                {
                    if (mask == null || mask[i])
                    {
                        var preTranslate = new PreTranslateSegment
                        {
                            SearchSettings  = settings,
                            TranslationUnit = tu
                        };
                        preTranslateList.Add(preTranslate);
                    }
                    else
                    {
                        results.Add(null);
                    }
                    i++;
                }
                if (preTranslateList.Count > 0)
                {
                    //Create temp file with translations
                    var translatedSegments        = PrepareTempData(preTranslateList).Result;
                    var preTranslateSearchResults = GetPreTranslationSearchResults(translatedSegments);
                    results.AddRange(preTranslateSearchResults);
                }
            }
            else
            {
                var i = 0;
                foreach (var tu in translationUnits)
                {
                    if (mask == null || mask[i])
                    {
                        var result = SearchTranslationUnit(settings, tu);
                        results.Add(result);
                    }
                    else
                    {
                        results.Add(null);
                    }
                    i++;
                }
            }
            return(results.ToArray());
        }