public static void SaveTranslation(string languageCode, IEnumerable<TranslationItemWithCategory> items, string filename) { Translation foreignTranslation = new Translation { GitExVersion = GitCommands.Settings.GitExtensionsVersionString, LanguageCode = languageCode }; foreach (TranslationItemWithCategory translateItem in items) { if (translateItem.Status == TranslationType.Obsolete && (String.IsNullOrEmpty(translateItem.TranslatedValue) || String.IsNullOrEmpty(translateItem.NeutralValue))) continue; TranslationItem ti = translateItem.GetTranslationItem().Clone(); if (ti.Status == TranslationType.New) ti.Status = TranslationType.Unfinished; Debug.Assert(!string.IsNullOrEmpty(ti.Value) || ti.Status != TranslationType.Translated); ti.Value = ti.Value ?? String.Empty; Debug.Assert(ti.Status != TranslationType.Translated || translateItem.IsSourceEqual(ti.Source)); foreignTranslation.FindOrAddTranslationCategory(translateItem.Category).AddTranslationItem(ti); } TranslationSerializer.Serialize(foreignTranslation, filename); }
private void SaveAs() { var foreignTranslation = new Translation { LanguageCode = GetSelectedLanguageCode() }; if (foreignTranslation.LanguageCode != null) { foreach (TranslateItem translateItem in translate) { //Item is not translated (yet), skip it if (string.IsNullOrEmpty(translateItem.TranslatedValue)) continue; TranslationItem ti = new TranslationItem(translateItem.Name, translateItem.Property, translateItem.TranslatedValue); foreignTranslation.FindOrAddTranslationCategory(translateItem.Category).AddTranslationItem(ti); } } else { // English language foreach (TranslateItem translateItem in translate) { TranslationItem ti = new TranslationItem(translateItem.Name, translateItem.Property, translateItem.NeutralValue); foreignTranslation.FindOrAddTranslationCategory(translateItem.Category).AddTranslationItem(ti); } } var fileDialog = new SaveFileDialog { Title = saveAsText.Text, FileName = translations.Text + ".xml", Filter = saveAsTextFilter.Text + "|*.xml", DefaultExt = ".xml", AddExtension = true }; if (fileDialog.ShowDialog(this) == DialogResult.OK) { TranslationSerializer.Serialize(foreignTranslation, fileDialog.FileName); changesMade = false; } }
private void SaveAs() { var foreignTranslation = new Translation { GitExVersion = GitCommands.Settings.GitExtensionsVersionString, LanguageCode = GetSelectedLanguageCode() }; foreach (TranslateItem translateItem in translate) { string value = translateItem.TranslatedValue ?? String.Empty; TranslationItem ti = new TranslationItem(translateItem.Name, translateItem.Property, translateItem.NeutralValue, value); ti.Status = translateItem.Status; if (ti.Status == TranslationType.Obsolete && (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(translateItem.NeutralValue))) continue; if (string.IsNullOrEmpty(value)) { if (ti.Status == TranslationType.Translated || ti.Status == TranslationType.New) ti.Status = TranslationType.Unfinished; } else { // TODO: Support in form if (ti.Status == TranslationType.Unfinished) ti.Status = TranslationType.Translated; } foreignTranslation.FindOrAddTranslationCategory(translateItem.Category).AddTranslationItem(ti); } using (var fileDialog = new SaveFileDialog { Title = saveAsText.Text, FileName = translations.Text + ".xml", Filter = saveAsTextFilter.Text + "|*.xml", DefaultExt = ".xml", AddExtension = true }) { if (fileDialog.ShowDialog(this) == DialogResult.OK) { TranslationSerializer.Serialize(foreignTranslation, fileDialog.FileName); changesMade = false; } } }
private void SaveAs() { var foreignTranslation = new Translation { LanguageCode = GetSelectedLanguageCode() }; foreach (TranslateItem translateItem in translate) { //Item is not translated (yet), skip it if (string.IsNullOrEmpty(translateItem.TranslatedValue)) continue; foreignTranslation.FindOrAddTranslationCategory(translateItem.Category).AddTranslationItem(new TranslationItem(translateItem.Name, translateItem.Property, translateItem.TranslatedValue)); } var fileDialog = new SaveFileDialog { Title = saveAsText.Text, FileName = translations.Text + ".xml" }; if (fileDialog.ShowDialog(this) == DialogResult.OK) { TranslationSerializer.Serialize(foreignTranslation, fileDialog.FileName); changesMade = false; } }