Exemplo n.º 1
0
        public LocalizedLanguage Import(ILanguageDefinition languageDefinition, IPluginConfig config)
        {
            var language            = new LocalizedLanguage(languageDefinition);
            var workbook            = new XLWorkbook(language.Path);
            var worksheet           = workbook.Worksheet(1);
            int headerRowsRemaining = config.GetInt("numberOfHeaderRows", 1);
            int keyColumn           = 1 + config.GetInt("keyColumn", 0);
            int descriptionColumn   = 1 + config.GetInt("descriptionColumn", 1);
            int valueMasterColumn   = 1 + config.GetInt("valueColumnForMaster", 2);
            int valueNormalColumn   = 1 + config.GetInt("valueColumnForNormal", 3);

            bool isMasterLanguage = language.IsMasterLanguage;
            int  rowNumber        = 1;

            foreach (var row in worksheet.Rows())
            {
                if (headerRowsRemaining > 0)
                {
                    headerRowsRemaining--;

                    rowNumber++;
                    continue;
                }

                if (row.IsEmpty())
                {
                    rowNumber++;
                    continue;
                }

                int valueColumn = language.IsMasterLanguage ? valueMasterColumn : valueNormalColumn;

                language.AddText(
                    key: row.Cell(keyColumn).Value.ToString(),
                    description: row.Cell(descriptionColumn).Value.ToString(),
                    value: row.Cell(valueColumn).Value.ToString(),
                    rowNumber: rowNumber);

                rowNumber++;
            }

            return(language);
        }