static public PoFile CreatePofileFromLocalizationCSV(LocalizationFile localizationFile, string Language) { PoFile RetrunPoFile = new PoFile(); CultureInfo LanguageInfo = new CultureInfo(Language); foreach (LocalizationFileLanguageListValues Values in localizationFile.LanguageValues) { string NewValue = Values.GetValueFromLanguage(LanguageInfo); if (NewValue != "--1") { PoFileValues poFileValue = new PoFileValues(); poFileValue.Key = Values.Key; poFileValue.msgctxt = "\"," + Values.Key + "\""; if (poFileValue.msgctxt.Substring(0, 1) == "\"") { poFileValue.msgctxt = poFileValue.msgctxt.Substring(1, poFileValue.msgctxt.Length - 1); } if (poFileValue.msgctxt.Substring(poFileValue.msgctxt.Length - 1) == "\"") { poFileValue.msgctxt = poFileValue.msgctxt.Remove(poFileValue.msgctxt.Length - 1); } poFileValue.msgstr = "\"" + NewValue + "\""; if (poFileValue.msgstr.Substring(0, 1) == "\"") { poFileValue.msgstr = poFileValue.msgstr.Substring(1, poFileValue.msgstr.Length - 1); } if (poFileValue.msgstr.Substring(poFileValue.msgstr.Length - 1) == "\"") { poFileValue.msgstr = poFileValue.msgstr.Remove(poFileValue.msgstr.Length - 1); } poFileValue.SourceLocation = Values.SourceLocation; poFileValue.msgid = Values.SourceValue; RetrunPoFile.Values.Add(poFileValue); } } return(RetrunPoFile); }
static public LocalizationFile CombineLocalizationFile(LocalizationFile File_01, LocalizationFile File_02, bool UpdateKeys = false) { LocalizationFile NewLocalizationFileInfo = new LocalizationFile(); NewLocalizationFileInfo.KeyCell = File_01.KeyCell; NewLocalizationFileInfo.SourceLocationCell = File_01.SourceLocationCell; NewLocalizationFileInfo.SourceCell = File_01.SourceCell; NewLocalizationFileInfo.Languages = File_01.Languages; foreach (LocalizationFileLanguageListValues item in File_01.LanguageValues) { string CheckValue = item.SourceValue.Trim(); if (item.Key == "D6A0199D462519E233F60DBDA1B604B2") { Console.WriteLine(""); } LocalizationFileLanguageListValues FindValue = File_02.LanguageValues.Find(x => x.SourceValue.Trim() == CheckValue); if (FindValue != null) { foreach (var Value_source in item.ListValues) { foreach (var Value_combine in FindValue.ListValues) { if (Value_source.CultureInfo.DisplayName == Value_combine.CultureInfo.DisplayName) { if (Value_source.Value == "" && Value_combine.Value != "" && Value_source.SourceValue != Value_combine.Value) { Value_source.Value = Value_combine.Value; } break; } } } NewLocalizationFileInfo.LanguageValues.Add(item); } else { NewLocalizationFileInfo.LanguageValues.Add(item); } } if (UpdateKeys) { LocalizationFile NewLocalizationFileInfoKey = new LocalizationFile(); NewLocalizationFileInfoKey.KeyCell = File_01.KeyCell; NewLocalizationFileInfoKey.SourceLocationCell = File_01.SourceLocationCell; NewLocalizationFileInfoKey.SourceCell = File_01.SourceCell; NewLocalizationFileInfoKey.Languages = File_01.Languages; foreach (LocalizationFileLanguageListValues ItemUpdate in NewLocalizationFileInfo.LanguageValues) { LocalizationFileLanguageListValues FindKey = File_02.LanguageValues.Find(x => x.Key == ItemUpdate.Key); if (FindKey != null) { foreach (var Value_source in ItemUpdate.ListValues) { foreach (var Value_combine in FindKey.ListValues) { if (Value_source.CultureInfo.DisplayName == Value_combine.CultureInfo.DisplayName) { Value_source.Value = Value_combine.Value; NewLocalizationFileInfo.LanguageValues.Add(ItemUpdate); break; } } } } } return(NewLocalizationFileInfoKey); } return(NewLocalizationFileInfo); }