static void Main(string[] args) { Dictionary <string, Dictionary <CultureInfo, string> > translations; using (var sqlConn = new SqlConnection(GetSqlConnectionString())) { translations = ReadTranslationsFromDataBase(sqlConn); } CreateSQLiteDB(); using (var connection = new SqliteConnection(GetSQLiteConnectionString())) { connection.Open(); using (var transaction = connection.BeginTransaction()) { using (var cmd = connection.CreateCommand()) { cmd.Transaction = transaction; foreach (var translation in translations) { foreach (var localizedTranslation in translation.Value) { cmd.CommandText = "INSERT INTO LocalizedStrings(Key, Culture, Value) VALUES (@key, @culture, @value)"; cmd.Parameters.AddWithValue("key", translation.Key); cmd.Parameters.AddWithValue("culture", localizedTranslation.Key.Name); cmd.Parameters.AddWithValue("value", localizedTranslation.Value); cmd.ExecuteNonQuery(); } } transaction.Commit(); } } } File.Copy(SQLiteDB, $@"../../../KProcess.Ksmed.Presentation.Shell/Resources/{SQLiteDB}", true); var languageProvider = new SQLiteLanguageStorageProvider(GetSQLiteConnectionString()); ILocalizationService localizationService = new LocalizationService(languageProvider); var excelContentBytes = localizationService.ExportLocalizedStringsToExcel(); File.WriteAllBytes("Localization.xlsx", excelContentBytes); }