Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }