static void Main() { var languageProvider = new SQLiteLanguageStorageProvider(SQLiteLanguageStorageProvider.kConnectionString); ILocalizationService localizationService = new LocalizationService(languageProvider); //Get GoogleLocalization.xlsx from Google Spreadsheet var answer = localizationService.ImportLocalizedStringsFromSpreadsheet(spreadsheetId); ReadWriteStream(answer, File.Create("GoogleLocalization.xlsx")); languageProvider.CreateDatabase(); //import localizationService.ImportLocalizedStringsFromExcel("GoogleLocalization.xlsx"); var dictionaries = localizationService.ImportJSONLocalizedStringsFromExcel("GoogleLocalization.xlsx"); if (dictionaries != null) { foreach (var kvp in dictionaries) { var singleDictionary = new Dictionary <string, Dictionary <string, Dictionary <string, string> > > { [kvp.Key] = kvp.Value }; using (var jsonFile = File.Create($"{kvp.Key}.json")) using (var jsonWriter = new StreamWriter(jsonFile)) { JsonSerializer serializer = new JsonSerializer() { Formatting = Formatting.Indented }; serializer.Serialize(jsonWriter, singleDictionary); } } } var sourceInfo = new FileInfo(languageProvider.DatabaseFile); var destInfo = new FileInfo("..\\..\\..\\KL2-Core\\Localization.sqlite"); sourceInfo.CopyTo(destInfo.FullName, true); destInfo = new FileInfo("..\\..\\..\\KProcess.KL2.WebAdmin\\App_Data\\Localization.sqlite"); sourceInfo.CopyTo(destInfo.FullName, true); foreach (var language in dictionaries.Keys) { var srcInfo = new FileInfo($"{language}.json"); var dstInfo = new FileInfo($"..\\..\\..\\KProcess.KL2.WebAdmin\\Scripts\\ej2\\{language}.json"); srcInfo.CopyTo(dstInfo.FullName, true); } }
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); }