public void CreateTemplate(TranslationProviderServer tmServer)
        {
            #region "TemplateProps"
            ServerBasedLanguageResourcesTemplate template = new ServerBasedLanguageResourcesTemplate(tmServer);
            template.Name        = "Sample Language Resources Template";
            template.Description = "Language Resources template created through API";
            #endregion

            #region "variables"
            LanguageResourceBundle variables = new LanguageResourceBundle(CultureInfo.GetCultureInfo("en-US"));
            variables.Variables.Add("SDL Trados Studio 2009");
            variables.Variables.Add("SDL MultiTerm 2009");
            #endregion

            #region "abbreviations"
            LanguageResourceBundle abbreviations = new LanguageResourceBundle(CultureInfo.GetCultureInfo("en-US"));
            abbreviations.Abbreviations.Add("hr.");
            abbreviations.Abbreviations.Add("cont.");
            #endregion

            #region "AddResources"
            template.LanguageResourceBundles.Add(variables);
            template.LanguageResourceBundles.Add(abbreviations);
            #endregion

            #region "save"
            template.Save();
            MessageBox.Show("Unsaved changes? " + template.IsDirty.ToString());
            #endregion

            #region "delete"
            template.Delete();
            #endregion
        }
コード例 #2
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();
        }
コード例 #3
0
 private void btnReindex_Click(object sender, EventArgs e)
 {
     if (tabControlTMLifting.SelectedTab == tabControlTMLifting.TabPages["tabPageFileBasedTM"])
     {
         var tms = lstTms.Items.OfType <TranslationMemoryInfo>().ToList();
         if (tms.Capacity > 0)
         {
             groupBoxProgress.Visible   = true;
             labelMessage.Text          = "In progress, please wait... ";
             progressBarFileBased.Style = ProgressBarStyle.Marquee;
             btnReindex.Enabled         = false;
             _bw.RunWorkerAsync(tms);
             cancelBtn.Enabled = true;
         }
     }
     else
     {
         foreach (dynamic row in gridServerBasedTMs.SelectedRows)
         {
             var selectedRow         = gridServerBasedTMs.Rows[row.Index].DataBoundItem as TranslationMemoryDetails;
             var uriServer           = new Uri(Properties.Settings.Default.Uri);
             var translationProvider = new TranslationProviderServer(uriServer, false,
                                                                     Properties.Settings.Default.UserName,
                                                                     Properties.Settings.Default.Password);
             var selectedTm       = translationProvider.GetTranslationMemory(selectedRow.Id, TranslationMemoryProperties.None);
             var reindexOperation = new ScheduledReindexOperation()
             {
                 TranslationMemory = selectedTm
             };
             reindexOperation.Refresh();
             reindexOperation.Queue();
             gridServerBasedTMs.Rows[row.Index].Cells["Status"].Value = reindexOperation.Status;
         }
     }
 }
コード例 #4
0
        public void GetFieldTemplates(TranslationProviderServer tmServer)
        {
            #region "LoopTemplates"
            StringBuilder templateList = new StringBuilder();

            foreach (ServerBasedFieldsTemplate template in tmServer.GetFieldsTemplates(FieldsTemplateProperties.All))
            #endregion
            {
                #region "GeneralTemplateInfo"
                templateList.AppendFormat("Template name: {0}\n", template.Name);
                templateList.AppendFormat("Template description: {0}\n", template.Description);
                #endregion

                #region "fields"
                templateList.AppendLine("Fields: ");
                foreach (FieldDefinition def in template.FieldDefinitions)
                {
                    templateList.AppendFormat("{0}({1})", def.Name, def.ValueType.ToString());
                }

                templateList.AppendLine(string.Empty);
                #endregion
            }

            MessageBox.Show(templateList.ToString(), "Template List");
        }
コード例 #5
0
        private void ApplyChanges()
        {
            var selectedSearchResult = SourceSearchResults.Where(s => s.TuSelected).ToList();
            var tusToAnonymize       = new List <AnonymizeTranslationMemory>();
            //file base tms
            var fileBasedSearchResult = selectedSearchResult.Where(t => !t.IsServer).ToList();

            if (fileBasedSearchResult.Count > 0)
            {
                BackupFileBasedTm();
                tusToAnonymize = GetTranslationUnitsToAnonymize(fileBasedSearchResult);
                Tm.AnonymizeFileBasedTu(tusToAnonymize);
            }
            //server based tms
            var serverBasedSearchResult = selectedSearchResult.Where(t => t.IsServer).ToList();

            if (serverBasedSearchResult.Count > 0)
            {
                tusToAnonymize = GetTranslationUnitsToAnonymize(serverBasedSearchResult);
                var uri = new Uri(_tmViewModel.Credentials.Url);
                var translationProvider = new TranslationProviderServer(uri, false, _tmViewModel.Credentials.UserName,
                                                                        _tmViewModel.Credentials.Password);

                BackupServerBasedTm(translationProvider, tusToAnonymize);
                Tm.AnonymizeServerBasedTu(translationProvider, tusToAnonymize);
            }
            RemoveSelectedTusToAnonymize();
        }
コード例 #6
0
        public void CreateTemplate(TranslationProviderServer tmServer)
        {
            #region "CreateTemplate"
            ServerBasedFieldsTemplate template = new ServerBasedFieldsTemplate(tmServer);
            template.Name        = "Sample Template";
            template.Description = "Fields template created by API";
            #endregion

            #region "AddTextField"
            FieldDefinition projField = new FieldDefinition("Project id", FieldValueType.MultipleString);
            #endregion

            #region "AddListField"
            FieldDefinition clientField = new FieldDefinition("Client", FieldValueType.MultiplePicklist);
            clientField.PicklistItems.Add("Microsoft");
            clientField.PicklistItems.Add("SAP");
            #endregion

            #region "AddFieldsToTemplate"
            template.FieldDefinitions.Add(projField);
            template.FieldDefinitions.Add(clientField);
            #endregion

            #region "save"
            template.Save();
            MessageBox.Show("Unsaved changes? " + template.IsDirty.ToString());
            #endregion

            #region "delete"
            template.Delete();
            #endregion
        }
コード例 #7
0
        /// <summary>
        /// Selects the particular server TM as chosen by the user through the dropdown list.
        /// </summary>
        public void SelectServerTm(string tmName, string uri, string userName, string password)
        {
            var tmServer = new TranslationProviderServer(GetUri(uri), false, userName, password);

            ServerTM = tmServer.GetTranslationMemory(tmName,
                                                     TranslationMemoryProperties.None);
            Server = true;
        }
コード例 #8
0
ファイル: Tm.cs プロジェクト: makkaibalazs/Sdl-Community
        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
            });
        }
コード例 #9
0
        public void DeleteContainer(TranslationProviderServer tmServer, string organization, string containerName)
        {
            if (!organization.EndsWith("/"))
            {
                organization += "/";
            }
            TranslationMemoryContainer container = tmServer.GetContainer(organization + containerName, ContainerProperties.None);

            container.Delete(false);
        }
コード例 #10
0
        public SelectServersViewModel(Window controlWindow, SettingsService settingsService, TranslationProviderServer translationProviderServer)
        {
            _controlWindow = controlWindow;

            _settingsService           = settingsService;
            _translationProviderServer = translationProviderServer;

            _backgroundWorker         = new BackgroundWorker();
            _backgroundWorker.DoWork += BackgroundWorker_DoWork;
            _backgroundWorker.RunWorkerAsync();
        }
コード例 #11
0
        public void Create(TranslationProviderServer tmServer)
        {
            TranslationMemoryContainer container = new TranslationMemoryContainer(tmServer);

            DatabaseServer dbServ = tmServer.GetDatabaseServer("DB01", GetDbServProperties());

            container.DatabaseServer = dbServ;
            container.DatabaseName   = "DbName";
            container.Name           = "NiceName";
            container.Save();
        }
コード例 #12
0
        public void GetLicensingInformation(TranslationProviderServer tmServer)
        {
            string licInfo = string.Empty;
            LicensingStatusInformation info;

            info = tmServer.GetLicensingStatusInformation();

            licInfo += "Max. concurrent users: " + info.MaxConcurrentUsers.ToString();
            licInfo += "Max. TU count: " + info.MaxTranslationUnitCount.ToString();
            licInfo += "Current TU count: " + info.CurrentTranslationUnitCount.ToString();

            MessageBox.Show(licInfo, "Licensing Information");
        }
コード例 #13
0
        public void DeleteTm(TranslationProviderServer tmServer, string organizationPath, string tmName)
        {
            string tmPath = organizationPath;

            if (!tmPath.EndsWith("/"))
            {
                tmPath += "/";
            }

            ServerBasedTranslationMemory tm = tmServer.GetTranslationMemory(tmPath + tmName, TranslationMemoryProperties.All);

            tm.Delete();
        }
コード例 #14
0
        public void GetDBServers(TranslationProviderServer tmServer)
        {
            string serverInfo = string.Empty;

            foreach (DatabaseServer dbServer in tmServer.GetDatabaseServers(DatabaseServerProperties.None))
            {
                serverInfo += "Server name: " + dbServer.ServerName + "\n";
                serverInfo += "Friendly server name: " + dbServer.Name + "\n";
                serverInfo += "Server description: " + dbServer.Description + "\n";
                serverInfo += "Server type: " + dbServer.ServerType + "\n\n";
            }

            MessageBox.Show(serverInfo, "Container Information");
        }
コード例 #15
0
        private void AddDetailsCallback(string userName, string password, string uri)
        {
            try
            {
                Properties.Settings.Default.UserName = userName;
                Properties.Settings.Default.Password = password;
                Properties.Settings.Default.Uri      = uri;
                Properties.Settings.Default.Save();

                var uriServer           = new Uri(Properties.Settings.Default.Uri);
                var translationProvider = new TranslationProviderServer(uriServer, false,
                                                                        Properties.Settings.Default.UserName,
                                                                        Properties.Settings.Default.Password);
                var translationMemories = translationProvider.GetTranslationMemories(TranslationMemoryProperties.None);
                var tmDetails           = new List <TranslationMemoryDetails>();

                foreach (var tm in translationMemories)
                {
                    tmDetails.Add(new TranslationMemoryDetails
                    {
                        Id          = tm.Id,
                        Name        = tm.Name,
                        Description = tm.Description,
                        CreatedOn   = tm.CreationDate,
                        Location    = tm.ParentResourceGroupPath,
                        Size        = tm.GetTranslationUnitCount()
                    });
                    var result = tm.CurrentReindexOperation;
                }
                var sortedBindingList = new SortableBindingList <TranslationMemoryDetails>(tmDetails);
                gridServerBasedTMs.DataSource = sortedBindingList;

                gridServerBasedTMs.Columns["Id"].Visible          = false;
                gridServerBasedTMs.Columns["Name"].Visible        = true;
                gridServerBasedTMs.Columns["Description"].Visible = true;
                gridServerBasedTMs.Columns["CreatedOn"].Visible   = true;
                gridServerBasedTMs.Columns["Location"].Visible    = true;
                gridServerBasedTMs.Columns["Size"].Visible        = true;
                gridServerBasedTMs.Columns["Status"].Visible      = true;
                gridServerBasedTMs.AllowUserToAddRows             = false;
                gridServerBasedTMs.ReadOnly = true;
                gridServerBasedTMs.Visible  = true;
                connectToServerBtn.Text     = "Logout";
            }
            catch (Exception ex)
            {
                throw new SystemException(Constants.AuthentificationErrorMsg);
            }
        }
コード例 #16
0
        public void GetDBContainers(TranslationProviderServer tmServer)
        {
            string dbInfo = string.Empty;

            foreach (TranslationMemoryContainer container in tmServer.GetContainers(ContainerProperties.None))
            {
                dbInfo += "DB Name: " + container.DatabaseName + "\n";
                dbInfo += "Friendly name: " + container.Name + "\n";
                dbInfo += "DB Server: " + container.DatabaseServer + "\n";
                dbInfo += "Description: " + container.Description + "\n\n";
                dbInfo += "ParentOrganization: " + container.ParentResourceGroupPath + "\n\n";
            }

            MessageBox.Show(dbInfo);
        }
        public void GetTmsForTemplate(TranslationProviderServer tmServer, string templateName)
        {
            #region "SelectTemplate"
            ServerBasedLanguageResourcesTemplate template = tmServer.GetLanguageResourcesTemplate(templateName, LanguageResourcesTemplateProperties.All);
            #endregion

            #region "LoopTms"
            string tmList = string.Empty;
            foreach (ServerBasedTranslationMemory tm in template.TranslationMemories)
            {
                tmList += tm.Name + "\n";
            }

            MessageBox.Show(tmList);
            #endregion
        }
コード例 #18
0
        private void PreviewChanges()
        {
            var selectedTms        = _tmsCollection.Where(t => t.IsSelected).ToList();
            var selectedRulesCount = RulesCollection.Count(r => r.IsSelected);

            if (selectedTms.Count > 0 && selectedRulesCount > 0)
            {
                var serverTms = selectedTms.Where(s => s.IsServerTm).ToList();
                if (serverTms.Any())
                {
                    var uri = new Uri(_translationMemoryViewModel.Credentials.Url);
                    var translationProvider = new TranslationProviderServer(uri, false,
                                                                            _translationMemoryViewModel.Credentials.UserName,
                                                                            _translationMemoryViewModel.Credentials.Password);
                    //get all tus for selected translation memories
                    foreach (var serverTm in serverTms)
                    {
                        var tus = Tm.ServerBasedTmGetTranslationUnits(translationProvider, serverTm.Path,
                                                                      SourceSearchResults, GetSelectedRules());
                        if (!_anonymizeTranslationMemories.Exists(n => n.TmPath.Equals(tus.TmPath)))
                        {
                            _anonymizeTranslationMemories.Add(tus);
                        }
                    }
                }

                //file based tms
                foreach (var tm in selectedTms.Where(s => !s.IsServerTm))
                {
                    var tus = Tm.FileBaseTmGetTranslationUnits(tm.Path, SourceSearchResults, GetSelectedRules());
                    if (!_anonymizeTranslationMemories.Exists(n => n.TmPath.Equals(tus.TmPath)))
                    {
                        _anonymizeTranslationMemories.Add(tus);
                    }
                }
                var previewWindow    = new PreviewWindow();
                var previewViewModel = new PreviewWindowViewModel(SourceSearchResults, _anonymizeTranslationMemories,
                                                                  _tmsCollection, _translationMemoryViewModel);
                previewWindow.DataContext = previewViewModel;
                previewWindow.Show();
            }
            else
            {
                MessageBox.Show(@"Please select at least one translation memory and a rule to preview the changes",
                                "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
コード例 #19
0
 public static void AnonymizeServerBasedTu(TranslationProviderServer translationProvider,
                                           List <AnonymizeTranslationMemory> tusToAnonymize)
 {
     try
     {
         foreach (var tuToAonymize in tusToAnonymize)
         {
             var translationMemory =
                 translationProvider.GetTranslationMemory(tuToAonymize.TmPath, TranslationMemoryProperties.All);
             var languageDirections = translationMemory.LanguageDirections;
             foreach (var languageDirection in languageDirections)
             {
                 foreach (var translationUnit in tuToAonymize.TranslationUnits)
                 {
                     var sourceTranslationElements = translationUnit.SourceSegment.Elements.ToList();
                     var elementsContainsTag       =
                         sourceTranslationElements.Any(s => s.GetType().UnderlyingSystemType.Name.Equals("Tag"));
                     if (elementsContainsTag)
                     {
                         AnonymizeSegmentsWithTags(translationUnit, sourceTranslationElements, true);
                     }
                     else
                     {
                         AnonymizeSegmentsWithoutTags(translationUnit, sourceTranslationElements, true);
                     }
                     languageDirection.UpdateTranslationUnit(translationUnit);
                 }
             }
         }
     }
     catch (Exception exception)
     {
         if (exception.Message.Equals("One or more errors occurred."))
         {
             if (exception.InnerException != null)
             {
                 MessageBox.Show(exception.InnerException.Message,
                                 "", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
         else
         {
             MessageBox.Show(exception.Message,
                             "", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
コード例 #20
0
        public void GetTmsForTemplate(TranslationProviderServer tmServer, string templateName)
        {
            #region "GetTemplate"
            ServerBasedFieldsTemplate template = tmServer.GetFieldsTemplate(templateName, FieldsTemplateProperties.All);
            #endregion

            #region "TmLoop"
            StringBuilder tmList = new StringBuilder();

            foreach (ServerBasedTranslationMemory tm in template.TranslationMemories)
            {
                tmList.AppendLine(tm.Name);
            }

            MessageBox.Show(tmList.ToString());
            #endregion
        }
コード例 #21
0
        /// <summary>
        /// Tests connection to TranslationProviderServer.
        /// </summary>
        public void Test(TranslationProviderServer tmServer)
        {
            #region "license"
            ServerLicensing license = new ServerLicensing();
            license.GetLicensingInformation(tmServer);
            #endregion

            #region "dbservers"
            ServerDBServers dbServ = new ServerDBServers();
            dbServ.GetDBServers(tmServer);
            #endregion

            #region "containers"
            ServerContainers containers = new ServerContainers();
            containers.GetDBContainers(tmServer);
            #endregion

            #region "CreateContainer"
            ServerContainer newContainer = new ServerContainer();
            newContainer.CreateAdvanced(tmServer, _organizationPath, _temporaryContainer);
            #endregion

            #region "DeleteContainer"
            newContainer.DeleteContainer(tmServer, _organizationPath, _temporaryContainer);
            #endregion

            #region "CreateTm"
            ServerTmCreator newTm = new ServerTmCreator();
            newTm.Create(tmServer, _organizationPath, _existingContainer, _temporaryTranslationMemory);
            #endregion

            #region "DeleteTm"
            newTm.DeleteTm(tmServer, _organizationPath, _temporaryTranslationMemory);
            #endregion

            #region "export"
            ServerExporter export = new ServerExporter();
            export.ExportToTmx(tmServer, _organizationPath, _existingTranslationMemory, _exportFileName);
            #endregion

            #region "import"
            ServerImporter import = new ServerImporter();
            import.ImportTmx(tmServer, _organizationPath, _existingTranslationMemory, _importFileName);
            #endregion
        }
コード例 #22
0
        private void ImportXliffToExistingTm()
        {
            var uri = new Uri(@"uri");

            var translationProviderServer = new TranslationProviderServer(uri, false, "user name", "password");

            //Import to existing tm
            var guid          = new Guid("Existing TM Guid");
            var tm            = translationProviderServer.GetTranslationMemory(guid, TranslationMemoryProperties.None);
            var langDirection = tm.LanguageDirections;

            var import = new ScheduledServerTranslationMemoryImport(langDirection[0])
            {
                Source = new FileInfo(@"path to xliff")
            };

            import.Queue();
        }
        public void GetTemplates(TranslationProviderServer tmServer)
        {
            #region "LoopTemplates"
            string templateList = string.Empty;
            foreach (ServerBasedLanguageResourcesTemplate template in tmServer.GetLanguageResourcesTemplates(LanguageResourcesTemplateProperties.All))
            #endregion
            {
                #region "info"
                templateList += "Template name: " + template.Name + "\n";
                templateList += "Description: " + template.Description + "\n";
                #endregion
                #region "VarCount"
                LanguageResourceBundle bundle = template.LanguageResourceBundles[0];
                templateList += "Number of variables in template: " + bundle.Variables.Count.ToString() + "\n\n";
                #endregion
            }

            MessageBox.Show(templateList, "Available language resources remplates");
        }
コード例 #24
0
        private async void ApplyChanges()
        {
            if (SourceSearchResults.Any(s => s.TuSelected))
            {
                System.Windows.Application.Current.Dispatcher.Invoke(delegate
                {
                    _waitWindow = new WaitWindow();
                    _waitWindow.Show();
                });
                var selectedSearchResult = SourceSearchResults.Where(s => s.TuSelected).ToList();
                List <AnonymizeTranslationMemory> tusToAnonymize;
                //file base tms
                var fileBasedSearchResult = selectedSearchResult.Where(t => !t.IsServer).ToList();
                if (fileBasedSearchResult.Count > 0)
                {
                    BackupFileBasedTm();
                    tusToAnonymize = GetTranslationUnitsToAnonymize(fileBasedSearchResult);
                    Tm.AnonymizeFileBasedTu(tusToAnonymize);
                }
                //server based tms
                var serverBasedSearchResult = selectedSearchResult.Where(t => t.IsServer).ToList();
                if (serverBasedSearchResult.Count > 0)
                {
                    tusToAnonymize = GetTranslationUnitsToAnonymize(serverBasedSearchResult);
                    var uri = new Uri(_tmViewModel.Credentials.Url);
                    var translationProvider = new TranslationProviderServer(uri, false, _tmViewModel.Credentials.UserName,
                                                                            _tmViewModel.Credentials.Password);

                    BackupServerBasedTm(translationProvider, tusToAnonymize);
                    Tm.AnonymizeServerBasedTu(translationProvider, tusToAnonymize);
                }
                RemoveSelectedTusToAnonymize();
                _waitWindow?.Close();
            }
            else
            {
                await _dialogCoordinator.ShowMessageAsync(this, "", "Please select at least one translation unit to apply the changes");
            }
        }
コード例 #25
0
        /// <summary>
        /// Establishing a connection to the TM Server.
        /// This connection is primarily needed for populating the
        /// TM dropdown list with the TM names.
        /// </summary>
        public void Connect(string serverUri, string userName, string password, ComboBox tmList)
        {
            try
            {
                var tmServer = new TranslationProviderServer(GetUri(serverUri), false, userName, password);
                foreach (ServerBasedTranslationMemory item in tmServer.GetTranslationMemories(TranslationMemoryProperties.All))
                {
                    //Resolve path to the TM inclusive name of the organization(s)
                    string tmPath = item.ParentResourceGroupPath == "/" ? "" : item.ParentResourceGroupPath;
                    tmList.Items.Add(tmPath + "/" + item.Name);
                }

                if (tmList.Items.Count > 0)
                {
                    tmList.Enabled       = true;
                    tmList.SelectedIndex = 0;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #26
0
        public void Execute()
        {
            var uri = new Uri(@"Add your url");
            var translationProviderServer = new TranslationProviderServer(uri, false, "user name", "password");

            var serverTm = new ServerBasedTranslationMemory(translationProviderServer)
            {
                Name = "Tm from API"
            };
            var resourceTemplate =
                translationProviderServer.GetLanguageResourcesTemplates(LanguageResourcesTemplateProperties.All);
            var containters = translationProviderServer.GetContainers(ContainerProperties.All);
            var container   = containters.FirstOrDefault(c => c.Name.Equals("APSIC_TM_Container"));

            if (container != null)
            {
                serverTm.Container = container;
                serverTm.ParentResourceGroupPath   = container.ParentResourceGroupPath;
                serverTm.LanguageResourcesTemplate = resourceTemplate?[0];
                CreateLanguageDirections(serverTm.LanguageDirections);

                serverTm.Save();
            }
        }
コード例 #27
0
        public void CreateAdvanced(TranslationProviderServer tmServer, string organization, string newContainerName)
        {
            #region "count"
            ReadOnlyCollection <DatabaseServer> dbs = tmServer.GetDatabaseServers(DatabaseServerProperties.Containers);
            if (dbs.Count == 0)
            {
                throw new Exception("No DB server registered.");
            }
            #endregion

            #region "CheckExists"
            foreach (TranslationMemoryContainer item in dbs[0].Containers)
            {
                if (item.Name == newContainerName)
                {
                    throw new Exception("Container with that name already exists.");
                }
            }
            #endregion

            #region "CreateContainer"
            TranslationMemoryContainer container = new TranslationMemoryContainer(tmServer);
            container.DatabaseServer          = dbs[0];
            container.DatabaseName            = newContainerName + "DB";
            container.Name                    = newContainerName;
            container.ParentResourceGroupPath = organization;
            container.Save();
            #endregion

            #region "CheckCreated"
            if (!dbs[0].Containers.Contains(container))
            {
                throw new Exception("Container was not created.");
            }
            #endregion
        }
コード例 #28
0
        public void ExportToTmx(TranslationProviderServer tmServer, string orgName, string tmName, string exportFilePath)
        {
            #region "OpenTm"
            if (!orgName.StartsWith("/"))
            {
                orgName = "/" + orgName;
            }
            if (!orgName.EndsWith("/"))
            {
                orgName += "/";
            }
            ServerBasedTranslationMemory tm = tmServer.GetTranslationMemory(
                orgName + tmName, TranslationMemoryProperties.All);
            #endregion

            #region "exporter"
            ScheduledServerTranslationMemoryExport exporter = new ScheduledServerTranslationMemoryExport(
                this.GetLanguageDirection(tm, CultureInfo.GetCultureInfo("en-US"), CultureInfo.GetCultureInfo("de-DE")));
            #endregion

            #region "settings"
            exporter.ChunkSize       = 25;
            exporter.ContinueOnError = true;
            #endregion

            #region "wait"
            exporter.Queue();
            exporter.Refresh();

            bool continueWaiting = true;
            while (continueWaiting)
            {
                switch (exporter.Status)
                {
                case ScheduledOperationStatus.Abort:
                case ScheduledOperationStatus.Aborted:
                case ScheduledOperationStatus.Cancel:
                case ScheduledOperationStatus.Cancelled:
                case ScheduledOperationStatus.Completed:
                case ScheduledOperationStatus.Error:
                    continueWaiting = false;
                    break;

                case ScheduledOperationStatus.Aborting:
                case ScheduledOperationStatus.Allocated:
                case ScheduledOperationStatus.Cancelling:
                case ScheduledOperationStatus.NotSet:
                case ScheduledOperationStatus.Queued:
                case ScheduledOperationStatus.Recovered:
                case ScheduledOperationStatus.Recovering:
                case ScheduledOperationStatus.Recovery:
                    continueWaiting = true;
                    exporter.Refresh();
                    break;

                default:
                    continueWaiting = false;
                    break;
                }
            }
            #endregion

            #region "completed"
            if (exporter.Status == ScheduledOperationStatus.Completed)
            {
                using (Stream outputStream = new FileStream(exportFilePath, FileMode.Create))
                {
                    var result = exporter.DownloadExport(outputStream);
                    if (result)
                    {
                        MessageBox.Show("Export successfuly finished.");
                    }
                }
            }
            else if (exporter.Status == ScheduledOperationStatus.Error)
            {
                MessageBox.Show(exporter.ErrorMessage);
            }
            else
            {
                MessageBox.Show("Export did not finish.");
            }
            #endregion
        }
コード例 #29
0
        private void BackupServerBasedTm(TranslationProviderServer translationProvider,
                                         List <AnonymizeTranslationMemory> tusToAnonymize)
        {
            _backupTms.Clear();
            if (!Directory.Exists(Constants.ServerTmBackupPath))
            {
                Directory.CreateDirectory(Constants.ServerTmBackupPath);
            }
            try
            {
                foreach (var tuToAonymize in tusToAnonymize)
                {
                    var translationMemory =
                        translationProvider.GetTranslationMemory(tuToAonymize.TmPath, TranslationMemoryProperties.All);
                    var languageDirections = translationMemory.LanguageDirections;
                    foreach (var languageDirection in languageDirections)
                    {
                        var folderPath = Path.Combine(Constants.ServerTmBackupPath, translationMemory.Name,
                                                      languageDirection.TargetLanguageCode);
                        if (!Directory.Exists(folderPath))
                        {
                            Directory.CreateDirectory(folderPath);
                        }
                        var fileName = translationMemory.Name + languageDirection.TargetLanguageCode + ".tmx.gz";
                        _filePath = Path.Combine(folderPath, fileName);

                        //if tm does not exist download it
                        if (!File.Exists(_filePath))
                        {
                            _tmExporter = new ScheduledServerTranslationMemoryExport(languageDirection)
                            {
                                ContinueOnError = true
                            };
                            _tmExporter.Queue();
                            _tmExporter.Refresh();

                            var continueWaiting = true;
                            while (continueWaiting)
                            {
                                switch (_tmExporter.Status)
                                {
                                case ScheduledOperationStatus.Abort:
                                case ScheduledOperationStatus.Aborted:
                                case ScheduledOperationStatus.Cancel:
                                case ScheduledOperationStatus.Cancelled:
                                case ScheduledOperationStatus.Completed:
                                case ScheduledOperationStatus.Error:
                                    continueWaiting = false;
                                    break;

                                case ScheduledOperationStatus.Aborting:
                                case ScheduledOperationStatus.Allocated:
                                case ScheduledOperationStatus.Cancelling:
                                case ScheduledOperationStatus.NotSet:
                                case ScheduledOperationStatus.Queued:
                                case ScheduledOperationStatus.Recovered:
                                case ScheduledOperationStatus.Recovering:
                                case ScheduledOperationStatus.Recovery:
                                    _tmExporter.Refresh();
                                    break;

                                default:
                                    continueWaiting = false;
                                    break;
                                }
                            }
                            if (_tmExporter.Status == ScheduledOperationStatus.Completed)
                            {
                                var backup = new ServerTmBackUp
                                {
                                    ScheduledExport = _tmExporter,
                                    FilePath        = _filePath
                                };
                                _backupTms.Add(backup);
                            }
                            else if (_tmExporter.Status == ScheduledOperationStatus.Error)
                            {
                                MessageBox.Show(_tmExporter.ErrorMessage,
                                                "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                    if (!_backgroundWorker.IsBusy)
                    {
                        _backgroundWorker.RunWorkerAsync();
                    }
                }
            }
            catch (Exception exception)
            {
                if (exception.Message.Equals("One or more errors occurred."))
                {
                    if (exception.InnerException != null)
                    {
                        MessageBox.Show(exception.InnerException.Message,
                                        "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show(exception.Message,
                                    "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #30
0
        public void Create(TranslationProviderServer tmServer, string organizationPath, string containerName, string tmName)
        {
            #region "CheckExists"
            foreach (ServerBasedTranslationMemory item in tmServer.GetTranslationMemories(TranslationMemoryProperties.None))
            {
                if (item.Name == tmName)
                {
                    throw new Exception("TM with that name already exists.");
                }
            }
            #endregion

            #region "TM"
            ServerBasedTranslationMemory newTM = new ServerBasedTranslationMemory(tmServer);
            newTM.Name        = tmName;
            newTM.Description = "Programmatically created sample TM";
            newTM.Copyright   = "(c) 2010 SDL International";
            #endregion

            string containerPath = organizationPath;
            if (!containerPath.EndsWith("/"))
            {
                containerPath += "/";
            }

            #region "container"
            containerPath += containerName;
            TranslationMemoryContainer container = tmServer.GetContainer(containerPath, GetContainerProperties());
            newTM.Container = container;
            #endregion

            #region "LanguageDirection"
            CreateLanguageDirections(newTM.LanguageDirections);
            #endregion

            #region "org"
            newTM.ParentResourceGroupPath = organizationPath;
            #endregion

            string templatePath = organizationPath;
            if (!templatePath.EndsWith("/"))
            {
                templatePath += "/";
            }

            #region "templates"
            string sampleFieldTemplateName = "MyFieldTemplate";
            foreach (ServerBasedFieldsTemplate template in tmServer.GetFieldsTemplates(FieldsTemplateProperties.All))
            {
                if (template.Name == sampleFieldTemplateName)
                {
                    newTM.FieldsTemplate = tmServer.GetFieldsTemplate(
                        templatePath + sampleFieldTemplateName, FieldsTemplateProperties.Fields);
                    break;
                }
            }

            string sampleLanguageResourcesTemplateName = "MyLanguageResourcesTemplate";
            foreach (ServerBasedLanguageResourcesTemplate template in tmServer.GetLanguageResourcesTemplates(
                         LanguageResourcesTemplateProperties.LanguageResources))
            {
                if (template.Name == sampleLanguageResourcesTemplateName)
                {
                    newTM.LanguageResourcesTemplate = tmServer.GetLanguageResourcesTemplate(
                        templatePath + sampleLanguageResourcesTemplateName, LanguageResourcesTemplateProperties.None);
                    break;
                }
            }
            #endregion


            newTM.Save();
        }