private void refillLanguagesToTranslate() { languagesToExportCheckListBox.Items.Clear(); var forbidden = referenceLanguageGroupBox.SelectedIndex >= 0 && referenceLanguageGroupBox.SelectedIndex < referenceLanguageGroupBox.Properties.Items.Count ? ((MyTuple <string, string>)referenceLanguageGroupBox.SelectedItem).Item2 : string.Empty; foreach (var languageCode in languageCodes) { if (!string.IsNullOrEmpty(languageCode) && languageCode.ToLowerInvariant() != forbidden.ToLowerInvariant()) { var index = languagesToExportCheckListBox.Items.Add( new MyTuple <string, string>( $@"{LanguageCodeDetection.MakeValidCulture(languageCode).DisplayName} ({languageCode})", languageCode)); languagesToExportCheckListBox.SetItemChecked(index, true); } } }
public override void InitiallyFillLists() { foreach (var languageCode in languageCodes) { if (!string.IsNullOrEmpty(languageCode.First)) { referenceLanguageComboBox.Properties.Items.Add( new Pair <string, Pair <string, string> >( string.Format( @"{0} ({1})", LanguageCodeDetection.MakeValidCulture(languageCode.First).DisplayName, languageCode), languageCode)); } } var items = new List <Pair <string, CultureInfo> >(); foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures)) { items.Add(new Pair <string, CultureInfo>(culture.DisplayName, culture)); } items.Sort((x, y) => string.CompareOrdinal(x.First, y.First)); foreach (var item in items) { newLanguageComboBox.Properties.Items.Add(item); } // -- fillTranslationEngine(); }
private void refillLanguagesToTranslate() { languagesToDisplayCheckListBox.Items.Clear(); var pairs = new List <MyTuple <string, string> >(); // ReSharper disable LoopCanBeConvertedToQuery foreach (var languageCode in languageCodes) // ReSharper restore LoopCanBeConvertedToQuery { if (!string.IsNullOrEmpty(languageCode)) { pairs.Add( new MyTuple <string, string>( $@"{LanguageCodeDetection.MakeValidCulture(languageCode).DisplayName} ({languageCode})", languageCode)); } } pairs.Sort((x, y) => string.Compare(x.Item1, y.Item1, StringComparison.Ordinal)); foreach (var pair in pairs) { var index = languagesToDisplayCheckListBox.Items.Add(pair); languagesToDisplayCheckListBox.SetItemChecked(index, false); } }
protected override void InitiallyFillLists() { foreach (var languageCode in languageCodes) { if (!string.IsNullOrEmpty(languageCode.Item1)) { referenceLanguageComboBox.Properties.Items.Add( new MyTuple <string, MyTuple <string, string> >( $@"{ LanguageCodeDetection.MakeValidCulture(languageCode.Item1).DisplayName } ({languageCode})", languageCode)); } } var items = new List <MyTuple <string, CultureInfo> >(); foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures)) { items.Add(new MyTuple <string, CultureInfo>(culture.DisplayName, culture)); } items.Sort((x, y) => string.CompareOrdinal(x.Item1, y.Item1)); foreach (var item in items) { newLanguageComboBox.Properties.Items.Add(item); } // -- fillTranslationEngine(); }
private void refillLanguagesToTranslate() { languagesToDisplayCheckListBox.Items.Clear(); var pairs = new List <Pair <string, string> >(); // ReSharper disable LoopCanBeConvertedToQuery foreach (var languageCode in languageCodes) // ReSharper restore LoopCanBeConvertedToQuery { if (!string.IsNullOrEmpty(languageCode)) { pairs.Add( new Pair <string, string>( string.Format( @"{0} ({1})", LanguageCodeDetection.MakeValidCulture(languageCode).DisplayName, languageCode), languageCode)); } } pairs.Sort((x, y) => x.First.CompareTo(y.First)); foreach (var pair in pairs) { var index = languagesToDisplayCheckListBox.Items.Add(pair); languagesToDisplayCheckListBox.SetItemChecked(index, false); } }
protected override void InitiallyFillLists() { base.InitiallyFillLists(); // -- _groups.Sort( (x, y) => string.CompareOrdinal( x.GetNameIntelligent(_project), y.GetNameIntelligent(_project))); fileGroupsListBox.Items.Clear(); foreach (var group in _groups) { if (!group.IgnoreDuringExportAndImport && (group.ParentSettings == null || !group.ParentSettings.EffectiveIgnoreDuringExportAndImport)) { var index = fileGroupsListBox.Items.Add( new MyTuple <string, FileGroup>( group.GetNameIntelligent(_project), group)); fileGroupsListBox.SetItemChecked(index, true); } } if (_groups.Count == 1) { // Select one, if only one present. selectAllFileGroupsButton_Click(null, null); } // -- foreach (var languageCode in languageCodes) { referenceLanguageGroupBox.Properties.Items.Add( new MyTuple <string, string>( $@"{LanguageCodeDetection.MakeValidCulture(languageCode).DisplayName} ({languageCode})", languageCode)); } if (languageCodes.Length == 1) { // Select one, if only one present. selectAllLanguagesToExportButton_Click(null, null); } // -- // Select defaults. if (referenceLanguageGroupBox.SelectedIndex < 0 && referenceLanguageGroupBox.Properties.Items.Count > 0) { referenceLanguageGroupBox.SelectedIndex = 0; } }
public static void ApplySpellCheckerCulture( SpellChecker spellChecker, string languageCode) { if (spellChecker != null) { spellChecker.Culture = LanguageCodeDetection.MakeValidCulture(languageCode); } }
private void refillLanguagesToTranslate() { var ti = TranslationHelper.GetTranslationEngine(_project); languagesToTranslateCheckListBox.Items.Clear(); string appID; string appID2; TranslationHelper.GetTranslationAppID( MainForm.Current.ProjectFilesControl.Project ?? Project.Empty, out appID, out appID2); var forbidden = referenceLanguageGroupBox.SelectedIndex >= 0 && referenceLanguageGroupBox.SelectedIndex < referenceLanguageGroupBox.Properties.Items.Count ? ((TranslationLanguageInfo)referenceLanguageGroupBox.SelectedItem).LanguageCode : string.Empty; var lcs = ti.AreAppIDsSyntacticallyValid(appID, appID2) ? ti.GetDestinationLanguages(appID, appID2) : new TranslationLanguageInfo[] { }; foreach (var languageCode in languageCodes) { if (!string.IsNullOrEmpty(languageCode) && languageCode != forbidden) { // Only add those that are supported. if (TranslationHelper.IsSupportedLanguage( languageCode, lcs)) { var index = languagesToTranslateCheckListBox.Items.Add( new TranslationLanguageInfo { UserReadableName = $@"{ LanguageCodeDetection.MakeValidCulture(languageCode).DisplayName } ({languageCode})", LanguageCode = languageCode }); languagesToTranslateCheckListBox.SetItemChecked(index, true); } } } }
protected override void InitiallyFillLists() { var plc = projectLanguageCodes; var plcl = new List <string>(plc); foreach (var languageCode in languageCodes) { if (!string.IsNullOrEmpty(languageCode.Item1)) { referenceLanguageComboBox.Properties.Items.Add( new MyTuple <string, MyTuple <string, string> >( string.Format( @"{0}{1} ({2})", plcl.Contains(languageCode.Item1) ? @"* " : string.Empty, LanguageCodeDetection.MakeValidCulture(languageCode.Item1).DisplayName, languageCode), languageCode)); } } var items = new List <MyTuple <string, CultureInfo> >(); // ReSharper disable LoopCanBeConvertedToQuery foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures)) // ReSharper restore LoopCanBeConvertedToQuery { items.Add( new MyTuple <string, CultureInfo>( string.Format( @"{0}{1} [{2}]", plcl.Contains(culture.Name.ToLowerInvariant()) ? @"* " : string.Empty, culture.DisplayName, culture.Name ), culture)); } items.Sort((x, y) => string.CompareOrdinal(x.Item1, y.Item1)); foreach (var item in items) { destinationLanguagesListBox.Items.Add(item); } // -- fillTranslationEngine(); }
private void parseLanguageCode() { var languageCodes = ExcelImportController.DetectLanguagesFromExcelFile( sourceFileTextEdit.Text.Trim()); languagesToImportCheckListBox.Items.Clear(); if (languageCodes != null) { foreach (var languageCode in languageCodes) { if (!string.IsNullOrEmpty(languageCode) && LanguageCodeDetection.IsValidCultureName(languageCode)) { var index = languagesToImportCheckListBox.Items.Add( new MyTuple <string, string>( string.Format( @"{0} ({1})", LanguageCodeDetection.MakeValidCulture(languageCode).DisplayName, languageCode), languageCode)); languagesToImportCheckListBox.SetItemChecked(index, true); } } if (languageCodes.Length == 1) { // Select one, if only one present. selectAllLanguagesToExportButton_Click(null, null); } } // -- // Try to restore. DevExpressExtensionMethods.RestoreSettings( languagesToImportCheckListBox, _project.DynamicSettingsGlobalHierarchical, @"receiveFileFromTranslator.languagesToImportCheckListBox"); }
/// <summary> /// Store the changes in the data table back to the .RESX files /// </summary> private void saveTable( Project project, DataTable table, bool wantBackupFiles, bool omitEmptyStrings) { var index = 0; var languageCodeDetection = new LanguageCodeDetection(_gridEditableData.Project); foreach (var resxFile in _resxFiles) { try { var checksum = resxFile.FileInformation.FileGroup.GetChecksum(project); var document = resxFile.Document; var fileName = resxFile.FilePath.Name; //Member 802361: access value by culture and not by filename var culture = languageCodeDetection.DetectLanguageCodeFromFileName( _gridEditableData.Project, fileName); // 2011-04-09, Uwe Keim: "nb" => "nb-NO". var cultureLong = LanguageCodeDetection.MakeValidCulture(culture).Name; foreach (DataRow row in table.Rows) { if (row.RowState != DataRowState.Deleted) { if (!FileGroup.IsInternalRow(row)) { var fileGroupCheckSum = ConvertHelper.ToInt64(row[@"FileGroup"]); // 2010-10-23, Uwe Keim: Only save if same file group. if (fileGroupCheckSum == checksum) { var tagName = (string)row[@"Name"]; var xpathQuery = $@"child::data[attribute::name='{escapeXsltChars(tagName)}']"; if (document.DocumentElement != null) { var node = document.DocumentElement.SelectSingleNode(xpathQuery); var found = node != null; var content = row[cultureLong] as string; var textToSet = content ?? string.Empty; var commentsAreVisible = CommentsAreVisible(project, row, CommentVisibilityScope.InMemory); // AJ CHANGE var commentToSet = commentsAreVisible ? row[@"Comment"] == DBNull.Value ? string.Empty : (string)row[@"Comment"] : null; if (found) { var n = node.SelectSingleNode(@"value"); //CHANGED: Member 802361 if content is null remove this entry if (content != null && (!string.IsNullOrEmpty(textToSet) || !omitEmptyStrings)) { // If not present (for whatever reason, e.g. // manually edited and therefore misformed). if (n == null) { n = document.CreateElement(@"value"); node.AppendChild(n); } n.InnerText = textToSet; // AJ CHANGE // Only write the comment to the main resx file if (commentsAreVisible) { if (resxFile == _resxFiles[0]) { n = node.SelectSingleNode(@"comment"); // If not present (for whatever reason, e.g. // manually edited and therefore misformed). if (n == null) { n = document.CreateElement(@"comment"); node.AppendChild(n); } n.InnerText = commentToSet ?? string.Empty; } } } else { if (n != null) { node.RemoveChild(n); } node.ParentNode?.RemoveChild(node); } } else // Resource doesn't exist in XML. { if (content != null && (!string.IsNullOrEmpty(textToSet) || !omitEmptyStrings)) { // Member 802361: only do it if editing single fileGroup. // If no we don't know where to add the new entry. // TODO: may be add to default file in the list? if (_gridEditableData.FileGroup == null) { //look if base file has same tagName //if base file skip it if (string.Compare( _gridEditableData.Project.NeutralLanguageCode, culture, StringComparison.OrdinalIgnoreCase) == 0 || string.Compare( _gridEditableData.Project.NeutralLanguageCode, cultureLong, StringComparison.OrdinalIgnoreCase) == 0) { continue; } // 2011-01-26, Uwe Keim: var pattern = resxFile.FileInformation.FileGroup.ParentSettings .EffectiveNeutralLanguageFileNamePattern; pattern = pattern.Replace(@"[basename]", resxFile.FileInformation.FileGroup.BaseName); pattern = pattern.Replace(@"[languagecode]", project.NeutralLanguageCode); pattern = pattern.Replace(@"[extension]", resxFile.FileInformation.FileGroup.BaseExtension); pattern = pattern.Replace(@"[optionaldefaulttypes]", resxFile.FileInformation.FileGroup.BaseOptionalDefaultType); //has base culture value? var baseName = pattern; // 2011-01-26, Uwe Keim: var file = resxFile; var baseResxFile = _resxFiles.Find( resx => resx.FilePath.Name == baseName && resx.FileInformation.FileGroup.UniqueID == file.FileInformation.FileGroup.UniqueID); var baseNode = baseResxFile?.Document?.DocumentElement ?.SelectSingleNode(xpathQuery); if (baseNode == null) { continue; } //ok we can add it. } //TODO: use default instead //Create the new Node XmlNode newData = document.CreateElement(@"data"); var newName = document.CreateAttribute(@"name"); var newSpace = document.CreateAttribute(@"xml:space"); XmlNode newValue = document.CreateElement(@"value"); // Set the Values newName.Value = (string)row[@"Name"]; newSpace.Value = @"preserve"; newValue.InnerText = textToSet; // Get them together if (newData.Attributes != null) { newData.Attributes.Append(newName); newData.Attributes.Append(newSpace); } newData.AppendChild(newValue); // AJ CHANGE // Only write the comment to the main resx file if (commentsAreVisible && index == 0) { XmlNode newComment = document.CreateElement(@"comment"); newComment.InnerText = commentToSet ?? string.Empty; newData.AppendChild(newComment); } XmlNode root = document.DocumentElement; root?.InsertAfter(newData, root.LastChild); } } } } } } } } finally { index++; } } if (wantBackupFiles) { backupFiles(); } // Store files back to filesystem storeFiles(project); }
protected override void InitiallyFillLists() { base.InitiallyFillLists(); var infos = new List <TranslationLanguageInfo>(); TranslationHelper.GetTranslationAppID( MainForm.Current.ProjectFilesControl.Project ?? Project.Empty, out var appID); var ti = TranslationHelper.GetTranslationEngine(_project); TranslationLanguageInfo[] lcs; //try //{ lcs = ti.AreAppIDsSyntacticallyValid(appID) ? ti.GetSourceLanguages(appID) : new TranslationLanguageInfo[] { }; //} //catch (Exception e) when (e is WebException || e is HttpException) //{ // // Hier Exception nicht durchlassen, // // Damit der Dialog nicht undefiniert gefüllt ist. // LogCentral.Current.Warn(e); // lcs = new TranslationLanguageInfo[] { }; // Host.NotifyAboutException(e); //} foreach (var languageCode in languageCodes) { // Only translate those that are supported. if (TranslationHelper.IsSupportedLanguage(languageCode, lcs)) { if (string.IsNullOrEmpty(languageCode)) { infos.Add( new TranslationLanguageInfo { UserReadableName = Resources.SR_TranslationHelper_GetSourceLanguages_AutoDetect, LanguageCode = string.Empty }); } else { infos.Add( new TranslationLanguageInfo { UserReadableName = $@"{ LanguageCodeDetection.MakeValidCulture(languageCode).DisplayName } ({languageCode})", LanguageCode = languageCode }); } } } infos.Sort((x, y) => string.CompareOrdinal(x.UserReadableName, y.UserReadableName)); referenceLanguageGroupBox.Properties.Items.Clear(); foreach (var info in infos) { referenceLanguageGroupBox.Properties.Items.Add(info); } // -- // Select defaults. _ignore = true; if (referenceLanguageGroupBox.SelectedIndex < 0 && referenceLanguageGroupBox.Properties.Items.Count > 0) { referenceLanguageGroupBox.SelectedIndex = 0; } _ignore = false; }
protected override void InitiallyFillLists() { base.InitiallyFillLists(); var infos = new List <TranslationLanguageInfo>(); string appID; string appID2; TranslationHelper.GetTranslationAppID( MainForm.Current.ProjectFilesControl.Project ?? Project.Empty, out appID, out appID2); var ti = TranslationHelper.GetTranslationEngine(_project); var lcs = ti.AreAppIDsSyntacticallyValid(appID, appID2) ? ti.GetSourceLanguages(appID, appID2) : new TranslationLanguageInfo[] { }; foreach (var languageCode in languageCodes) { // Only translate those that are supported. if (TranslationHelper.IsSupportedLanguage(languageCode, lcs)) { if (string.IsNullOrEmpty(languageCode)) { infos.Add( new TranslationLanguageInfo { UserReadableName = Resources.SR_TranslationHelper_GetSourceLanguages_AutoDetect, LanguageCode = string.Empty }); } else { infos.Add( new TranslationLanguageInfo { UserReadableName = $@"{ LanguageCodeDetection.MakeValidCulture(languageCode).DisplayName } ({languageCode})", LanguageCode = languageCode }); } } } infos.Sort((x, y) => string.CompareOrdinal(x.UserReadableName, y.UserReadableName)); referenceLanguageGroupBox.Properties.Items.Clear(); foreach (var info in infos) { referenceLanguageGroupBox.Properties.Items.Add(info); } // -- // Select defaults. _ignore = true; if (referenceLanguageGroupBox.SelectedIndex < 0 && referenceLanguageGroupBox.Properties.Items.Count > 0) { referenceLanguageGroupBox.SelectedIndex = 0; } _ignore = false; }